支付与积分

结账、Stripe、Creem、回调与用户 credits。

概览

POST /api/checkout:根据 product_id 与 getPricingPage(locale) 校验定价项,经 insertOrder 创建订单,再跳转 Stripe 或 Creem(见 src/integrations/*)。

回调与通知

路径作用
/api/pay/callback/stripe、/api/pay/notify/stripeStripe 同步返回与异步通知
/api/pay/callback/creem、/api/pay/notify/creemCreem 对应路径

处理中更新 订单状态 并写入 积分,逻辑在 src/models/order.ts、credit.ts 与 src/services/order.ts、credit.ts(Webhook 宜幂等)。

积分查询

  • /api/get-user-credits:当前登录用户剩余 credits。

数据流

  1. 前端提交 product_id 等。
  2. 结账路由生成订单 → 支付商会话/链接。
  3. 支付成功回调 → 验签 → 更新 credits。

关键文件

  • src/app/api/checkout/route.ts
  • src/integrations/stripe、creem
  • src/services/order.ts、credit.ts

Dependencies

环境变量

  • PAY_PROVIDER — stripe 或 Creem(见 checkout/route.ts)。
  • NEXT_PUBLIC_WEB_URL、NEXT_PUBLIC_PROJECT_NAME、NEXT_PUBLIC_PAY_CANCEL_URL — 回调与展示。
  • Stripe:STRIPE_PRIVATE_KEY、STRIPE_WEBHOOK_SECRET。
  • Creem:CREEM_API_KEY、CREEM_ENV、CREEM_PRODUCTS(JSON)、CREEM_WEBHOOK_SECRET(/api/pay/notify/creem)。

数据库(src/db/schema.ts)

  • orders、credits、affiliates
支付与积分 | 追踪狗文档