Stripe变更订阅套餐不按未使用时长prorate的实现方案咨询
Stripe订阅升降级禁用未使用时长折算实现方案
Stripe官方已经预留了对应配置参数,不需要自定义改造底层计费逻辑,两种实现方式可以按需选择:
核心实现逻辑
调用订阅更新接口stripe.subscriptions.update时,传入proration_behavior: 'none'参数即可同时满足你的两个需求:
- 升级套餐时:保留原有计费周期,直接收取新旧套餐全额差价,不会抵扣原套餐未使用时长的折算金额,下一个计费周期才会按新套餐全额计费
- 降级套餐时:当前计费周期仍按原高价位套餐计费,不会向用户账户发放任何抵扣credit,下一个计费周期才会切换为降级后的低价位套餐计费
接口调用示例(Node.js SDK)
const subscription = await stripe.subscriptions.update( 'sub_xxxxxx', // 待修改的目标订阅ID { items: [{ id: subscription.items.data[0].id, price: 'price_xxxxxx', // 新套餐对应的Stripe Price ID }], // 核心参数:禁用未使用时长比例折算 proration_behavior: 'none', // 按需配置支付行为,此处示例为允许未完成支付的订阅生效 payment_behavior: 'default_incomplete', expand: ['latest_invoice.payment_intent'] } );
无代码简便方案
如果你的业务所有订阅升降级都统一适用该规则,不需要分场景差异化处理,可以直接登录Stripe后台,在「订阅设置」页面全局关闭「按使用时长比例计费(Proration)」的默认开关,配置完成后所有升降级操作默认不会触发折算逻辑,不需要修改任何业务代码。
内容的提问来源于stack exchange,提问作者Naltamer14
相关产品推荐
相关产品推荐

