用途:为 Web 应用实现生产级 Stripe 支付与订阅计费集成,覆盖 Next.js、Express、Django 等模式。
主要能力:订阅生命周期管理(创建、升级、降级、取消、暂停);试用处理与转化跟踪;按比例计费与抵扣计算;基于用量的计量计费;带签名验证的幂等 Webhook 处理器;客户门户集成;发票生成与 PDF 访问;Stripe CLI 本地测试配置。
使用方式:通过环境变量配置密钥与各套餐 Price ID,创建 Stripe 客户端;用 Checkout Session 发起订阅(可带 trial_period_days);升级用 proration_behavior: "always_invoice" 立即生效,降级用 "none" 在周期末生效,升级前可用 retrieveUpcoming 预览按比例金额;Webhook 需用 constructEvent 验证签名,并以事件 ID 表做幂等去重,处理失败返回 500 让 Stripe 重试;用量计费用 createUsageRecord 上报;客户门户用 billingPortal.sessions.create 生成链接。本地测试可执行 stripe login、stripe listen --forward-to localhost:3000/api/webhooks/stripe 及 stripe trigger 触发事件。
适用场景:为应用添加订阅计费、实现套餐升降级与按比例计费、构建用量或席位计费、排查 Webhook 投递失败、迁移计费模型。
限制与注意:Webhook 投递顺序不保证,更新数据库前应重新从 Stripe API 获取数据;必须使用幂等表防止重复处理;需在数据库记录 hasHadTrial 防止试用滥用;升级前应预览按比例金额;客户门户需在 Stripe 后台启用;Checkout 必须传 userId 元数据以关联用户。资料未提供具体收费、价格或效果数据。