支付配置
如何配置 Creem 支付
VideoFly 默认集成了 Creem 支付系统,专为 SaaS 产品设计,支持订阅和一次性购买。
本指南将教您如何配置 Creem 支付,让您的用户可以购买积分和会员。
1. 为什么选择 Creem?
Creem 是一个强大的支付平台,它极大地简化了订阅管理的复杂性,自动处理 webhook、发票和用户门户。对于独立开发者来说,集成速度非常快。
2. 配置 Creem
第一步:注册 Creem 账号
访问 Creem 官网 并注册账号。
第二步:获取 API Keys
在 Creem 后台:
- 找到 Settings (设置) > API Keys。
- 复制 Product ID 和 Secret Key。
第三步:创建产品 (Products)
VideoFly 的积分系统依赖于特定的产品 ID。您需要在 Creem 后台创建对应的产品。
参考 src/config/credits.ts 文件中的配置,我们需要创建以下产品:
1. 订阅产品 (Subscription)
- 基础版 (Basic)
- 名称: Basic Plan
- 价格: $9.90 / 月
- 积分: 100/月
- 专业版 (Pro) - 推荐
- 名称: Pro Plan
- 价格: $29.90 / 月
- 积分: 500/月
2. 一次性产品 (One-time)
- 标准包 (Standard Pack)
- 名称: 300 Credits
- 价格: $19.90
- 类型: One-time payment
第四步:获取产品 ID
创建完产品后,Creem 会为每个产品生成一个 ID(如 prod_sub_basic_monthly)和一个价格 ID(如 price_xxx)。
第五步:填入环境变量
打开 .env.local 文件,填入您的 API Key 和产品 ID:
务必确保环境变量中的 ID 与代码 src/config/credits.ts 中的逻辑对应,或者是直接在代码中修改默认值。
3. Webhook 配置 (让支付生效)
为了让用户支付后自动到账积分,您必须配置 Webhook。
- 在 Creem 后台找到 Webhooks 设置。
- 点击 Add Endpoint。
- URL 填写您的后端地址:
- 本地开发需要使用内网穿透工具(如 ngrok),例如:
https://xxxx.ngrok.io/api/webhooks/creem - 生产环境:
https://您的域名.com/api/webhooks/creem
- 本地开发需要使用内网穿透工具(如 ngrok),例如:
- 监听事件选择
checkout.session.completed和subscription.updated等。 - 保存后,复制 Webhook Secret 并填入
.env.local文件中:
4. 本地测试
在本地开发时,由于无法直接接收公网 Webhook,建议使用 Ngrok 进行转发测试。
或者,您可以将 .env.local 中的 NODE_ENV 临时改为 development,某些支付回调逻辑可能会放宽验证(具体视代码逻辑而定,建议使用标准 Webhook 测试)。