Stripe:更新订阅还是取消并创建新订阅?
Posted
技术标签:
【中文标题】Stripe:更新订阅还是取消并创建新订阅?【英文标题】:Stripe: Update subscription or cancel and create new one? 【发布时间】:2021-10-24 20:21:06 【问题描述】:我们有一种产品有 4 种不同的价格(基本款、中间款等)。假设用户购买了基本套餐(支付会话是在创建支付完成订阅后创建的),但过了一段时间,用户决定更改他的套餐并升级到高级套餐。在那种情况下我应该使用更新订阅吗?
这实际上是从 X$ 更新到 Y$ 包
var service = new SubscriptionService();
Subscription subscription = service.Get("sub_49ty4767H20z6a");
var items = new List<SubscriptionItemOptions>
new SubscriptionItemOptions
Id = subscription.Items.Data[0].Id,
Price = "price_CBb6IXqvTLXp3f",
,
;
var options = new SubscriptionUpdateOptions
CancelAtPeriodEnd = false,
ProrationBehavior = "create_prorations",
Items = items,
;
subscription = service.Update("sub_49ty4767H20z6a", options);
或者只是取消当前订阅并创建新订阅?我为什么要问这个,因为我和 Stripe 的支持人员聊天,得到了两个不同的答案。其中一个告诉我我需要使用 update_subscripton,另一个告诉我需要附加新订阅。我很困惑。
【问题讨论】:
【参考方案1】:你在这里描述的方式,upgrade the subscription 的更新对我来说更有意义。仔细注意预期的proration 行为(是否要记入当前计划剩余的时间)以及是否要shift the billing period。
我还要指出,您应该考虑切换到单独的产品。产品是您销售的单一商品/服务,而价格代表不同的计费间隔和货币。如果您想象某些服务具有白银级、黄金级和白金级访问级别,那么它们中的每一个都是不同的产品——它们具有更多功能! Product 也是发票上显示的内容。因此,除非您使用单独的产品,否则发票将与支付的费用无法区分。
大多数情况下,您所做的事情并不会带来任何特定的障碍,但Customer Portal 会在每个时间间隔对每个产品强制执行一个价格。如果您对“相同产品”有两个年度价格但数量不同,为什么有人会支付更高的价格?这是因为他们为不同的东西、不同的产品付费。
【讨论】:
以上是关于Stripe:更新订阅还是取消并创建新订阅?的主要内容,如果未能解决你的问题,请参考以下文章