【问题标题】:Laravel events no response body returnd to StripeLaravel 事件没有响应正文返回到 Stripe
【发布时间】:2020-08-01 10:12:57
【问题描述】:

在我的网站上成功购买后,stripe 会触发一个 webhook 以完成交易。

发生的事情是我正在触发 2 个 laravel 事件:

  1. 向客户发送订单确认电子邮件
  2. 向网站管理员发送电子邮件通知,提醒他们购买。

如果我只是触发事件以向客户发送电子邮件确认,则条带 webhook 是成功的。

当我向管理员添加通知时,Stripe 提示 HTTP 状态代码已超时,没有响应正文并且网络挂钩失败,即使所有电子邮件都已正确发送。将会发生的情况是,stripe 将尝试重新启动 webhook,这不是我想要的。

有人遇到过这个问题吗?

【问题讨论】:

  • 您使用什么队列驱动程序来处理您的事件?听起来您正在使用同步队列驱动程序,这意味着 Stripe 必须等待您发送邮件。如果您使用异步队列驱动程序,您可以将电子邮件事件推送到队列中,向 Stripe 返回响应,您的队列驱动程序可以稍后处理这些事件。
  • 嗨德莱娜感谢您的评论。我目前正在使用同步队列驱动程序。我正在寻找实现一个异步队列

标签: laravel events stripe-payments webhooks


【解决方案1】:

@DelenaMalan 是正确的,一旦您收到 Stripe webhook 事件,您应该立即通过返回 200 响应来确认收到,然后处理您的业务逻辑,例如之后发送电子邮件。见https://stripe.com/docs/webhooks/build#return-a-2xx-status-code-quickly

【讨论】:

  • 您是否知道 Stripe 等待响应的时间?文档似乎没有指定。
  • 我知道没有明确的时间限制,但实际上这并不重要,因为您应该在收到事件后立即确认收到。
猜你喜欢
  • 2017-10-25
  • 2019-10-28
  • 2021-02-05
  • 1970-01-01
  • 2020-10-24
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 2020-03-18
相关资源
最近更新 更多