Stripe:处理第一个订阅和Webhook事件

thi*_*405 3 webhooks stripe-payments

  1. 我的客户第一次加入我们的下标计划,我创建了一个交易(称为START-transaction),并使用Stripe的API创建新的订阅,并将订阅对象返回存储在上述交易中。

  2. 我还使用webhook来捕获Stripe的事件。我最大的目的是处理定期付款(发送有关充电成功或失败的通知,以及与客户互动的信息)。我捕获到事件invoice.payment_succeed以检测到这是账单。我也创建了一个事务(称为RECURRENCE),因此,我将事件对象存储在事务中。(基于事件invoice.payment_succceed中的订阅信息,我找出相对START交易并创建一个新交易,只要RECURRENCE)

问题就暴露出来了,在客户第一次创建计划时,有6个事件被召回我的系统:customer.created; 收费成功;发票已创建;发票。付款成功; 客户卡已创建;客户创建。因此,我的客户第一次有2-transactiona:1-START和1-RECURRENCE。

您是否建议我删除RECURRENCE交易?

谢谢。

Ywa*_*ain 6

听起来您好像想知道invoice.payment_succeeded接收到的事件是否是第一次付款(您已经在“ START交易”中处理过),或者不是(在这种情况下,您想要在“ RECURRENCE交易”中进行处理) 。

最简单的方法是查看事件对象request属性。因为第一张发票是您的订阅创建请求的直接结果,所以第一invoice.payment_succeeded事件的request属性值将为非null 。后续发票由Stripe在后台创建,因此事件的request属性值为空。


And*_*mbe 6

您可以使用 Stripe 请求billing_reason来确定它是首次订阅、定期付款还是更新的发票付款。请参阅https://stripe.com/docs/api/invoices/object#invoice_object-billing_reason