我在我的Asp.net应用程序中使用STRIPE进行信用卡支付。该应用程序有一个每月订阅计划。当用户首次订阅时,会触发Webhook事件'customer.subscription.created'。 我的问题是下个月订阅续订时会发生什么,并将触发哪些事件? 有谁能告诉我订阅续订Webhook事件的流程吗?
谢谢。
我在我的Asp.net应用程序中使用STRIPE进行信用卡支付。该应用程序有一个每月订阅计划。当用户首次订阅时,会触发Webhook事件'customer.subscription.created'。 我的问题是下个月订阅续订时会发生什么,并将触发哪些事件? 有谁能告诉我订阅续订Webhook事件的流程吗?
谢谢。
Webhook 'invoice.payment_succeeded'具实际区分新订阅的第一次收费和后续续订收费。
Webhook发送一个包含'billing_reason'
的发票对象,可能的值在Stripe文档-发票对象中进行了说明:
billing_reason
(string)
“表示创建发票的原因。subscription_cycle
表示由订阅进入新期间而创建的发票。 subscription_create
表示由于创建订阅而创建的发票。 subscription_update
表示由于更新订阅而创建的发票。subscription
适用于所有旧发票,以指示对订阅或期间的更改。手动设置所有与订阅无关的发票(例如:通过发票编辑器创建)。将预备价值保留给模拟发票,按照即将到来的发票端点。”
如果billing_reason == 'subscription_cycle'
,则webhook用于订阅续订。
如果 billing_reason == 'subscription_create'
,那么这个 Webhook 是为了一个全新的订阅。
续订订阅:
当Stripe中的客户订阅续订时,会发生许多事情,每个事件都有相应的事件:
invoice.created
customer.subscription.updated
invoice.payment_succeeded
事件。处理自己应用程序中的这些事件的方法是注册Webhook; 一个HTTP端点,Stripe将向其发送事件详细信息。
period_start
和period_end
更新我们的订阅的CurrentPeriodStart
和CurrentPeriodEnd
。customer.subscription.created
,您还会收到一个invoice.created
事件,接下来是invoice.payment_succeeded
(或invoice.payment_failed
)。invoice.created
事件。
然后Stripe将等待一个小时以允许将发票项目添加到发票中(如果您需要的话),然后才会收取客户的卡费,并触发charge.succeeded
(如果收费成功)或charge.failed
(如果收费失败)事件。invoice.payment_succeeded
事件:charge.succeeded
事件, 但它们的区别在于 invoice.payment_succeeded
只针对发票付款,而 charge.succeeded
还包括单独的收费。Stripe建议使用invoice.paid
事件。
您可以通过设置Webhook端点并监听
invoice.paid
事件来确认发票是否已支付,从而为您的产品提供访问权限。
https://stripe.com/docs/billing/subscriptions/overview#subscription-lifecycle
https://stripe.com/docs/api/events/types#event_types-invoice.paid
subscription_cycle
传递。 - richardw