支付
支持的支付渠道
| 渠道 | 模式 | Webhook 地址 |
|---|---|---|
| Stripe | 一次性 + 订阅(银行卡,亦可经 Stripe 走微信支付/支付宝) | POST /api/payment/notify/stripe |
| Creem | 一次性 + 订阅 | POST /api/payment/notify/creem |
| 支付宝 | 一次性 | POST /api/payment/notify/alipay |
| 微信支付 | 一次性 + 订阅 | POST /api/payment/notify/wechat |
PayPal 的环境变量已在配置中预留,但 Provider 尚未实现。
凭证在 管理后台 → Settings → Payment 中配置(如 stripe_secret_key、stripe_publishable_key、stripe_signing_secret;creem_api_key / creem_signing_secret / creem_environment;alipay_app_id / alipay_private_key / alipay_public_key;wechat_app_id / wechat_mch_id / wechat_api_v3_key 等)。同名环境变量(STRIPE_SECRET_KEY 等)可作兜底。
定价目录
商品定义在 src/config/pricing.ts —— 服务端唯一可信源,客户端传来的价格一律忽略。
{
productId: 'starter_monthly',
productName: 'Starter',
description: 'Starter Monthly',
type: PaymentType.SUBSCRIPTION, // 或 PaymentType.ONE_TIME
priceInCents: 900,
currency: 'usd',
credits: 5000,
creditsValidDays: 30,
plan: { name: 'starter', interval: 'month', intervalCount: 1 },
}默认商品:starter|pro|enterprise × monthly|yearly|lifetime。
支付流程
- 客户端调用
POST /api/payment/checkout,传{ product_id, payment_provider, redirect } - 服务端校验商品、创建订单,返回
{ checkout_url } - 用户在支付渠道页面完成付款,经
/api/payment/callback?order_no=...&redirect=...跳回 - 渠道的 Webhook(
/api/payment/notify/$provider)是可靠的完成路径:checkout.success/payment.success将订单标记为PAID、订阅类商品创建订阅记录并发放积分;subscribe.updated/subscribe.canceled同步订阅状态
务必在渠道后台配置 Webhook——同步回调只是兜底。