我正在使用Stripe API和Laravel 5.4
我的业务逻辑要求用户拥有1个subscription
,如果用户需要添加更多功能,则他们将作为subscription items
添加到该主要subscription
中。
现在,如果用户要取消他请求的一项服务(功能),则他需要能够在当前计费期的剩余时间内使用该功能,并且只应在使用的时间内计费。
在API文档中,我看到可以通过设置subscription
来使用cancel_at_period_end = true
来实现此目的,但是在{中只处理subscription item
时似乎找不到等效项。 {1}}。
将感谢您的任何建议。谢谢
答案 0 :(得分:2)
subscription_item
(以及plan
)目前不支持在结算期结束时自动将其删除。
解决方法:
subscription
,将订阅设置为cancel_at_period_end = true
。subscription
相同的subscription_items
创建新的subscription
(除了要取消的商品),但将其设置为免费试用,直到与当前subscription
相同的时间。使用该方法,客户可以继续使用其所有功能,直到结算期结束为止。在重叠时间内完全不会收取“新”订阅的费用。在当前结算期结束时,旧订阅将终止,新订阅将开始。
答案 1 :(得分:0)
您可以更新订阅,使其在结算周期结束时到期,如the documentation中所述。
const subscription = await stripe.subscriptions.update(
'sub_IlS7kzn3wPGV9D',
{cancel_at_period_end: true}
);