Skip to main content

Quick Start Guide

Get your first checkout session running in under 5 minutes

API Reference & Live Testing

Explore the full API documentation and interactively test Checkout Session requests and responses.

Preview Checkout

Calculate pricing, taxes, and totals before creating a session.
Session Validity: Checkout sessions are valid for 24 hours by default. If you pass confirm=true in your request, the session will only be valid for 15 minutes.
一次性链接:API 返回的 checkout_url 不可重复使用,并会在 24 小时内过期(当 confirm=true 时为 15 分钟)。该链接 предназначен for a single customer to complete one payment. 请为每位客户和每次支付尝试生成新的 checkout session,而不是共享或重复使用链接。

前置条件

1

Dodo Payments Account

你需要拥有一个已启用且可访问 API 的 Dodo Payments 商户账户。
2

API Credentials

从 Dodo Payments 控制面板生成 API 凭证:
3

Products Setup

在实现 checkout session 之前,请先在 Dodo Payments 控制面板中创建产品。

创建第一个 Checkout Session

API 响应

以上所有方法均返回相同的响应结构:
生成的 checkout_url 只能使用一次,并会在 24 小时内过期。请勿缓存或在不同客户或支付尝试之间重复使用它——需要新链接时,请创建新的 checkout session。
1

Get the checkout URL

从 API 响应中提取 checkout_url
2

Redirect your customer

将客户引导至 checkout URL 以完成购买。
替代集成选项:除了重定向之外,你还可以使用 Overlay Checkout(模态覆盖层)或 Inline Checkout(完全嵌入)将 checkout 直接嵌入页面。在原生移动应用中,将相同的 URL 传递给适用于 Android、iOS、React Native 或 Flutter 的 Mobile Checkout SDKs。这些方式均使用相同的 checkout session URL。
3

Handle the return

支付完成后,客户会被重定向到你的 return_url,并附带包含支付/订阅 ID、状态、客户邮箱以及任何许可证密钥的查询参数。完整列表请参阅 return_url 参数文档

Request Body

Required Fields

每个 checkout session 所需的必填字段

Optional Fields

用于自定义 checkout 体验的其他配置

必填字段

array
必填
要包含在 checkout session 中的产品数组。每个产品都必须具有来自 Dodo Payments 控制面板的有效 product_id
混合结账:你可以在同一个 checkout session 中组合一次性支付产品和订阅产品。这支持多种强大场景,例如订阅的设置费、硬件与 SaaS 的捆绑等。
查找产品 ID:你可以在 Dodo Payments 控制面板的 Products → View Details 中找到产品 ID,也可以使用 List Products API

可选字段

配置这些字段以自定义 checkout 体验,并为支付流程添加业务逻辑。
object
客户信息。你可以使用客户 ID 关联现有客户,也可以在 checkout 期间创建新的客户记录。
使用客户 ID 将现有客户关联到 checkout session。
object
用于准确计算税费、防欺诈和满足监管要求的账单地址信息。
confirm 设置为 true 时,所有账单地址字段都将成为成功创建 session 的必填项。
array
控制 checkout 期间客户可用的支付方式。此功能有助于针对特定市场或业务要求进行优化。可用选项creditdebitupi_collectapple_paygoogle_payamazon_payklarnaaffirmafterpay_clearpaycashappmultibancobancontact_cardepsidealprzelewy24paypal
重要:始终将 creditdebit 作为备用选项,以避免首选支付方式不可用时 checkout 失败。
示例
string
使用固定账单货币覆盖默认的货币选择。使用 ISO 4217 货币代码。支持的货币USDEURGBPCADAUDINR示例"USD" 表示美元,"EUR" 表示欧元
只有启用 adaptive pricing 时,此字段才会生效。如果禁用 adaptive pricing,将使用产品的默认货币。
boolean
默认值:"false"
为回访客户显示之前保存的支付方式,从而提升 checkout 速度和用户体验。
string
支付完成后用于重定向客户的 URL。重定向时,Dodo Payments 会向你的 URL 追加以下查询参数:重定向 URL 示例:
使用 license_keyemail 查询参数,在返回页面上显示许可证密钥或立即发送确认,而无需额外的 API 调用。
string
客户点击返回按钮或取消 checkout session 时用于重定向客户的 URL。如果未提供,则不会显示返回按钮。
设置 cancel_url,为客户提供无需完成购买即可返回网站的明确方式。这可以改善 checkout 体验并减少阻碍。
boolean
默认值:"false"
如果为 true,则立即完成所有 session 详细信息。如果缺少必填数据,API 将抛出错误。
array
向 checkout session 应用一个或多个叠加的折扣代码。代码按数组顺序应用(第一个代码降低基础价格,第二个代码降低已折扣的价格,依此类推),每个 session 最多可使用 20 个代码。
下面的单数 discount_code 字段已弃用,但仍受到完整支持——现有集成无需更改即可继续运行。它不能与同一请求中的 discount_codes 组合使用。方便时请迁移到 discount_codes,以使用叠加折扣功能。
string
已弃用
已弃用——新集成请优先使用 discount_codes。为保持向后兼容,此字段仍然有效,但不能与同一请求中的 discount_codes 组合使用。
object
用于存储有关 session 的其他信息的自定义键值对。
boolean
覆盖此 session 的商户默认 3DS 行为。
boolean
默认值:"false"
启用最小地址收集模式。启用后,checkout 仅收集:
  • 国家/地区:税费确定始终需要
  • ZIP/邮政编码:仅在计算销售税、VAT 或 GST 必需的地区收集
