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

best way to handle stripe subscription upgrade and downgrade

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

我有 2 个用户订阅的产品,BasicPlus,都是 paid.When 我从 Basic 升级到 Plus,我执行以下操作:

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

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

现在这整个senerio对我来说很陌生。使用条带更新 api 来处理我的 upgrade/downgrade 的最佳方法是什么。我正在使用 NodeJs.

提前致谢

客户无需拥有两个单独的订阅 - 您可以使用一个订阅来管理它,该订阅以不同的方式更新,具体取决于是升级还是降级。

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

  1. 从现有订阅生成订阅计划(参见 example
  2. 使用订阅时间表和 update it 添加一个附加阶段(传递到 phases)。在更新请求期间,您将分两个阶段进行 - 第一阶段应该是订阅计划中现有的当前阶段,第二阶段应该代表通过设置 phases[1][iterations]: 1、[=12= 降级后的订阅], 和 phases[1][items][0][quantity].

Upgrade Stripe 的文档有很好的示例,说明如何通过设置 items[0].id 您检索到的 ID 和 items[0].price 以新价格。根据您是否想要按比例分配,您还可以设置 proration_behavior.