LLM 呼叫超過約 20 秒 → Stripe 判定失敗並重試 → 處理程式執行兩次 → 重複履約。
/v1/webhook_endpoints · status: failed
你的處理程式呼叫 LLM 要花 45 秒。Stripe 大約 20 秒就逾時並重試。客戶被重複履約:出貨、加值或寄信,都做了兩次。
AnyHook 位在發送端和你的處理程式之間。儲存、重試、記錄並重播一切,不用動到你的處理程式碼。
evt_3Pk2X3b1Lcx
請求逾時。Stripe 會以退避方式重試,最長 3 天。
$ stripe webhooks update we_1234
--url in.anyhook.net/u/app
✓ Endpoint updated
✓ Delivering to AnyHookevt_3Pk2X3b1Lcx
第 1 次嘗試 · 發送端已確認收到 · 處理程式 47.2 秒
// before
await llm.run(evt); /* 45s */
// after
return Response.json({ ok: true });省下的發送端重試
127
LLM 呼叫超過約 20 秒 → Stripe 判定失敗並重試 → 處理程式執行兩次 → 重複履約。
/v1/webhook_endpoints · status: failed
機器人必須在 3 秒內回應。AI agent 要花 30 秒 → Slack 重試 3 次 → 你的機器人最多可能回覆 4 次。
晚一點才回應就算失敗:4 小時內重試 8 次,之後一再失敗,訂閱就會被刪除。訂單不再送來。
正式環境的 Webhook 流量。比自己花 2 週做重試機制還便宜。
每一次傳遞,你都不必只聽我們的說法。簽章驗證函式庫和 MCP 伺服器採 Apache 2.0 授權:github.com/gba3124/anyhook-mcp。中繼服務本身沒有開源。
用電子郵件或 Google 帳號註冊。AnyHook 會給你一個像 https://in.anyhook.net/you/app 這樣的接收網址。免費方案不需要信用卡。
打開 Stripe Dashboard → Webhooks → 編輯端點 → 貼上 AnyHook 網址。GitHub、Shopify、Slack 的 Events API 和 Paddle 也是同樣的改法。你的處理程式碼完全不用動。
AnyHook 先儲存事件,約 1 秒就回 200 給發送端,再轉送到你的處理程式並自動重試(至少一次傳遞,用 X-AnyHook-Delivery 去重)。失敗的事件會留在儀表板,按一下 Replay(重播)按鈕就能重播。
適合
不適合
如果你有工程人力安裝 SDK,並把處理程式改寫成 durable function,Inngest 很好用。AnyHook 適合想解決問題、又不想改動處理程式結構的團隊:改一個 Webhook 網址,沿用現有的程式碼。
是。每月 10,000 個事件(每日上限 1,000 個)、1 個 App(App 是一個接收網址,對應一個 Webhook 來源)、不需要信用卡。我們讓它大到足以讓業餘專案上線,又緊到讓正式環境的流量自然會升級。沒有花招,也不會到期。
GitHub、Shopify、Slack 的 Events API、Paddle、Linear、Clerk:全都適用同樣的換網址做法。簽章驗證方式會從收到的標頭自動偵測。
部分是,而且值得講清楚是哪些部分。簽章驗證函式庫和 MCP 伺服器在 github.com/gba3124/anyhook-mcp 採 Apache 2.0 授權,所以你可以檢查我們簽章的每一次傳遞,不必信任我們,也不必依賴我們。負責接收、儲存和重試的中繼服務沒有開源,目前也沒有自架版本。
我們以靜態資料加密的方式儲存(AES-256-GCM)。在你方案的可重播期間內都能重播(3 / 30 / 90 天);之後 Free 方案的事件會被刪除,付費方案則保存一份唯讀的加密封存(Pro 方案 1 年,Scale 方案 7 年)。金鑰從不離開我們的基礎設施。在 Pro 和 Scale 方案,你也可以開啟零保存(zero retention):事件送達後,它的標頭和請求主體就會從事件紀錄中清除;加密封存仍保留它的副本。
在 Free 方案,超過每月配額的事件會保留在你的事件紀錄中:已儲存、不傳遞,最多再保留配額的 20%,升級後即可重播;超過這個量或每日上限時,邊緣節點會回 429,不儲存任何東西,並寄信通知你。升級到 Pro 方案會立即解除限制;Pro 方案的超額用量是每 1,000 個事件 $0.15,也可以在儀表板設定支出上限,超過上限的事件會被保留,而不是計費。
免費註冊,取得接收網址,在 Stripe 換上它。AnyHook 會吸收重試,你的處理程式照現在的方式繼續執行。