支付与积分
结账、Stripe、Creem、回调与用户 credits。
概览
POST /api/checkout:根据 product_id 与 getPricingPage(locale) 校验定价项,经 insertOrder 创建订单,再跳转 Stripe 或 Creem(见 src/integrations/*)。
回调与通知
| 路径 | 作用 |
|---|---|
/api/pay/callback/stripe、/api/pay/notify/stripe | Stripe 同步返回与异步通知 |
/api/pay/callback/creem、/api/pay/notify/creem | Creem 对应路径 |
处理中更新 订单状态 并写入 积分,逻辑在 src/models/order.ts、credit.ts 与 src/services/order.ts、credit.ts(Webhook 宜幂等)。
积分查询
/api/get-user-credits:当前登录用户剩余 credits。
数据流
- 前端提交
product_id等。 - 结账路由生成订单 → 支付商会话/链接。
- 支付成功回调 → 验签 → 更新 credits。
关键文件
src/app/api/checkout/route.tssrc/integrations/stripe、creemsrc/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