Skip to main content

Checkout Handler

将 Dodo Payments 结账集成到您的 Bun 服务器中。

Customer Portal

允许客户管理订阅和详细信息。

Webhooks

接收并处理 Dodo Payments Webhook 事件。

安装

1

Install the package

在项目根目录中运行以下命令:
2

Set up environment variables

在项目根目录中创建一个 .env 文件:
切勿将 .env 文件或密钥提交到版本控制中。

路由处理程序示例

所有示例均假设您使用 Bun 的原生服务器 Bun.serve()
使用此处理程序将 Dodo Payments 结账集成到您的 Bun 服务器中。支持静态 (GET)、动态 (POST) 和会话 (POST) 支付流程。

结账路由处理程序

Dodo Payments 支持三种类型的支付流程以将支付集成到您的网站,此适配器支持所有类型的支付流程。
  • 静态支付链接: 可即时分享的 URL,用于快速、无代码的支付收集。
  • 动态支付链接: 使用 API 或 SDK 编程生成具有自定义详细信息的支付链接。
  • 结账会话: 创建安全、可定制的结账体验,具有预配置的产品购物车和客户详细信息。

支持的查询参数

string
必填
Product identifier (e.g., ?productId=pdt_xxx).
integer
产品数量。
string
客户的全名。
string
客户的名字。
string
客户的姓氏。
string
客户的 email 地址。
string
客户所在的国家/地区。
string
客户的地址行。
string
客户所在的城市。
string
客户所在的州/省。
string
客户的邮政编码。
boolean
禁用全名字段。
boolean
禁用名字字段。
boolean
禁用姓氏字段。
boolean
禁用 email 字段。
boolean
禁用国家/地区字段。
boolean
禁用地址行字段。
boolean
禁用城市字段。
boolean
禁用州/省字段。
boolean
禁用邮政编码字段。
string
指定支付货币(例如 USD)。
boolean
显示货币选择器。
number
固定收取的金额,单位为主要货币单位(例如,12.5 表示 $12.50)。仅适用于 Pay What You Want 产品;如果金额低于产品最低价格,则会忽略该参数。
boolean
显示折扣字段。
string
任何以 metadata_ 开头的查询参数都会作为 metadata 传递。
如果缺少 productId,处理程序将返回 400 响应。无效的查询参数也会导致 400 响应。

响应格式

静态结帐返回包含结账 URL 的 JSON 响应:

响应格式

动态结帐返回包含结帐 URL 的 JSON 响应:
结账会话提供更安全的托管结账体验,可处理一次性购买和订阅的完整付款流程,并具有完整的自定义控制。请参阅 Checkout Sessions Integration Guide 以获取更多详细信息和支持字段的完整列表。

响应格式

结账会话返回包含结账 URL 的 JSON 响应:

客户门户路由处理程序

客户门户路由处理程序使您能够将 Dodo Payments 客户门户无缝集成到您的 Bun 服务器应用程序中。

查询参数

string
必填
门户会话的客户 ID(例如,?customer_id=cus_123)。
boolean
如果设置为 true,则通过电子邮件将门户链接发送给客户。
如果缺少 customer_id,则返回 400。

Webhook 路由处理程序

  • 方法: 仅支持 POST 请求。其他方法返回 405。
  • 签名验证: 使用 webhookKey 验证 Webhook 签名。如果验证失败,则返回 401。
  • 有效载荷验证: 使用 Zod 验证。无效有效载荷返回 400。
  • 错误处理:
    • 401: 签名无效
    • 400: 有效载荷无效
    • 500: 验证期间出现内部错误
  • 事件路由: 根据有效载荷类型调用相应的事件处理程序。

支持的 Webhook 事件处理程序


LLM 提示

最后修改于 2026年8月6日