Skip to main content

Checkout Handler

将 Dodo Payments 结账集成到你的 Tanstack 应用。

Customer Portal

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

Webhooks

接收并处理 Dodo Payments webhook 事件。

安装

1

Install the package

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

Set up environment variables

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

路由处理程序示例

所有示例均假设你正在使用 Tanstack App Router。
使用此处理程序将 Dodo Payments 结账集成到你的 Tanstack 应用。支持静态(GET)、动态(POST)和会话(POST)支付流程。

结账路由处理程序

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

支持的 Query Parameters

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 美元)。仅适用于随心付费产品;如果金额低于产品的最低价格,则会忽略此参数。
boolean
显示折扣字段。
string
任何以 metadata_ 开头的查询参数都会作为 metadata 传递。
如果 productId 缺失,处理程序将返回 400 响应。无效的查询参数也会导致 400 响应。

响应格式

静态结账返回一个包含结账 URL 的 JSON 响应:
Dynamic Checkout 代理已弃用的 POST /paymentsPOST /subscriptions endpoints。它会继续为现有集成提供支持,但新集成应使用下方的 Checkout Sessions

Response Format

Dynamic checkout 返回包含 checkout URL 的 JSON response:
Checkout sessions 提供更安全的托管式 checkout experience,可为一次性购买和订阅处理完整的 payment flow,同时提供全面的 customization control。如需了解更多详情以及完整的 supported fields 列表,请参阅 Checkout Sessions Integration Guide

Response Format

Checkout sessions 返回包含 checkout URL 的 JSON response:

Customer Portal Route Handler

Customer Portal Route Handler 让您能够将 Dodo Payments customer portal 无缝集成到您的 Tanstack application 中。

Query Parameters

string
必填
门户 session 的 customer ID(例如 ?customer_id=cus_123)。
boolean
如果设置为 true,则会向 customer 发送包含门户链接的 email。
如果缺少 customer_id,则返回 400。

Webhook Route Handler

  • Method: 仅支持 POST requests。其他 methods 返回 405。
  • Signature Verification: 使用 webhookKey 验证 webhook signature。验证失败时返回 401。
  • Payload Validation: 使用 Zod 进行验证。payload 无效时返回 400。
  • Error Handling:
    • 401:Invalid signature
    • 400:Invalid payload
    • 500:verification 期间发生 internal error
  • Event Routing: 根据 payload type 调用相应的 event handler。

Supported Webhook Event Handlers


Prompt for LLM

最后修改于 2026年8月21日