stripe-payments - Stripe - 更改计划后,在当前周期结束之前不要为新订阅计费
问题描述
我想让用户更改他们的订阅计划。但是,切换后不会退还。如果我将按比例设置为 false,stripe 将立即为新订阅计费。
例如,如果用户在 2018 年 6 月订阅了包年套餐,并希望在 2018 年 10 月更改为包月套餐。他们将在 2019 年 6 月之后按包月套餐收费,因为当前周期尚未结束。
更新当前订阅时如何使用条带 API?
在条带 api 文档(https://stripe.com/docs/api/subscriptions/update)中“如果在不同的计费间隔(例如,每月到每年)之间切换时将按比例设置为 false,我们将不会生成任何旧订阅未使用时间的积分 - 尽管我们仍将重置计费日期并立即为新订阅计费。”
解决方案
2019 年,Stripe 提供了对订阅计划的支持,允许您控制订阅的多个顺序阶段。您可以在文档中阅读更多相关信息:https ://stripe.com/docs/billing/subscriptions/subscription-schedules
使用此 API,您现在可以明确安排订阅的未来更改。我们的想法是使用 Create SubscriptionSchedule API从您的订阅中获取一个时间表,并计划第二阶段以在下一个计费周期将订阅移动到新价格。
过去的答案,仍然有效,但优化程度较低:
一种解决方案是遵循以下步骤:
- 将当前订阅标记为在当前周期结束时取消,这样您就不会再次尝试向该客户收费。
- 为每月计划创建一个新订阅,但让客户处于试用期,直到当前订阅结束(在您的示例中为 2019 年 6 月)。这允许您在其他订阅结束之前不向他收费,以便您按预期将客户切换到每月计划。
推荐阅读
- azure-keyvault - get-azurekeyvaultkey 不返回“公钥”
- c# - 仅在一侧与导航属性的一对多关系?
- string - Rust 中的字符串引用比较
- javascript - 从数组中随机抓取 3 个项目,其中第 3 个项目可以是“餐厅”,但不一定是
- linux - 使用“python3 -m http.server 8080”时如何进入我的桌面?
- python - 将查询中的mongodb值转换为python中的字符串
- rust - 如何存储实现共同特征的结构(不是实例)?
- azure - Databricks 上的 sdk AutoML
- c++ - 为什么我会收到“无匹配功能”错误?
- flutter - 如何在小部件被处理之前保存数据