Stripe:n 次付款后过期/取消订阅

Posted

技术标签:

【中文标题】Stripe:n 次付款后过期/取消订阅【英文标题】:Stripe: Expire/Cancel subscription after n payments 【发布时间】:2018-02-13 13:01:14 【问题描述】:

在我们的应用中,我们为运行良好的用户创建订阅,订阅可能因计划类型而异。但我不知道如何在用户全额付款后取消订阅。

是否有任何参数我们可以在创建订阅时告诉条带,告诉它何时应该取消订阅或告诉它在n 付款次数后取消它?

因此,基本上,如果客户购买了 1000 美元的产品,我们会向他收取每月 100 美元的费用,但在他全额付款后自动取消订阅。

感谢您的帮助

【问题讨论】:

【参考方案1】:

我在这里回答了这个问题:Stripe cancel subscription at specific date

Stripe 刚刚将它添加到他们的 API 中,我偶然发现了它。他们有一个名为“cancel_at”的字段,可以设置为将来的日期。他们的文档中没有列出此属性,因为它太新了。您可以在此处查看响应对象中的值:

https://stripe.com/docs/api/subscriptions/create?lang=php

我已经使用 .NET 对此进行了测试,并且可以确认它会将订阅设置为在​​您提供的值时到期。

【讨论】:

取消订阅请求无效。 'Received unknown parameter: cancel_at'。它允许更新,如果将来取消订阅,则等待结果 @Adam,这不是为了取消。对此有一个特定的要求,即设置订阅应结束的日期。【参考方案2】:

当您在 Stripe 中创建订阅时,无法告诉 Stripe 在 N 个月后或达到给定数量时停止订阅。

来自documentation:

默认情况下,订阅继续,客户继续 计费,直到它被取消

因此,您可以做的是在满足给定条件后取消订阅。

您可以使用 webhooks 在每次向客户计费时收到通知,在每个计费周期结束时使用 invoice.payment_succeeded 事件(文档 here)。

您可以通过某种方式在您的数据库中跟踪客户支付的总金额,以及在您出售的商品“全额支付”之前剩余的金额。

每次获得 webhook 时,您都会增加总数,如果达到所需的金额,您将取消订阅,这样下个月就不会向客户收费。

【讨论】:

谢谢,因为在条带中没有内置的方式,这就是我现在要走的路线。唯一需要注意的是,如果向客户收费并且他们的 webhook 服务关闭会发生什么......希望他们将来会提供这个工具来告诉在创建订阅时何时取消。谢谢

以上是关于Stripe:n 次付款后过期/取消订阅的主要内容,如果未能解决你的问题,请参考以下文章

Stripe Checkout 订阅付款失败重定向到过期链接页面

订阅取消后 Stripe API 退款

Stripe 取消 url 不会取消付款,因此 Stripe 不会发送取消付款意图

带有付款意图的 Stripe Refund

Stripe:更新订阅还是取消并创建新订阅?

贝宝中 Stripe 的“cancel_at_period_end”等价物?