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

Waffo Pancake 配置

配置 Waffo Pancake 支付(Merchant of Record 模式)

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

申请流程

  1. 注册 Waffo 账号

    • 访问 Merchant Dashboard
    • 使用 Google、GitHub 或 Magic Link 注册
  2. 获取 API 密钥

    • 前往 Dashboard → "API & Development" → 复制 Merchant ID(以 MER_ 开头)
    • API Keys → Create API Key,选择 Test(本地开发)或 Production 环境
    • 立即下载私钥(只显示一次)
  3. 创建产品

    • 在 Dashboard 的 "Products" 页面创建产品
    • 选择产品类型:Subscription(订阅)或 One-Time(单次付费 / 积分包)
    • 设置价格和币种
    • 记录产品 ID(以 PROD_ 开头),用于配置 waffoProductId
  4. 配置 Webhook

    • 前往 "Store Settings" → "Webhooks"
    • 添加 Webhook URL:https://yourdomain.com/api/payment/webhook/waffo
    • 订阅订单和订阅相关事件(见下方事件列表)
    • 验签使用 RSA 公钥:SDK 已内置 Test / Prod 公钥,一般无需配置;仅在轮换密钥时才需要复制 Dashboard 上的公钥到 WAFFO_WEBHOOK_PUBLIC_KEY

环境变量配置

在 .env 文件中添加:

# Waffo Pancake 配置
WAFFO_MERCHANT_ID=MER_xxxxxxxxxx
WAFFO_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"

API Key 在创建时绑定 Test 或 Production 环境,无需额外的 TEST_MODE 开关。

Webhook 配置

需要订阅的事件类型

在 Waffo Dashboard 配置 Webhook 时,订阅以下事件:

  • order:订单相关事件
    • order.completed:支付成功(单次付费和积分充值)
  • subscription:订阅相关事件
    • subscription.activated:订阅激活
    • subscription.payment_succeeded:订阅续费成功
    • subscription.canceling / subscription.uncanceled:订阅取消 / 恢复
    • subscription.canceled:订阅已取消
    • subscription.past_due:订阅逾期
  • refund:退款相关事件
    • refund.succeeded:退款成功

计划配置示例

以下 config/payment.ts 配置仅适用于静态定价模式(默认)。使用动态定价时无需修改此文件,直接在管理后台 /admin/pricing 创建方案并填写对应的 ID 即可。

订阅方案(Subscription)

config/payment.ts
monthlyWaffo: {
  provider: 'waffo',
  id: 'monthlyWaffo',
  amount: 10,
  currency: 'USD',
  duration: {
    months: 1,
    type: 'recurring'
  },
  waffoProductId: 'PROD_xxxxxxxxxxxxxxxxxxxxx',
  i18n: {
    'en': {
      name: 'Waffo Monthly Plan',
      description: 'Monthly recurring subscription via Waffo Pancake',
      duration: 'month',
      features: ['All premium features', 'Priority support']
    },
    'zh-CN': {
      name: 'Waffo 月度订阅',
      description: '通过 Waffo Pancake 的月度循环订阅',
      duration: '月',
      features: ['所有高级功能', '优先支持']
    }
  }
}

单次付费方案(One-Time)

config/payment.ts
monthlyWaffoOneTime: {
  provider: 'waffo',
  id: 'monthlyWaffoOneTime',
  amount: 10,
  currency: 'USD',
  duration: {
    months: 1,
    type: 'one_time'
  },
  waffoProductId: 'PROD_xxxxxxxxxxxxxxxxxxxxx',
  i18n: {
    'en': {
      name: 'Waffo Monthly Plan (One Time)',
      description: 'One-time payment for monthly access via Waffo Pancake',
      duration: 'month',
      features: ['All premium features', 'Priority support']
    },
    'zh-CN': {
      name: 'Waffo 月度 (一次性)',
      description: '通过 Waffo Pancake 的一次性月度付费',
      duration: '月',
      features: ['所有高级功能', '优先支持']
    }
  }
}

积分充值方案(Credits)

config/payment.ts
creditsWaffo: {
  provider: 'waffo',
  id: 'creditsWaffo',
  amount: 5,
  currency: 'USD',
  duration: { type: 'credits' },
  credits: 100,
  waffoProductId: 'PROD_xxxxxxxxxxxxxxxxxxxxx',
  i18n: {
    'en': {
      name: '100 Credits Waffo',
      description: 'Purchase 100 AI credits via Waffo Pancake',
      duration: 'one-time',
      features: ['100 AI conversations', '100 image generations']
    },
    'zh-CN': {
      name: '100 积分包 Waffo',
      description: '通过 Waffo Pancake 购买的 100 个 AI 积分',
      duration: '一次性',
      features: ['100 次 AI 对话', '100 次图片生成']
    }
  }
}

返回 支付配置概览

Dodo Payments 配置

配置 Dodo Payments 支付

动态定价配置

在管理后台实时管理定价方案,无需修改代码或重新部署

On this page

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