Stripe · Shopify · GitHub · 另有 19 个

Stripe 发出了。你错过了。它还在这里。

把 Webhook 指向 AnyHook,我们再转发给你。每个事件都在同一份日志里,不管你的服务器有没有响应,任何一个都能一键重放。

在边缘节点为 22 个来源验证签名。添加签名密钥后,伪造的请求永远到不了你的服务器。

  • Stripe
  • GitHub
  • Shopify
  • Slack
  • LINE
  • Discord
  • Twilio
  • Sentry
  • Linear
  • Vercel
  • Paddle
  • Clerk
  • Lemon Squeezy
  • Intercom
  • HubSpot
  • Resend
  • WooCommerce
  • PayPal
  • SendGrid
  • Svix
  • Meta
  • Xero

发送方会放弃。你的处理程序会执行两次。

Shopify 只等 5 秒。订单履约要 12 秒。

只改一个 URL。

无需 SDK。处理完成后再返回 200,崩溃就会变成一次重试。

看清每个事件。

收到了什么,你的服务器回了什么,下一次什么时候重试。修好 bug,按下 Replay。

anyhook.net/dashboard/events实时
orders/paid
成功首次成功
收到的请求
{
  "id": 820982911946154508,
  "name": "#1042",
  "total_price": "129.00",
  "financial_status": "paid"
}
你的服务器的响应200187ms
{ "ok": true }

面向 AI 智能体的 API。

在 Claude、Codex 或 VS Code 里添加一个 URL 并登录。你的智能体就能通过 MCP 或普通的 REST 接口配置、检查和重放你的 Webhook。

智能体会话 · anyhook.net/mcp

我们的服务器昨晚宕机了,Stripe 的付款通知一直没到。处理一下。

anyhook_undelivered{ appSlug: "stripe-payments" }GET /api/v1/apps/stripe-payments/events/undelivered
{ "count": 12, "events": [{ "eventType": "invoice.paid", "status": "failed", "outboundStatus": 503 }, …] }
anyhook_replay_failed{ appSlug: "stripe-payments" }POST /api/v1/apps/stripe-payments/replay-failed
{ "replayed": true, "appSlug": "stripe-payments", "response": { "replayed": 12, … } }
anyhook_events{ appSlug: "stripe-payments", limit: 12 }GET /api/v1/events?app_slug=stripe-payments&limit=12
{ "events": [{ "eventType": "invoice.paid", "isReplay": true, "status": "success", "outboundStatus": 200 }, …] }

你的端点整晚都返回 503,这期间 AnyHook 把 12 个事件全部保存了下来。我已经重放了它们,每一个都收到了 200。

MCP https://anyhook.net/mcp·REST Authorization: Bearer ahk_live_…

流量看得清,也完全由你控制。

一个事件,在 AnyHook 内经过四个环节。

去掉各家 SDK。只验证一个请求头。

22 个来源在边缘节点验证,每次投递都用同一种方式签名。

你的服务器宕机了。
什么都不会丢。

每个事件都会保存下来。重试自动进行,剩下的由 Replay 发送。

服务器宕机时长

为开发者而做。

同一个 Webhook 转发服务,团队最先遇到的三种情况。

发送方会重试。 你的智能体会运行两次。

发送方约 1 秒就能收到 200。你的智能体按套餐可以用 60–300 秒。

简单的定价。

免费开始。付费套餐按事件保留多久、有多少个 App 发送事件来定价。付费套餐的超额部分按量计费,不会悄悄丢弃任何事件。

Free
适合测试和第一次集成
$0/月
免费开始
  • 保留期3 天
  • 事件10,000/月
  • 投递超时60 秒
全部限制
  • App 数量1
  • 每个 App 的转发目标数3
  • 投递次数3
    Free 套餐有 3 次投递尝试:第一次立即进行,之后依次间隔 5 分钟、30 分钟。0+5 分钟+30 分钟+3 小时+18 小时+1 天FREE · 3 次尝试
  • 请求体上限512 KB
  • 超额计费无
  • 投递控制不包含
  • 告警邮件
  • 3 天保留期
  • 每日上限 1,000 个事件
  • 邮件告警
推荐
Pro
适合生产环境的 Webhook 流量
$20/月
开始使用 Pro
  • 保留期1 年
  • 事件50,000/月
  • 投递超时120 秒
全部限制
  • App 数量10
  • 每个 App 的转发目标数20
  • 投递次数5
    Pro 套餐有 5 次投递尝试:第一次立即进行,之后依次间隔 5 分钟、30 分钟、3 小时、18 小时。0+5 分钟+30 分钟+3 小时+18 小时+1 天PRO · 5 次尝试
  • 请求体上限2 MB
  • 超额计费$0.15 / 1k
  • 投递控制过滤、限流、延迟
  • 告警邮件 + Slack/Discord
  • 每个事件保留一年
  • Slack/Discord 告警、事件过滤
  • 超额按量计费,最高到你设置的上限
Scale
适合大流量的 Webhook 管道
$90/月
开始使用 Scale
  • 保留期7 年
  • 事件250,000/月
  • 投递超时5 分钟
