在使用subscriptionItems时取消带区订阅或删除并再次添加subscriptionItem并处理订阅日期来源

问题描述

我正在为在线课程提供者工作,学生可以在其中订阅多种教师。

从技术上讲,应用程序内的订阅是通过每个客户的订阅加上每个订阅的教师的subscriptionItem来表示的。我使用subscriptionItems,因为这是处理多个订阅的推荐方式。

问题

在我的情况下,学生订阅教师A。几个月后,该学生取消了对TeacherA的订阅。在订阅期结束之前,他仍然可以访问TeacherA的高级内容,因为他为此付费(在订阅期开始时计费)。几周后,他改变了主意,重新订阅...

如果他在已经付款的订阅月月底之前重新订阅,会发生什么?

我的希望是,当我以相同的价格添加subscriptionItem时,就好像他从未取消订阅一样。但是当我阅读文档时并不清楚。

您是否知道如何处理这种情况?

我的研究

我找到了如何删除订阅项目,但是我没有找到有关如何重新启用/添加这些订阅项目以及如何根据每月订阅日期向客户收费的信息,并且无需额外付费。

解决方法

根据您管理产品的方式,您可能希望考虑使用全新的订阅。如果客户重新使用相同的常规“高级”服务,则保持相同将是有意义的。如果他们现在订阅一些“ Premium B”(在他们订阅“ Premium A”之前),那么新的订阅可能会更好。

不过,要回答您的问题,您可以在期末r e-activate subscriptions set to cancel(但仍处于活动状态),只需update the subscription并设置cancel_at_period_end=false,订阅将继续正常进行。您可以根据需要更新items来更改计划/价格,或保留现有的价格。

如果订阅不再有效,则需要创建一个新的订阅。

更新: 要在取消取消的同时替换现有订阅项目的价格,您可以发送如下请求:

curl https://api.stripe.com/v1/subscriptions/sub_123 \
  -u sk_test_123: \
  -d cancel_at_period_end=false \
  -d 'items[0][id]=si_456' \
  -d 'items[0][price]=price_789'