使用cancel_at_period_end true检测Stripe订阅的自动取消

时间:2017-01-09 14:40:44

标签: stripe-payments webhooks stripe-connect

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

Stripe documentation州: “如果customer.subscription.deleted事件的请求属性为null,您可以看到订阅被自动取消 - 而不是您的请求。” 另请参阅Detect if subscription is cancelled automatically

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

所以,我的问题是,如何因为付款尝试失败而检测到cancel_at_period_end设置为true的订阅已被取消?

1 个答案:

答案 0 :(得分:1)

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

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