【问题标题】:Stripe invoice.payment_succeeded webhook is triggered multiple times多次触发 Stripe invoice.payment_succeeded webhook
【发布时间】:2016-04-14 01:46:52
【问题描述】:

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

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

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

我得到以下信息,

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

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

我的问题:

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

任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: java stripe-payments webhooks


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 感谢您的回复。实际上,没有其他客户订阅该特定计划。所以,澄清一下,1.我有一个“基本”计划
    • 感谢您的回复。实际上没有其他客户订阅。因此,澄清一下,1. 我有一个“基本”计划 2. 在不同日期(1 月 1 日和 11 月 15 日)订阅了 2 位客户“alex and john”到该计划。 3. 因此,在 1 月 1 日,生成 alex 的发票并尝试付款,invoice.payment_succeeded 挂钩将被触发。因此, invoice.payment_succeeded 挂钩处理程序将被调用一次。 4. 那么,在 1 月 1 日,john 的 invoice.payment_succeeded 钩子也会被触发吗?如果是这样,为什么它应该只在 11 月 1 日?
    • 嗨,卡里卡兰。您应该就此事写信给 Stripe 的支持部门,这样我们就可以直接查看您的帐户,并清楚地解释正在发生的事情。您可以使用support.stripe.com/email 的表格联系支持。
    • 我已经成功实现了webhook并捕获了webhook事件来操作数据。我想获取订阅 ID、客户 ID 等详细信息,但无法通过对象直接访问属性来获取它。我该怎么做
    猜你喜欢
    • 2019-08-10
    • 2019-03-03
    • 2018-10-20
    • 2023-03-11
    • 2022-12-14
    • 2020-06-10
    • 2020-01-21
    • 2020-07-31
    • 2020-06-21
    相关资源
    最近更新 更多