Checkout Handler
将 Dodo Payments 结账集成到您的 Bun 服务器中。
Customer Portal
允许客户管理订阅和详细信息。
Webhooks
接收并处理 Dodo Payments Webhook 事件。
安装
1
Install the package
在项目根目录中运行以下命令:
2
Set up environment variables
在项目根目录中创建一个
.env 文件:路由处理程序示例
所有示例均假设您使用 Bun 的原生服务器
Bun.serve()。- Checkout Handler
- Customer Portal Handler
- Webhook Handler
使用此处理程序将 Dodo Payments 结账集成到您的 Bun 服务器中。支持静态 (GET)、动态 (POST) 和会话 (POST) 支付流程。
结账路由处理程序
Dodo Payments 支持三种类型的支付流程以将支付集成到您的网站,此适配器支持所有类型的支付流程。
- 静态支付链接: 可即时分享的 URL,用于快速、无代码的支付收集。
- 动态支付链接: 使用 API 或 SDK 编程生成具有自定义详细信息的支付链接。
- 结账会话: 创建安全、可定制的结账体验,具有预配置的产品购物车和客户详细信息。
Static Checkout (GET)
Static Checkout (GET)
支持的查询参数
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 传递。响应格式
静态结帐返回包含结账 URL 的 JSON 响应:Dynamic Checkout (POST)
Dynamic Checkout (POST)
- 在 POST 请求中以 JSON 正文形式发送参数。
- 支持一次性和定期付款。
- 有关支持的 POST 正文字段的完整列表,请参阅:
响应格式
动态结帐返回包含结帐 URL 的 JSON 响应:Checkout Sessions (POST)
Checkout Sessions (POST)
结账会话提供更安全的托管结账体验,可处理一次性购买和订阅的完整付款流程,并具有完整的自定义控制。请参阅 Checkout Sessions Integration Guide 以获取更多详细信息和支持字段的完整列表。
响应格式
结账会话返回包含结账 URL 的 JSON 响应:客户门户路由处理程序
客户门户路由处理程序使您能够将 Dodo Payments 客户门户无缝集成到您的 Bun 服务器应用程序中。查询参数
string
必填
门户会话的客户 ID(例如,
?customer_id=cus_123)。boolean
如果设置为
true,则通过电子邮件将门户链接发送给客户。Webhook 路由处理程序
- 方法: 仅支持 POST 请求。其他方法返回 405。
- 签名验证: 使用
webhookKey验证 Webhook 签名。如果验证失败,则返回 401。 - 有效载荷验证: 使用 Zod 验证。无效有效载荷返回 400。
- 错误处理:
- 401: 签名无效
- 400: 有效载荷无效
- 500: 验证期间出现内部错误
- 事件路由: 根据有效载荷类型调用相应的事件处理程序。