多次触发条纹invoice.payment_succeeded webhook

时间:2016-01-09 11:35:04

标签: java stripe-payments webhooks

我正在使用Stripe(测试模式)在我的应用程序中开发支付模块。我做了以下工作,

  1. 使用Customer.create(customerParams)将客户订阅到以条带形式创建的现有计划。据我所知,它将创建一个客户,订阅该计划,创建发票,收取发票。

  2. 我只为invoice.payment_succeeded(paymentSuccess)和invoice.payment_failure(paymentFailure)添加了一个webhook。在我的应用程序中创建了一个webhook。

  3. 我得到以下内容,

    1. 调用Customer.create(customerParams)后,我的paymentSuccess webhook成功调用,我可以使用它检索事件,发票,费用和客户详细信息,以便在我的应用程序中处理它。付费标志设置为true。

    2. 在特定时间间隔内(约30分钟左右),此会话不止一次(甚至超过3次)被调用,具有不同的发票ID,客户ID,费用ID。

    3. 我的问题:

      1. 为什么同一事件有多个webhook调用?
      2. 如果是重试失败的付款,实际上没有付款失败。电话始终是invoice.payment_succeeded。
      3. 即使重复该事件,为什么customer_id,invoice_id每次都不同,因为它应该是相同的,因为付款只进行了一次。
      4. 非常感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:2)

如果客户ID,发票ID和费用ID不同,那么它就不是同一个事件。

您可能有多个客户在您的帐户中设置了订阅。

每次任何发票付款成功时,Stripe都会发送invoice.payment_succeeded个事件。

如果您有多个订阅客户,Stripe会在每个结算周期开始时自动为每个客户创建发票,并在创建后大约一小时尝试为这些发票付款。

您可以在任意attempt_count上查找invoice object属性,以了解这是否是给定发票的首次付款尝试。