Checkout Handler
将 Dodo Payments 结账集成到您的 Fastify 应用中。
Customer Portal
允许客户管理订阅和详细信息。
Webhooks
接收和处理 Dodo Payments webhook 事件。
安装
1
Install the package
在项目根目录中运行以下命令:
2
Set up environment variables
在项目根目录中创建一个
.env 文件:路由处理程序示例
所有示例假定您使用 Fastify App Router。
- Checkout Handler
- Customer Portal Handler
- Webhook Handler
使用此处理程序将 Dodo Payments 结账集成到您的 Fastify 应用中。支持静态 (GET)、动态 (POST) 和会话 (POST) 支付流程。
结账路由处理程序
Dodo Payments 支持三种类型的支付流程,此适配器支持所有类型的支付流程。
- 静态支付链接: 可即时分享的 URL,用于快速、无需代码的支付收集。
- 动态支付链接: 通过 API 或 SDK 编程生成带有自定义详细信息的支付链接。
- 结账会话: 创建安全、可定制的结账体验,具有预配置的产品购物车和客户详细信息。
Static Checkout (GET)
Static Checkout (GET)
支持的查询参数
string
必填
产品标识符(例如
?productId=pdt_nZuwz45WAs64n3l07zpQR)。integer
产品数量。
string
客户的全名。
string
客户的名字。
string
客户的姓氏。
string
客户的电子邮件地址。
string
客户所在的国家/地区。
string
客户的地址行。
string
客户所在的城市。
string
客户所在的州/省。
string
客户的邮政编码。
boolean
禁用全名字段。
boolean
禁用名字字段。
boolean
禁用姓氏字段。
boolean
禁用电子邮件字段。
boolean
禁用国家/地区字段。
boolean
禁用地址行字段。
boolean
禁用城市字段。
boolean
禁用州/省字段。
boolean
禁用邮政编码字段。
string
指定支付货币(例如
USD)。boolean
显示货币选择器。
number
固定收取的金额,单位为主要货币单位(例如,
12.5 表示 12.50 美元)。仅适用于 Pay What You Want 产品;如果金额低于产品最低价格,则会忽略此参数。boolean
显示折扣字段。
string
任何以
metadata_ 开头的查询参数都会作为元数据传递。响应格式
静态结账返回包含结账 URL 的 JSON 响应:Dynamic Checkout (POST)
Dynamic Checkout (POST)
- 参数作为 JSON body 在 POST 请求中发送。
- 支持一次性付款和定期付款。
- 有关支持的 POST body 字段的完整列表,请参阅:
响应格式
动态结账返回包含结账 URL 的 JSON 响应:客户门户路由处理程序
客户门户路由处理程序使您能够将 Dodo Payments 客户门户无缝集成到您的 Fastify 应用中。查询参数
string
必填
门户会话的客户 ID(例如,
?customer_id=cus_123)。boolean
如果设置为
true,则会向客户发送带有门户链接的电子邮件。Webhook 路由处理程序
- 方法: 仅支持 POST 请求。其他方法返回 405。
- 签名验证: 使用
webhookKey验证 webhook 签名。如果验证失败则返回 401。 - 有效负载验证: 使用 Zod 验证。无效的负载返回 400。
- 错误处理:
- 401:无效签名
- 400:无效负载
- 500:验证期间的内部错误
- 事件路由: 根据负载类型调用相应的事件处理程序。