Stripe 提前续订订阅

Posted

技术标签:

【中文标题】Stripe 提前续订订阅【英文标题】:Stripe early renewal subscription 【发布时间】:2021-05-22 23:59:25 【问题描述】:

我一直在阅读 Stripe API 文档,但我还没有找到明确的答案,也许有人知道。我为客户预付一年的 Stripe 订阅。我想为他们提供在到期日之前将订阅续订一年的选项(最多提前 60 天)。是否可以将当前有效订阅设置为再延长一年(在同一到期日结束,仅一年后)而不让 Stripe 自动续订?谢谢!

【问题讨论】:

【参考方案1】:

没有直接的方法可以做到这一点,但您可以做的是创建一张发票来接受付款,然后创建一个Customer Balance Transaction 来存储“信用”,这样当他们续订时,余额为零到期值得称赞。

【讨论】:

【参考方案2】:

我们的解决方案是使用订阅时间表和一个在阶段变化时触发的webhook。因此,我们将第 1 阶段的 end_date 放在当前订阅结束之前。因此,当 webhook 注意到阶段变化时,我们可以获取前一个月的订阅并将订阅的 de billing_cycle_anchor 设置为 now

【讨论】:

我不喜欢使用订阅计划,因为您无法将它们设置为无限期自动续订。相反,您必须设置任意数量的“阶段”并记住在某个时候手动扩展它们。此外,您不能使用 Stripe Dashboard 创建订阅计划。【参考方案3】:

我们计划在 Stripe 订阅中设置一个自定义元数据属性 notify-days-before-renewal,该属性将指定在续订前的天数我们将发送续订通知。

但是这里有两个挑战:(1) Stripe 不会对这个元数据值本身采取行动,所以我们必须自己设置一些东西。 (2) Stripe没有“合约期限”的概念,只有计费频率。例如,如果您有一份按月计费的年度合同,Stripe 会将其视为月度合同。

对于 (2),我们有按月和按年计费的客户,但只有我们的年度客户需要自定义提前续订通知。这意味着我们可以假设下一个计费数据也是合同续签日期。

对于 (1),我们将使用每 24 小时运行一次的 Zapier zap。 zap 将获得所有订阅的列表,对于每个订阅,查找notify-days-before-renewal 属性和下一个计费日期。然后它将计算从今天到下一个账单日期之间的天数,如果该数字正好等于notify-days-before-renewal,那么它将向客户的账单电子邮件地址发送电子邮件通知。

我认为这里真正的解决方案是将客户的合同期限作为一流的概念进行跟踪,Stripe 未来有望支持这一概念。那么理想情况下,Stripe 将允许我们在订阅续订前 X 天设置每个订阅的 webhook。

在此之前,这个被黑的解决方案是我们能想到的最好的解决方案。

【讨论】:

以上是关于Stripe 提前续订订阅的主要内容,如果未能解决你的问题,请参考以下文章

在 Stripe 上测试订阅续订

iOS 提前续费?

条纹存款(预付)付款。需提前2个月向客户收费

使用 Stripe 订阅 Node.js 进行身份验证

在 Stripe 上设置自定义计费周期

如何识别 Stripe webhooks 类型?