今天來聊聊 Webhook。
Webhook 是 "用戶定義的 HTTP 回調(diào)"。它們通常有以下幾個特點(diǎn):
下圖顯示了輪詢方式和 webhook 方式的比較。
圖片
假設(shè)我們運(yùn)營一個電子商務(wù)網(wǎng)站。用戶通過 API 網(wǎng)關(guān)向訂單服務(wù)發(fā)送訂單,訂單服務(wù)轉(zhuǎn)到支付服務(wù)進(jìn)行支付。然后,支付服務(wù)與外部支付服務(wù)提供商(PSP)進(jìn)行對話以完成真正的支付交易。
我們有兩種方法可以處理與外部 PSP 的通信。
向 PSP 發(fā)送支付請求后,支付服務(wù)會不斷向 PSP 詢問支付狀態(tài)。經(jīng)過幾輪后,PSP 最終返回付款狀態(tài)。
短輪詢有兩個缺點(diǎn):
我們可以向外部服務(wù)注冊一個 Webhook。當(dāng)有關(guān)于請求的最新狀態(tài)更新時(shí),請回調(diào)某個 URL。當(dāng) PSP 完成處理后,它會調(diào)用 HTTP 請求來更新付款狀態(tài)。
這樣,編程模式就改變了,支付服務(wù)就不再需要浪費(fèi)資源來輪詢支付狀態(tài)了。
如果 PSP 從未回調(diào)怎么辦?我們可以設(shè)置一個 housekeeping 任務(wù),每小時(shí)檢查一次付款狀態(tài)。
Webhook 通常被稱為反向 API 或推送 API,因?yàn)榉?wù)器會向客戶端發(fā)送 HTTP 請求。
使用 Webhook 時(shí),我們需要注意以下三點(diǎn):
本文鏈接:http://www.tebozhan.com/showinfo-26-35311-0.html調(diào)用三方服務(wù)為什么要使用 Webhook?
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
下一篇: OceanBase這次把我驚到了!