Stripe 配置
https://dashboard.stripe.com/,点这里,可以切换到测试环境,上线前,切换到生产环境,再重新配置下面的参数。

开始配置密钥,webhook,产品。
1. API 密钥

这个就是。

写入环境变量。
STRIPE_API_KEY=sk_test_xxx2. webhook
找到 webhook 。

添加接收端。

事件怎么选择?

就选择这几个就可以,多勾选也是会被代理忽略掉。
| 分类 | 事件 | 用途 |
|---|---|---|
| Checkout | checkout.session.completed | 积分购买、买断购买、订阅首次结算 |
| Customer | customer.subscription.created | 订阅创建(激活/试用) |
| Customer | customer.subscription.updated | 订阅状态变更(active/trialing/past_due/paused) |
| Customer | customer.subscription.deleted | 订阅取消/过期 |
| Invoice | invoice.paid | 订阅续费成功 |
| Invoice | invoice.payment_failed | 订阅续费失败 |
然后,选择 Webhook 端点。


接收端名称暂时起 "pay4saas webhook", 端点URL 就是,穿透地址的域名(比如,ngrok) + /api/webhooks/stripe,项目的线上的 Webhook 地址就是: https://yourdomain.com/api/webhooks/stripe。
然后,右侧这个签名密钥。

写入环境变量。
STRIPE_WEBHOOK_SECRET=whsec_xxx3. 创建产品
回到首页,产品目录 - 创建产品。

分 2 种情况,订阅和非订阅创建的不一样。
1)如果是订阅产品。
比如,创建一个 Pro ,名称可以写 Pro Plan。适合同一个东西、不同计费周期的,比如月付/年付同一套功能,就可以做在一个产品里面。

选择周期,填写价格,选择货币,选择开单周期,这个周期和选择周期一致。

然后,保存后,就有了。继续编辑产品,可以添加一个年度的。

新增价格。

填写价格。

开单周期选择每年。

然后,点开产品。

复制价格 ID ,填入到环境变量。

BASIC、PRO、MAX 对应 config/payment.ts 中 SUBSCRIPTION_PLANS 的固定 key(大写),只需配置你启用的计划:
STRIPE_SUB_BASIC_MONTHLY=price_xxx
STRIPE_SUB_BASIC_YEARLY=price_xxx
STRIPE_SUB_PRO_MONTHLY=price_xxx
STRIPE_SUB_PRO_YEARLY=price_xxx
STRIPE_SUB_MAX_MONTHLY=price_xxx
STRIPE_SUB_MAX_YEARLY=price_xxx测试一下,选择 Year,Pro 的。

测试卡号:4242 4242 4242 4242,过期日期02/28,持卡人姓名随便填写,CVC 后三位 123 ,地区选择非美国,否则地址还需要填写。

支付以后,webhook 接收 OK。

后台 webhook 状态 OK。

订阅数据,OK。

页面效果,OK。

billing 页面。

允许升降级。

允许取消。

2)如果是非订阅产品,比如。
- 积分包的。

- lifetime 买断制的。

就要单独创建产品了,这个不存在年/月周期,每个产品是一个,创建的时候,和订阅的区别就是,选择一次性。价格正常填写,选择货币就可以了。

积分包环境变量,BASIC、PRO、MAX 对应 config/payment.ts 中 PACKAGES 的固定 key(大写):
STRIPE_CREDITS_BASIC=price_xxx
STRIPE_CREDITS_PRO=price_xxx
STRIPE_CREDITS_MAX=price_xxx买断制环境变量,STANDARD、EXCLUSIVE 对应 config/payment.ts 中 LIFETIME_PLANS 的固定 key(大写):
STRIPE_LIFETIME_STANDARD=price_xxx
STRIPE_LIFETIME_EXCLUSIVE=price_xxx支付一个买断制,看看效果。

webhook接收到了,后端买断制的数据也有了。

可以了。
