我在Asp.net应用程序中使用STRIPE进行信用卡付款。应用程序有月度订阅计划。用户首次订阅webhook事件' customer.subscription.created'被解雇。我的问题是,在下个月订阅续订时会发生哪些事件?谁能告诉我订阅续订webhook事件的流程?
由于
答案 0 :(得分:5)
除customer.subscription.created
之外,您还会收到invoice.created
后跟invoice.payment_succeeded
(或invoice.payment_failed
)
来自文档:
如果您使用的是网络挂钩,Stripe将在所有成功尝试支付发票后等待一小时;这里唯一的例外是第一张发票,当您订阅客户参与计划时,会立即创建并支付。
所以,这意味着,invoice.created
事件也将在下个月开火
然后条纹将等待一小时,然后向客户卡收费,然后触发charge.succeeded
(如果收费成功)或charge.failed
(如果收费失败)
小时等待是允许将发票项目添加到发票中,如果您愿意的话。
有关您可能需要执行此操作的详细信息,请参阅我的answer on this question
答案 1 :(得分:3)
您需要关注invoice.payment_succeeded
事件:
查看:https://stripe.com/docs/api#event_types
每次支付发票时都会触发此事件。还会发生charge.succeeded
事件,但区别在于invoice.payment_succeeded
仅针对发票付款,而charge.succeeded
也会针对独立费用发生。
订阅的第一笔费用与定期费用之间没有任何区别,尽管您存储的逻辑(例如,订阅创建时,以及 到期等)应该帮助你消除歧义。
答案 2 :(得分:2)
续订订阅
当在Stripe中更新客户的订阅时,会发生一些事情,每个事件都有相应的事件:
invoice.created
customer.subscription.updated
invoice.payment_succeeded
事件。在您自己的应用程序中处理这些事件的方法是注册webhook; Stripe将事件的详细信息发送到的HTTP端点。
CurrentPeriodStart
和CurrentPeriodEnd
更新我们订阅的period_start
和period_end
。答案 3 :(得分:0)
webhook的“ invoice.payment_succeeded”实际上可以区分新订阅的第一笔费用和后续的续订费用。
webhook发送一个发票对象,其中包括'billing_reason'
-可能的值在Stripe Docs - The Invoice object中注明:
billing_reason
(串)
“说明了创建发票的原因。
subscription_cycle
表示由订阅进入新期间而创建的发票。 subscription_create
表示由于创建订阅而创建的发票。 subscription_update
表示由于更新订阅而创建的发票。为所有旧发票设置了 subscription
,以指示对订阅的更改或期间的提前。为与订阅无关的所有发票设置了手册(例如:通过发票编辑器创建)。每个即将到来的发票端点将为即将来临的发票保留即将到来的值。“
如果billing_reason == 'subscription_cycle'
的Webhook用于订阅
更新。
如果billing_reason == 'subscription_create'
的Webhook是用于全新的订阅。