Stripe Webhook事件续订订阅

时间:2014-03-24 05:10:41

标签: asp.net stripe-payments webhooks stripe.net

我在Asp.net应用程序中使用STRIPE进行信用卡付款。应用程序有月度订阅计划。用户首次订阅webhook事件' customer.subscription.created'被解雇。我的问题是,在下个月订阅续订时会发生哪些事件?谁能告诉我订阅续订webhook事件的流程?

由于

4 个答案:

答案 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中更新客户的订阅时,会发生一些事情,每个事件都有相应的事件:

  1. 已创建发票 - invoice.created
  2. 订阅结算周期已更新 - customer.subscription.updated
  3. 一小时后(给您时间添加任何额外费用)条纹尝试向客户收费。
  4. 如果付款成功,则会引发invoice.payment_succeeded事件。
  5. 在您自己的应用程序中处理这些事件的方法是注册webhook; Stripe将事件的详细信息发送到的HTTP端点。

    1. 使用条带标识符(包含在事件有效内容中)查找客户订阅。
    2. 从Stripe API中检索订阅详细信息。
    3. 使用Stripe订阅CurrentPeriodStartCurrentPeriodEnd更新我们订阅的period_startperiod_end
    4. 使用Stripe事件中的详细信息创建客户发票。

答案 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是用于全新的订阅。