php 如何在结算期结束时取消Stripe中的订阅项目

yxyvkwin  于 2023-06-04  发布在  PHP
关注(0)|答案(2)|浏览(148)

我正在使用Stripe API和Laravel 5.4
我的业务逻辑要求用户有1个subscription,如果用户需要添加更多功能,它们将作为subscription items添加到主subscription
现在,如果用户要取消他所请求的服务(功能性)之一,则他需要能够在当前计费周期的剩余时间内使用该功能性,并且应该仅对所使用的时间进行计费。
在API文档中,我看到我可以通过设置cancel_at_period_end = true来使用subscription实现这一点,但在处理subscription中的subscription item时,似乎找不到等效的方法。
会很感激任何建议。谢谢

zfciruhq

zfciruhq1#

subscription_item(以及plan)目前不支持在计费周期结束时自动删除它。
解决方法:
1.对于当前的subscription,将订阅设置为cancel_at_period_end = true
1.创建一个新的subscription,其中所有subscription_items与原始subscription相同(除了他们正在取消的项目),但将其设置为免费试用,直到与当前subscription相同的时间。
使用这种方法,客户可以继续使用他们的所有功能,直到计费周期结束。“新”订阅在重叠时间内根本不会收费。在当前计费周期结束时,旧订阅将结束,新订阅将开始。

bwleehnv

bwleehnv2#

the documentation所述,您可以更新订阅,使其在计费周期结束时到期。

const subscription = await stripe.subscriptions.update(
  'sub_IlS7kzn3wPGV9D',
  {cancel_at_period_end: true}
);

相关问题