通过消除不必要的表单字段,此功能可以显著减少 checkout 阻碍。
启用最小地址收集,以更快完成 checkout。对于需要完整账单详细信息的企业,仍可使用完整地址收集。
object
自定义 checkout 界面的外观和行为。
object
配置 checkout session 的具体功能和行为。
array
使用自定义表单字段在 checkout 期间收集客户的其他信息。每个 checkout session 最多可定义 5 个自定义字段。客户响应会包含在 webhook payload 中,并可通过 API 获取。
客户对自定义字段的响应会包含在:
  • Webhookspayment.succeededsubscription.active 以及其他相关事件 payload 中包含 custom_field_responses 数组
  • API 响应:支付和订阅对象包含 custom_field_responses
object
包含订阅产品的 checkout session 的其他配置。

使用示例

以下是 10 个全面示例,展示适用于不同业务场景的 checkout session 配置:

1. 简单的单产品 Checkout

2. 多产品购物车

3. 带试用期的订阅

4. 预确认 Checkout

confirm 设置为 true 时,客户将直接进入 checkout 页面,跳过所有确认步骤。

5. 带货币覆盖的 Checkout

只有在账户设置中启用 adaptive currency 时,billing_currency 覆盖才会生效。如果禁用 adaptive currency,此参数不会产生任何影响。

6. 为回访客户保存支付方式

7. 收集税务 ID 的 B2B Checkout

8. 带叠加折扣代码的深色主题 Checkout

9. 区域性支付方式(印度 UPI)

有关 UPI 配置和测试的详细信息,请参阅 India Payment Methods 页面。

10. BNPL(先买后付)Checkout

有关 BNPL 配置和测试的详细信息,请参阅 Buy Now Pay Later (BNPL) 页面。

11. 使用现有支付方式进行即时 Checkout

使用客户已保存的支付方式创建能够立即处理的 checkout session,并跳过支付方式收集:
使用 payment_method_id 时,必须将 confirm 设置为 true,并提供现有的 customer_id。系统会根据支付货币验证该支付方式是否符合条件。
支付方式必须属于该客户,并且必须与支付货币兼容。这可以为回访客户实现一键购买。

12. 用于生成简洁支付 URL 的短链接

使用自定义 slug 生成可缩短且可分享的支付链接:
短链接非常适合通过 SMS、电子邮件或社交媒体分享。相比长 URL,它们更容易记忆,也更能建立客户信任。

13. 跳过支付成功页面并立即重定向

在支付完成后立即重定向客户,跳过默认的成功页面:
当你有比默认支付成功页面提供更佳用户体验的自定义成功页面时,请使用 redirect_immediately: true。这对于移动应用和嵌入式 checkout 流程尤其有用。
启用 redirect_immediately 后,客户会在支付完成后立即被重定向到你的 return_url,完全跳过默认的成功页面。

14. 强制指定语言

强制 checkout 以指定语言显示,覆盖客户浏览器的语言检测结果:
当你知道客户的首选语言(例如来自其账户设置),或要面向特定区域市场时,请使用 force_language
**支持的语言:**阿拉伯语(ar)、加泰罗尼亚语(ca)、中文(zh)、荷兰语(nl)、英语(en)、法语(fr)、德语(de)、希伯来语(he)、印度尼西亚语(id)、意大利语(it)、日语(ja)、韩语(ko)、马来语(ms)、波兰语(pl)、葡萄牙语(pt)、罗马尼亚语(ro)、俄语(ru)、西班牙语(es)、瑞典语(sv)、泰语(th)、土耳其语(tr

15. 收集自定义字段

使用自定义字段在 checkout 期间收集客户的其他信息:
自定义字段响应会自动包含在 webhook payload 中(payment.succeededsubscription.active 等),并可通过 API 获取。你可以使用这些信息丰富 CRM、触发 onboarding 流程或自定义客户体验。
可用字段类型: textnumberemailurldatedropdownboolean

预览 Checkout Sessions

创建 checkout session 之前,你可以预览包含税费、折扣和总额的价格明细。这有助于在客户进入 checkout 之前显示准确的价格。
当购物车包含订阅产品时,预览响应还会返回 next_billing_date——即即将到来的账单日期预览,以便你在创建订阅之前将其显示给客户。它相对于当前时间计算:适用试用期时为 now + trial period,否则为 now + one payment frequency。一次性购物车不会包含此字段。这是基于预览时间的估算;权威的 next_billing_date 会在订阅激活时设置。
预览还会返回 trial_period_days(有效试用期长度,免费或付费)和 trial_amount(折扣后的每单位试用费用,以价格货币的最小单位表示)。trial_amount 仅在付费试用时存在;免费试用或无试用时为 null。使用 current_breakup 获取今天实际应付的含税总额。

Preview API Reference

查看完整的预览 endpoint 文档。

主要区别

以前使用 Dynamic Links 创建支付链接时,必须提供客户完整的账单地址。 使用 Checkout Sessions 后,不再需要这样做。你只需传递已有的信息,剩余部分由我们处理。例如:
  • 如果你只知道客户的账单国家/地区,只需提供该信息。
  • checkout 流程会在将客户带到支付页面之前自动收集缺失的信息。
  • 另一方面,如果你已经拥有所有必需信息,并希望直接跳转到支付页面,则可以传递完整数据集,并在请求正文中包含 confirm=true

迁移流程

从 Dynamic Links 迁移到 Checkout Sessions 非常简单:
1

Update your integration

更新集成,以使用新的 API 或 SDK 方法。
2

Adjust request payload

根据 Checkout Sessions 格式调整请求 payload。
3

That's it!

是。不需要在你的一侧进行额外处理或执行特殊迁移步骤。

相关 API 参考

Create Checkout Session

创建 checkout session 的完整 API 参考,包含所有可用参数和选项

Preview Checkout Session

在创建 session 之前预览价格、税费和总额的 API 参考
最后修改于 2026年7月31日