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

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

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

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

感谢您的帮助

【问题讨论】:

    标签: laravel stripe-payments payment-gateway


    【解决方案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 服务关闭会发生什么......希望他们将来会提供这个工具来告诉在创建订阅时何时取消。谢谢
    猜你喜欢
    • 2018-11-21
    • 2017-05-12
    • 2015-06-14
    • 2011-08-23
    • 2015-09-01
    • 2014-08-03
    • 2015-01-12
    • 2016-05-11
    • 2014-04-09
    相关资源
    最近更新 更多