假设我让客户订阅一项服务,正如我所见,我需要了解 2 个事件:
Stripe 的事件太多了,很难知道该听哪一个:
invoice.paid
- “在发票付款尝试成功时发生”charge.succeeded
-“在创建新电荷时发生”(那么有什么区别??)invoice.payment_succeeded
- “在发票付款尝试成功时发生。”customer.subscription.created
- “每当客户注册新计划时发生。”现在我知道单个 API 调用可能会发生一些事件,但是,
What should a developer listen to in order to know that his user successfully subscribed, or failed ?
怎么样invoice.paid
不同于 charge.succeeded
?以及如何invoice.payment_succeeded
与那些不同?太乱了,我只需要得到一个是或否。
我阅读了 API https://stripe.com/docs/api/events/types
最佳答案
这归结为你想听什么。charge.succeeded
将在成功支付发票时触发,但也会触发一次性付款。invoice.paid
将在支付发票时触发,但如果您将发票标记为带外支付(例如有人以现金支付给您)也会触发invoice.payment_succeeded
与 invoice.paid
相同,但如果您将发票标记为带外支付,则不会触发。如果您不希望接受带外付款,请考虑使用此事件。customer.subscription.created
将在创建新订阅时触发,这与支付的第一张发票不同(例如,您可以创建带有试用期的订阅,不会立即触发发票支付事件)。
如果您的企业只使用订阅(而不是一次性付款)并且您并不特别关心发票数据,请使用 charge.succeeded
.如果您同时使用这两个事件,那么监听这两个事件以区分这两个事件会很有用。
就您而言,您可能只想听 invoice.payment_succeeded
.拿到发票后看billing_reason
字段:https://stripe.com/docs/api/invoices/object#invoice_object-billing_reason
如果设置为 subscription_create
,然后发送您的祝贺电子邮件。如果是 subscription_cycle
,那是因为订阅进入了新的计费周期,支付成功。
关于stripe-payments - Stripe 订阅事件 webhook 不清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64197693/