我对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
和charge.succeeded
。 - 然而,订阅生命周期的文档(https://stripe.com/docs/subscriptions/lifecycle)根本没有提到
customer.subscription.updated
事件。
看起来很奇怪,应该触发这样一个适当的事件,但它没有被触发。文档也没有确切说明何时更新current_period_end
和current_period_start
值,这限制了它们的实用性。
因此,在我的应用程序中,收到invoice.payment_succeeded
事件后,我的编程代码如何确定客户的订阅周期何时结束?