条纹“重复事件” - 预计会延迟多长时间?

问题描述 投票:0回答:1

Stripe 文档指出,它偶尔可以多次发送 Webhook 事件

处理重复事件

Webhook 端点有时可能会多次接收同一事件 一次。您可以通过记录来防止重复的事件接收 您已处理的事件 ID,但不处理已记录的事件 ID 事件。

我的问题:在这些可能的重复事件之间我应该预计多长时间延迟?我们谈论的是几秒还是几小时/天?

如果延迟最多几秒钟,我可以通过在数据库中

忽略重复的插入尝试(例如有效的高级订阅)来处理这个问题。但如果延迟较长,用户可能会同时取消订阅,在这种情况下,我不想处理重复的“subscription.created”事件,因为它会错误地重新实例化订阅。

stripe-payments webhooks
1个回答
0
投票
Stripe 没有记录任何具体的延迟。这更多的是针对潜在的边缘情况发出警告,以避免出现错误。您可以想象一个流程,其中他们发现某些事件未正确发送的问题并重新处理该队列,但这会导致之前未正确记录的一些重复传递。

Stripe 通常建议使用事件 ID

evt_12345

 建立一个包含所有已处理事件的数据库,因为它是唯一的。如果您收到已处理的事件的交付,则可以立即返回 200 以停止重试。
例如,这种逻辑应该能够适应几天后重新发送的同一事件,尽管他们极不可能这样做。

© www.soinside.com 2019 - 2024. All rights reserved.