用户指南支付配置
Dodo Payments 配置
配置 Dodo Payments 支付
Dodo Payments 是一个全球化的支付平台,采用 Merchant of Record(记录商家)模式,替开发者处理税务、合规和退款等事务,特别适合面向全球市场的 SaaS 和数字产品。
申请流程
-
注册 Dodo Payments 账号
- 访问 Dodo Payments 官网
- 注册账号并完成 KYB(企业验证)或 KYC(个人验证)
-
获取 API 密钥
- 登录 Dodo Payments Dashboard
- 前往 "Developer" → "API Keys"
- 生成 API Key(以
TSzsgjLa...格式)
-
创建产品
- 在 Dashboard 的 "Products" 页面创建产品
- 选择产品类型:Recurring(订阅)或 One-Time(单次付费)
- 设置价格和币种
- 记录产品 ID(以
pdt_开头),用于配置dodoProductId
-
配置 Webhook
- 前往 "Developer" → "Webhooks"
- 添加 Webhook URL:
https://yourdomain.com/api/payment/webhook/dodo - 选择事件类型:
payment和subscription - 记录 Webhook Signing Key(以
whsec_开头)
环境变量配置
在 .env 文件中添加:
# Dodo Payments 配置
DODO_PAYMENTS_API_KEY=TSxxxxxxxxxx
DODO_PAYMENTS_WEBHOOK_KEY=whsec_xxxxxxxxxx
DODO_PAYMENTS_TEST_MODE=trueDODO_PAYMENTS_TEST_MODE=true 表示使用测试模式;生产环境请设置为 false,并使用生产环境的 API Key 和 Webhook Key。
Webhook 配置
必需的事件类型
在 Dodo Dashboard 配置 Webhook 时,选择以下事件类型:
- payment:支付相关事件
payment.succeeded:支付成功(单次付费和积分充值)payment.failed:支付失败
- subscription:订阅相关事件
subscription.active:订阅激活subscription.renewed:订阅续期subscription.cancelled:订阅取消subscription.expired:订阅到期subscription.on_hold:订阅暂停subscription.updated:订阅更新subscription.plan_changed:订阅方案变更
计划配置示例
订阅方案(Recurring)
monthlyDodo: {
provider: 'dodo',
id: 'monthlyDodo',
amount: 10,
currency: 'USD',
duration: {
months: 1,
type: 'recurring'
},
dodoProductId: 'pdt_xxxxxxxxxxxxxxxxxxxxx',
i18n: {
'en': {
name: 'Dodo Monthly Plan',
description: 'Monthly recurring subscription via Dodo Payments',
duration: 'month',
features: ['All premium features', 'Priority support']
},
'zh-CN': {
name: 'Dodo 月度订阅',
description: '通过 Dodo Payments 的月度循环订阅',
duration: '月',
features: ['所有高级功能', '优先支持']
}
}
}单次付费方案(One-Time)
monthlyDodoOneTime: {
provider: 'dodo',
id: 'monthlyDodoOneTime',
amount: 10,
currency: 'USD',
duration: {
months: 1,
type: 'one_time'
},
dodoProductId: 'pdt_xxxxxxxxxxxxxxxxxxxxx',
i18n: {
'en': {
name: 'Dodo Monthly Plan (One Time)',
description: 'One-time payment for monthly access via Dodo Payments',
duration: 'month',
features: ['All premium features', 'Priority support']
},
'zh-CN': {
name: 'Dodo 月度 (一次性)',
description: '通过 Dodo Payments 的一次性月度付费',
duration: '月',
features: ['所有高级功能', '优先支持']
}
}
}积分充值方案(Credits)
creditsDodo: {
provider: 'dodo',
id: 'creditsDodo',
amount: 5,
currency: 'USD',
duration: { type: 'credits' },
credits: 100,
dodoProductId: 'pdt_xxxxxxxxxxxxxxxxxxxxx',
i18n: {
'en': {
name: '100 Credits Dodo',
description: 'Purchase 100 AI credits via Dodo Payments',
duration: 'one-time',
features: ['100 AI conversations', '100 image generations']
},
'zh-CN': {
name: '100 积分包 Dodo',
description: '通过 Dodo Payments 购买的 100 个 AI 积分',
duration: '一次性',
features: ['100 次 AI 对话', '100 次图片生成']
}
}
}返回 支付配置概览