【问题标题】:Detect automatic cancellation of Stripe subscription with cancel_at_period_end true使用 cancel_at_period_end true 检测 Stripe 订阅的自动取消
【发布时间】:2017-05-23 20:33:00
【问题描述】:

在我的 Stripe-Connect 应用中,我想处理 Stripe customer.subscription.deleted 付款尝试失败后自动取消订阅时生成的 webhook(基于付款失败的订阅设置)。

Stripe documentation 声明: “如果 customer.subscription.deleted 事件的 request 属性为空,您可以看到订阅已自动取消,而不是您的请求。” 另见Detect if subscription is cancelled automatically

但是,如果订阅的 cancel_at_period_end 设置为“true”,则 customer.subscription.deleted 事件的 request 属性似乎为 null,即使订阅在期末“自然”结束,而不是结果失败的付款尝试。

所以,我的问题是,我如何才能检测到由于付款尝试失败而取消了 cancel_at_period_end 设置为 true 的订阅?

【问题讨论】:

    标签: stripe-payments webhooks stripe-connect


    【解决方案1】:

    不幸的是,目前无法区分这两种情况。我建议您在当前期间结束时存储您已将订阅标记为取消。这样,当您收到customer.subscription.deleted 事件时,您可以根据您端的该标志检查它是否来自付款失败。

    另一种解决方案是查看该订阅的最新发票。您将能够查看 attempt_count 属性以查看对其进行了多少次重试,并推断取消是否来自上次尝试。

    【讨论】:

    • 是的,我就是这么想的。哦,好吧,还是谢谢!我真的不喜欢基于尝试计数来推断这一点的想法,因为这会在订阅失败的支付尝试设置上引入耦合。换句话说,如果不假设订阅失败支付设置中配置了什么,我怎么知道尝试计数的值确定这确实是一次失败的支付?
    • 是的,您需要推断其中的一部分,但这是一个备份解决方案。在我看来,正确的解决方案是自己跟踪。
    猜你喜欢
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多