处理条带订阅升级和降级的最佳方式

usm*_*121 4 stripe-payments

我在文档中读到,条带只有一个用于升级和降级订阅更新的 api。

我有 2 个用户订阅的产品,Basic并且Plus都是付费的。当我从 Basic 升级到 Plus 时,我执行以下操作:

  • 为用户订阅另一个产品。
  • 从订阅中删除以前的产品。

这意味着在某个时刻,用户在一次订阅中订阅了两种产品。最好的处理方法是什么?

现在,如果用户降级,我的业务逻辑是不要立即取消当前订阅。例如,如果用户想从 Plus 转到 Basic。Plus 完成后,Basic 将开始。这是我目前的处理方式:

  • 取消当前的订阅属性cancel_at_period_end: true
  • 使用 开始下一个订阅trial period,因此当前订阅结束后用户需要付费

现在这整个塞内里奥对我来说非常奇怪。使用 stripe 的更新 api 处理升级/降级的最佳方法是什么?我在用NodeJs

先感谢您

小智 6

客户无需拥有两个单独的订阅 - 您可以使用单个订阅进行管理,该订阅根据是升级还是降级以不同的方式更新。

降级 为订阅创建订阅计划,这将允许您安排未来订阅的更改。时间表可能会变得非常复杂,因此我强烈建议阅读 Stripe 的所有文档并浏览 Schedules API ref。在当前计费周期结束时更改订阅价格的一般流程如下:

  1. 从现有订阅生成订阅计划(参见示例
  2. 获取订阅计划并更新它以添加附加阶段(传递到phases)。phases[1][iterations]: 1您将在更新请求期间分两个阶段传递 - 第一个阶段应该是订阅计划中现有的当前阶段,第二个阶段应该代表通过设置、phases[1][items][0][price]和降级后的订阅phases[1][items][0][quantity]

升级Stripe 的文档已经在这里提供了如何执行此操作的很好的示例。快速总结一下,您需要检索订阅,获取要更改的项目的订阅项目 ID ,并通过设置您检索到的 ID 和新价格来发出更新请求。根据您是否想要按比例分配,您还可以设置。items[0].iditems[0].priceproration_behavior