TinyShip
TinyShip
 TinyShip
TinyShip
TinyShip 文档中心
TinyShip 用户指南快速开始基础配置
支付配置指南Stripe 配置PayPal 配置微信支付配置支付宝配置Creem 配置Dodo Payments 配置支付测试指南
积分系统配置指南
存储服务配置数据库配置验证码配置
开发最佳实践本地 E2E 测试流程
用户指南支付配置

Dodo Payments 配置

配置 Dodo Payments 支付

Dodo Payments 是一个全球化的支付平台,采用 Merchant of Record(记录商家)模式,替开发者处理税务、合规和退款等事务,特别适合面向全球市场的 SaaS 和数字产品。

申请流程

  1. 注册 Dodo Payments 账号

    • 访问 Dodo Payments 官网
    • 注册账号并完成 KYB(企业验证)或 KYC(个人验证)
  2. 获取 API 密钥

    • 登录 Dodo Payments Dashboard
    • 前往 "Developer" → "API Keys"
    • 生成 API Key(以 TSzsgjLa... 格式)
  3. 创建产品

    • 在 Dashboard 的 "Products" 页面创建产品
    • 选择产品类型:Recurring(订阅)或 One-Time(单次付费)
    • 设置价格和币种
    • 记录产品 ID(以 pdt_ 开头),用于配置 dodoProductId
  4. 配置 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=true

DODO_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)

config/payment.ts
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)

config/payment.ts
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)

config/payment.ts
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 次图片生成']
    }
  }
}

返回 支付配置概览

Creem 配置

配置 Creem 支付

支付测试指南

本地开发环境支付测试和 Webhook 调试

On this page

申请流程环境变量配置Webhook 配置必需的事件类型计划配置示例订阅方案(Recurring)单次付费方案(One-Time)积分充值方案(Credits)