IOSOR 知識庫

首次發送前的 Webhook 契約

買方路徑:在首次預付發送前同意已簽署網址、事件類型與冪等金鑰——先訂契約,後買流量。

沒有 Webhook 契約 的預付發送等於沒有共同真相的支出。買方必須在第一則付費訊息離開錢包之前鎖定已簽署的網址、事件清單以及冪等金鑰,而不是等到財務部門詢問狀態與帳本為何不一致時才處理。本頁面是專屬於買方路徑的指南,並非上線時的金鑰檢查清單,也不是簽章深度剖析。

相關閱讀:上線時的 webhook 與金鑰習慣、撐過上線週的 webhook 習慣、首次扣款前的預付資金保留、第一天跑道:必須亮綠燈的事項。

IOSOR 採用白牌預付模式。USD 20 可資助一條通道上的契約試驗,而在接近 USD 1,000/month 時的溫和審查則將『先發送、後契約』視為偵察債務。客戶僅能看到白牌事件名稱。

在首次付費發送前達成契約共識

付費發送意味著錢包可以進行扣款。契約則代表產品、財務與維運團隊已經共同確認回呼的落腳處、哪些事件可被視為金錢或狀態的真實依據,以及哪一個金鑰能確保重試機制的安全性。上線習慣與跑道看起來可能很綠,但契約如果還停留在 Slack 討論串中,就代表尚未準備就緒。請參閱上線時的 webhook 與金鑰習慣以及第一天跑道:必須亮綠燈的事項。切勿使用上週的測試回呼網址來購買流量。

已簽署網址與消費者所有權

契約欄位 買方關心的原因
HTTPS 回呼網址 產品與維運團隊能明確命名的單一目的地
簽章密鑰擁有者 誰負責輪換;絕對不在共用聊天室貼上
ACK 與處理規則 率先持久化;ACK 後再執行副作用
環境切換 試驗網址與生產網址不同
未知主機封閉失敗 偽造的已送達狀態絕不更新帳本

沒有負責人的已簽署網址在凌晨兩點時就會變成無人知曉的傳說。每個月 USD 1,000 的溫和預算將這種傳說視為流量風險;而 USD 20 則能證明一個網址、一個擁有者,以及在啟用簽章中介軟體後僅返回 2xx 的一次冒煙測試。另請參閱撐過上線週的 webhook 習慣。

產品與財務共有的事件類型

在首次發送前列出可能影響金錢或狀態的事件:已接受、已送達、失敗、已過期、入站停止,以及任何您視為真實依據的驗證結果。未列出的事件將採取封閉失敗原則——它們不會憑空創造帳本列。共用詞彙:產品與財務的共用狀態語言。若無預付證明,保留機制仍會失敗——首次扣款前的預付資金保留。契約就是事件選單;後續的閘道負責決定每一列是否值得信任。

支出前的冪等金鑰

在支出前達成金鑰形狀的共識:平台事件或訊息 ID,在產生副作用之前儲存,並在扣款列旁可讀。從時間戳記加上主體內容來發明金鑰,正是導致重試時被重複收費的原因。在重複事件的冒煙測試顯示出一條乾淨的帳本記錄之前,溫和的流量擴大討論將保持阻擋狀態。

Webhook 契約的買方檢查清單

  1. 在首次付費發送前是否已命名並指派生產環境的已簽署網址?
  2. 產品與財務共有的事件清單是否已用文字記錄而非口頭交代?
  3. 冪等金鑰的形狀是否已在產生副作用前達成共識並儲存?
  4. 試驗與生產環境的消費者是否已透過獨立密鑰進行分割?
  5. 未知或未簽署的回呼是否能以誠實的狀態採取封閉失敗?
  6. 當契約仍處於草稿階段時,是否已擋下大約 USD 1,000/month 的擴大討論?

任何一個『否』都會讓 webhook 契約以及付費流量繼續停留在草稿階段。

從 IOSOR 開始

請先登入 IOSOR 主控台,在啟用付費訊息發送功能前,註冊您的已簽章 HTTPS 回呼網址以及指定的冪等性鍵值欄位。請確保產品、財務與工程團隊主管共同審查共用事件綱要(例如已送達、失敗與已逾期),以確認未列出的回呼會自動採取安全預設並失敗。請透過您的網頁鉤子閘道執行零花費的重複事件酬載測試,以驗證重試記錄是否對應至單一帳本資料列,然後再解除流量暫停狀態。

IOSOR 要點

網頁鉤子合約絕非口頭默契,而是保護財務與產品部門免於重複扣款與虛幻狀態更新的明確界線。在首次付費傳送之前確立簽章密鑰所有權、精確網址所有權以及嚴格的冪等性鍵值解析,可防止重試風暴憑空產生帳本條目。

務必凍結您的回呼事件清單,並在所有入站回呼中強制執行先確認再產生副作用的架構。切勿使用衍生自時間戳記或主體雜湊的合成金鑰來啟動正式產線流量,也絕不要依賴事件狀態定義的口頭協議。

這篇指南有幫助嗎?

相關指南