全部限制
  • App 数量50
  • 每个 App 的转发目标数50
  • 投递次数10
    Scale 套餐有 10 次投递尝试:第一次立即进行,之后依次间隔 5 分钟、30 分钟、3 小时、18 小时、1 天,再往后每天一次。0+5 分钟+30 分钟+3 小时+18 小时+1 天SCALE · 10 次尝试 · 之后每天一次
  • 请求体上限4 MB
  • 超额计费$0.17 / 1k
  • 投递控制过滤、限流、延迟
  • 告警邮件 + Slack/Discord
  • 保留七年,可检测篡改
  • 无每日上限
  • 自定义域名即将推出
Enterprise
适合需要安全审查和定制限制的团队
定制
联系销售
  • 保留期灵活
  • 事件灵活
  • 投递超时灵活
全部限制
  • App 数量灵活
  • 每个 App 的转发目标数灵活
  • 投递次数灵活
  • 请求体上限定制
  • 超额计费定制
  • 投递控制包含
  • 告警邮件 + Slack/Discord
  • SSO 和安全审查
  • 专属接入支持
  • 定制路由选项

Pro 套餐提供一年的保留期、Slack 或 Discord 告警、事件过滤,超额部分按量计费,而不是丢弃事件。

常见问题,一一解答。

先应答,后处理。Slack 等你的 2xx 只等 3 秒,Shopify 等 5 秒,GitHub 等 10 秒。一次模型调用通常比这更久,于是发送方重试,你的机器人运行了两次,最后 Slack 或 Shopify 会把这个 Webhook 关掉。

把 Webhook 指向 AnyHook,发送方约 1 秒就能收到 200。之后你的处理程序有 Free 60 秒、Pro 120 秒、Scale 5 分钟来完成调用,失败会重试。不用自己搭队列。

→ 大模型处理程序为什么会超时,以及各平台的解决办法

可以。但你要承担这些:

可靠性:持久化队列、死信处理、退避状态机。漏掉一个边界情况,你就会同一个订单发两次货,或者悄悄丢掉一个事件。大多数团队是在生产环境、凌晨 2 点发现这些 bug 的。

安全:每个平台的签名方式都不一样。Stripe 是 HMAC-SHA256 + 时间戳,GitHub 是十六进制编码的 HMAC-SHA256,Shopify 是 Base64 编码的 HMAC-SHA256。你要为每个平台维护一个验证器,还要处理密钥轮换和加密存储。漏掉一个 = 接受未签名的流量。

可观测性:调试意味着在一次次 Lambda 调用之间 grep CloudWatch 日志。没有可搜索的事件日志,没有重放,也没有完整的请求体历史。

成本:基础设施每月 $50–$200。真正的成本是每月 $3,000–$5,000 的工程师时间:值班、迁移、排查卡住的重试。AnyHook Pro 套餐$20/月,零维护。

→ 投递在底层是怎么运作的

计时的不是同一段链路。Stripe 的计时针对的是到你的公网 URL 的连接。把这个 URL 指向 AnyHook 后,Stripe 等的是我们的边缘节点,边缘节点约 1 秒就返回 2xx,这时你的代码还根本没开始运行。

“投递超时”这一行是我们的投递计时:我们等待你的端点响应的时长(Free 60 秒、Pro 120 秒、Scale 5 分钟)。大多数端点都远在这个时间内响应。更耗时的任务,返回 202 Accepted,然后异步处理。

→ 重试计划和超时详情

Zapier/Make 是低代码自动化平台:可视化编辑器、拖拽式流程。AnyHook 是面向开发者的转发服务:你的 Webhook、你的端点、你的代码、你的基础设施。

写代码处理 Webhook?用 AnyHook。在 n8n、Make 或 Zapier 里搭流程?把 AnyHook 放在工作流的 Webhook 触发器前面:平台发给 AnyHook,AnyHook 转发到触发器 URL,工作流宕机期间到达的事件会等你重放,而不是凭空消失。

我们先把事件写入持久化队列,再向发送方返回 200。如果我们的转发器宕机,事件会在队列里等待,恢复后再发出:发送方早已拿到它的 200。

如果边缘节点完全无法保存一个事件(队列和两个备用存储都不可用),它会改为返回 503,由发送方自己的重试兜底。AnyHook 从不为没有保存下来的事件返回 200。

可用性数据公布在 status.anyhook.net。

行:这正是 AnyHook 的用途。不管你的智能体要多久,我们都会约 1 秒应答 Stripe。

你的端点应该立即返回 202 Accepted,然后异步处理。AnyHook 的投递超时(Free 60 秒、Pro 120 秒、Scale 5 分钟)只作用于最初那一次 HTTP 往返。

→ 投递超时和重试计划

你的服务器不再响应时,每个发送方会怎么做。

它们最终都会放弃,只是放弃的方式各不相同。下面是它们公开的规则、你能用来恢复的时间窗口,以及窗口关闭后再也找不回的东西。

全部 28 篇指南,包括 Slack、Twilio、HubSpot、n8n,以及讲同一个 Webhook 收到两次的几篇。

还在本地联调?内网穿透地址每次重启都会变,而平台那边完全不用知道。

同样的问题,只是另一端换成了模型:回调要求几秒内应答,而你的处理程序调用模型要花更久。

只改一个 URL。之后的每个 Webhook,都保存下来。