如何使Stripe手动将事件重新发送到Webhook

Syg*_*ral 0 api stripe-payments

我一直在使用Stripe API,并且已经成功调用我的Webhook大约一年了。

但是昨天第一次出现了问题。Webhook未能成功完成其预期的操作,但是无论如何返回了200状态代码,因此Stripe不再重试。

我现在已经解决了Webhook上的错误,但无法弄清楚如何使Stripe对该特定事件重复webhook调用。我可以检索该事件,但是没有要重新发送的按钮。如何?

Ila*_*oul 12

Stripe cli 允许这样做stripe events resend IDOFTHEEVENT --live --webhook-endpoint=IDOFTHEWEBHOOK(用事件的 id 替换 IDOFTHEEVENT,用 webhook 的 id 替换 IDOFTHEWEBHOOK,当你在 webhook 的页面上时,你可以在 URL 中找到它)。

否则,您可以复制/粘贴发送到 webhook 的事件,然后使用邮递员等工具将其发送到您的端点。

  • 即使事件已经超过 15 天,这也有效!也就是说,请确保使用密钥“stripe login --api-key sk_live_...”对 CLI 进行身份验证,否则您将收到如下权限错误:“提供的密钥 'rk_live_...' 没有帐户“acct_...”上此端点所需的权限。拥有“rak_webhook_write”权限将允许此请求继续。“` (4认同)

Dom*_*Dom 9

可以手动重新发送 webhook 事件。

在 Stripe Dashboard 中,选择Developers > Webhooks,然后找到您使用的 webhook,然后按小“重新发送”图标。

在此处输入图片说明

请注意,对于成功的事件,您仍然可以通过单击省略号然后“重新发送”(这是一个较新的功能)来重新发送它们。

  • @Sygmoral 该限制不再存在 - 您现在可以重新发送返回 200 状态代码的事件。 (3认同)

小智 5

由于返回了200,因此检索该赛事将是您最好的选择。当前无法进行手动重试(通过https://stripe.com/docs/webhooks#responding-to-a-webhook):

在实时模式下,我们将尝试以指数补偿的方式提供长达三天的Webhook。在测试模式下,我们会在几个小时内重试3次。此后,无法手动重试Webhooks,尽管您可以查询事件以使数据与任何遗漏的事件保持一致。

通过仪表板查看有关特定事件的信息时,您可以通过单击Webhook详细信息部分中的端点URL来检查我们尝试将事件发送到端点的次数。这将向您显示我们从端点收到的最新响应,以及所有尝试的Webhook列表以及我们收到的相应HTTP状态代码。