java - Stripe invoice.payment_succeeded webhook 被多次触发

标签 java stripe-payments webhooks

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

  1. 使用 Customer.create(customerParams) 为客户订阅在 stripe 中创建的现有计划。据我所知,它将创建客户、订阅计划、创建发票、收取发票费用。

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

我得到以下内容,

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

  2. 此 webhook 在特定时间间隔(大约 30 分钟左右)内被调用多次(甚至超过 3 次),使用不同的发票 ID、客户 ID、费用 ID。

我的问题:

  1. 为什么同一事件有多个 webhook 调用?
  2. 如果是支付失败的重试,实际上并没有失败的支付。调用始终是为了 invoice.payment_succeeded。
  3. 即使该事件重复发生,为什么 customer_id、invoice_id 每次都不同,因为它应该是相同的,因为付款只完成了一次。

如有任何帮助,我们将不胜感激。提前致谢。

最佳答案

如果客户 ID、发票 ID 和费用 ID 不同,则不是同一事件。

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

Stripe 将发送 invoice.payment_succeeded每次成功支付任何发票时的事件。

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

你可以查一下attempt_count任何 invoice object 上的属性了解这是否是给定发票的第一次付款尝试。

关于java - Stripe invoice.payment_succeeded webhook 被多次触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34692942/

相关文章:

c# - Twilio 入站调用状态更改正在进行中

python - 获取分支名称我在 Pull Requests 上使用 GitHub Webhook 处理

java - 用于 View 的 Hibernate orm

firebase - flutter 包 flutter_stripe 是否需要后端来处理付款?

java - Android 相机 setJpegQuality 被忽略

android - 在 Stripe 付款上显示每小时价格而不是存款价格

javascript - Stripe 自定义结帐未发布

php - Laravel Cashier webhook 不起作用

java - Hybris 站点地图不包含所有产品

java - 无法在 Selenium Java 中找到图像 xpath