SDKs & Libraries
适用于 TypeScript、Python、Go、PHP、Java、Kotlin、C#、Ruby 和 Rust 的官方后端 SDK。这些库会处理身份验证、序列化和错误处理,让你可以专注于集成。
Mobile Checkout SDKs
从 Android、iOS、React Native 和 Flutter 应用中打开 Dodo 的托管结账页面,并通过一次调用获取类型化结果。这些 SDK 不保存 API 密钥。
环境 URL
- 测试模式:
https://test.dodopayments.com - 实时模式:
https://live.dodopayments.com
详细了解 Test Mode vs Live Mode。
身份验证
API 请求需要 API key,但少数公共端点除外,例如 Activate License、Validate License 和 Deactivate License。在您的控制面板中生成一个 API key,并将其包含在每个请求的Authorization header 中。
1
Generate an API Key
在控制面板中前往 Developer → API Keys,然后选择 Add API Key。在你要调用的模式下创建密钥:测试模式密钥只能与
https://test.dodopayments.com 配合使用,实时模式密钥只能与 https://live.dodopayments.com 配合使用。为密钥设置描述性名称,并选择访问级别:- 启用写入权限已选中(默认):对所有 API 操作拥有完整的读取和写入权限。
- 启用写入权限未选中:只读访问权限。你可以获取数据(支付、订阅、客户、产品),但无法创建或修改资源。
2
Store Your Key Securely
请立即复制密钥。之后你将无法再次查看。将其存储在环境变量中,例如
DODO_PAYMENTS_API_KEY。3
Authenticate Requests
将 API 密钥包含在每个请求的
Authorization 标头中:响应格式
成功的请求会返回带有 JSON 请求正文的200 或 201,或者返回没有请求正文的 204。错误会返回 4xx 或 5xx 状态,并附带包含 code 和 message 的 JSON 请求正文。
速率限制
API 同时实施两种限制:每秒突发限制和每分钟持续限制。限制针对整个企业生效,涵盖其所有 API 密钥,具体取决于企业的速率限制层级。默认层级
更高层级
有更高 API 使用需求的企业可以升级到更高的速率限制:未进行身份验证的请求
没有有效 API 密钥的请求将按 IP 地址进行速率限制:速率限制标头
响应会包含显示当前使用情况的标头:X-RateLimit-Limit— 当前时间窗口内允许的最大请求数。X-RateLimit-Remaining— 达到限制前剩余的请求数。X-RateLimit-Reset— 当前时间窗口重置前的秒数。
429 Too Many Requests。在重试逻辑中实现指数退避。
错误处理
如需了解错误的含义及解决方法,请参阅错误代码和交易失败页面。Error Codes
错误代码及其含义的完整列表。
Transaction Failures
常见交易问题及其处理方法。
Webhook
在支付、订阅和其他事件发生时接收实时通知。在控制面板中设置 Webhook,并处理集成所需的事件。Webhook Guide
设置 Webhook、处理事件并验证签名。
集成指南
从以下任一指南开始构建你的第一个集成:One-time Payments
创建结账会话、支付链接并处理支付。
Subscriptions
设置定期账单、管理计划并处理生命周期事件。
Usage-Based Billing
计量使用量,并根据使用情况向客户收费。
Checkout Sessions
创建安全的托管结账体验。