首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >条带webhooks未按正确顺序传入时出错

条带webhooks未按正确顺序传入时出错
EN

Stack Overflow用户
提问于 2021-10-10 19:20:28
回答 1查看 38关注 0票数 1

我一直在使用stripe_event gem来处理来自stripe的网络钩子,今天我发现这些网络钩子似乎没有按正确的顺序传入。我正在存储在条带上生成的费用的本地副本,并且我有以下设置

代码语言:javascript
复制
StripeEvent.configure do |events|
  events.subscribe 'payment_intent.created', CreateChargeRecord.new
  events.subscribe 'payment_intent.processing', UpdateChargeRecord.new
  events.subscribe 'payment_intent.succeeded', UpdateChargeRecord.new
end

查看条带仪表板,事件payment_intent.created始终在payment_intent.processing之前完成。现在我按如下方式创建收费记录

代码语言:javascript
复制
class CreateChargeRecord
  def call(event)
    charge_object = event.data.object
    Charge.create(
      user: User.find_by(stripe_id: charge_object.customer),
      receiver_id: User.find_by(merchant_id: charge_object.transfer_data.destination).id,
      amount: charge_object.amount / 100,
      currency: 'eur',
      application_fee_amount: charge_object.application_fee_amount / 100,
      status: charge_object.status,
      stripe_id: charge_object.id
    )
  end
end

并按如下方式进行更新

代码语言:javascript
复制
class UpdateChargeRecord
  def call(event)
    charge_object = event.data.object
    charge = Charge.find_by(stripe_id: charge_object.id)
    charge.update!(status: charge_object.status)
  end
end

问题是,从cli来看,webhook payment_intent.processing似乎是在payment_intent.created之前接收的

代码语言:javascript
复制
2021-10-10 22:08:50   --> payment_intent.processing 
2021-10-10 22:08:51   --> payment_intent.created 
2021-10-10 22:08:51  <--  [200] POST http://localhost:3000/webhooks/
2021-10-10 22:08:51  <--  [500] POST http://localhost:3000/webhooks/

这将导致错误的NoMethodError (undefined method更新!‘对于nil:NilClass):`因为我正在尝试更新一个还不存在的记录。

有什么我可以做的来防止这种情况,因为这似乎不是一个错误,根据条带?

EN

回答 1

Stack Overflow用户

发布于 2021-10-11 03:24:44

这是expected and documented --事件可能会从它们生成的顺序开始无序地传递。

为了说明这一点,您的应用程序应该意识到这是可能的,例如,当接收到事件时,您可以直接从API检索最新的对象状态,而不是使用有效负载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69518285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档