如何通过Stripe Checkout实现追加服务订阅并享捆绑折扣?
Stripe Checkout实现延后追加服务并享捆绑折扣的方案
核心思路是基于用户现有订阅直接调整,通过优惠券实现捆绑折扣,全程维持同一订阅主体,无需重新创建订阅。具体实现步骤如下:
配置产品与折扣规则
为追加服务创建独立的价格(Price),同时创建专属促销优惠券(Coupon):- 优惠券设置对应捆绑折扣(固定金额/百分比均可),通过
applies_to参数限制仅适用于追加服务的价格ID;额外通过API逻辑校验用户当前订阅包含原服务,确保只有老用户能享受折扣。 - 若希望追加服务和原服务统一管理,也可将追加服务设为原产品的一个升级价格选项,但分开产品的方式更灵活。
- 优惠券设置对应捆绑折扣(固定金额/百分比均可),通过
生成追加购买的Checkout会话
当用户触发追加购买时,调用Stripe Checkout Session创建接口,核心参数配置如下:- 指定
mode: 'subscription',关联用户现有customerID和subscriptionID,Stripe会自动将新服务项追加到现有订阅中,实现同一订阅金额提升。 - 通过
line_items添加追加服务的价格ID,discounts参数传入绑定好的优惠券ID。 - 若需要延后生效,设置
subscription_data.billing_cycle_anchor为期望的生效时间戳,同时配置proration_behavior控制 prorate 逻辑(比如'none'不产生 prorate 账单,或'create_prorations'生成调整账单)。
示例代码(Node.js):
const session = await stripe.checkout.sessions.create({ mode: 'subscription', customer: '现有客户ID', subscription: '现有订阅ID', line_items: [ { price: '追加服务价格ID', quantity: 1, }, ], discounts: [{ coupon: '捆绑折扣优惠券ID' }], subscription_data: { billing_cycle_anchor: 1717209600, // 示例:指定2024-06-01生效时间戳 proration_behavior: 'create_prorations' }, success_url: 'https://your-domain.com/success', cancel_url: 'https://your-domain.com/cancel', });- 指定
订阅变更后的同步逻辑
监听Stripe的subscription.updatedWebhook事件,在事件触发后同步更新用户在你的系统内的服务权限,确保用户能正常使用追加的服务。资格校验(可选)
在生成Checkout会话前,调用stripe.subscriptions.retrieve接口获取用户现有订阅信息,确认其已购买原服务,避免不符合条件的用户使用折扣优惠券。
内容的提问来源于stack exchange,提问作者Vladimir
相关产品推荐
相关产品推荐

