用户指南支付配置
Waffo Pancake 配置
配置 Waffo Pancake 支付(Merchant of Record 模式)
Waffo Pancake 是一个全球化的支付平台,采用 Merchant of Record(记录商家)模式,替开发者处理税务、合规和退款等事务,支持托管结账页面,特别适合面向全球市场的 SaaS 和数字产品。
申请流程
-
注册 Waffo 账号
- 访问 Merchant Dashboard
- 使用 Google、GitHub 或 Magic Link 注册
-
获取 API 密钥
- 前往 Dashboard → "API & Development" → 复制 Merchant ID(以
MER_开头) - API Keys → Create API Key,选择 Test(本地开发)或 Production 环境
- 立即下载私钥(只显示一次)
- 前往 Dashboard → "API & Development" → 复制 Merchant ID(以
-
创建产品
- 在 Dashboard 的 "Products" 页面创建产品
- 选择产品类型:Subscription(订阅)或 One-Time(单次付费 / 积分包)
- 设置价格和币种
- 记录产品 ID(以
PROD_开头),用于配置waffoProductId
-
配置 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)
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)
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)
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 次图片生成']
}
}
}返回 支付配置概览