【发布时间】:2017-02-19 17:50:36
【问题描述】:
我很困惑为什么 Stripe 的文档建议 customer.subscription.updated 事件在我认为它应该被触发时没有被触发:
- Stripe
subscription对象具有属性current_period_start和current_period_end,只要客户成功支付订阅发票 (https://stripe.com/docs/api#subscriptions),这些属性就会更新 -
customer.subscription.updated事件的文档指出它...在订阅更改时发生。示例包括从一种计划切换到另一种计划,或者将状态从试用切换到活动。
...这意味着如果
current_period_start和current_period_end值发生变化,将引发该事件,但在这种情况下它不会确认它是否发生。但是这个第三方网页声明在执行成功续订时不会引发它(https://www.masteringmodernpayments.com/stripe-webhook-event-cheatsheet#8)。
但是提出这个事件是有道理的......
- 当然,如果应用程序只需要监控单个事件类型(即
customer.subscription.updated),那么它将大大简化程序代码,而无需同时监控invoice.payment_succeeded、invoice.created和@987654334 @。 - 但是订阅生命周期的文档 (https://stripe.com/docs/subscriptions/lifecycle) 完全没有提到
customer.subscription.updated事件。
这样一个适当的事件却没有在应该发生的时候引发,这似乎很奇怪。文档也确实没有说明 current_period_end 和 current_period_start 值何时更新,这限制了它们的实用性。
那么在我的应用程序中,在收到invoice.payment_succeeded 事件后,我的程序代码如何确定客户的订阅期何时结束?
【问题讨论】: