自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

調(diào)用三方服務為什么要使用 Webhook?

開發(fā) 前端
我們可以向外部服務注冊一個 Webhook。當有關于請求的最新狀態(tài)更新時,請回調(diào)某個 URL。當 PSP 完成處理后,它會調(diào)用 HTTP 請求來更新付款狀態(tài)。

今天來聊聊 Webhook。

Webhook 是 "用戶定義的 HTTP 回調(diào)"。它們通常有以下幾個特點:

  • 由事件觸發(fā),例如支付完成事件。
  • 回調(diào)地址由用戶配置。

下圖顯示了輪詢方式和 webhook 方式的比較。

圖片圖片

假設我們運營一個電子商務網(wǎng)站。用戶通過 API 網(wǎng)關向訂單服務發(fā)送訂單,訂單服務轉(zhuǎn)到支付服務進行支付。然后,支付服務與外部支付服務提供商(PSP)進行對話以完成真正的支付交易。

我們有兩種方法可以處理與外部 PSP 的通信。

短輪詢

向 PSP 發(fā)送支付請求后,支付服務會不斷向 PSP 詢問支付狀態(tài)。經(jīng)過幾輪后,PSP 最終返回付款狀態(tài)。

短輪詢有兩個缺點:

  1. 持續(xù)輪詢狀態(tài)需要支付服務的資源。
  2. 外部服務直接與支付服務通信,可能造成安全漏洞。

Webhook

我們可以向外部服務注冊一個 Webhook。當有關于請求的最新狀態(tài)更新時,請回調(diào)某個 URL。當 PSP 完成處理后,它會調(diào)用 HTTP 請求來更新付款狀態(tài)。

這樣,編程模式就改變了,支付服務就不再需要浪費資源來輪詢支付狀態(tài)了。

如果 PSP 從未回調(diào)怎么辦?我們可以設置一個 housekeeping 任務,每小時檢查一次付款狀態(tài)。

Webhook 通常被稱為反向 API 或推送 API,因為服務器會向客戶端發(fā)送 HTTP 請求。

使用 Webhook 時,我們需要注意以下三點:

  1. 我們需要設計一個適當?shù)?API 供外部服務調(diào)用。
  2. 出于安全考慮,我們需要在 API 網(wǎng)關中設置適當?shù)囊?guī)則,比如白名單設置,限流等。
  3. 我們需要在外部服務中注冊正確的 URL。
責任編輯:武曉燕 來源: ByteByteGo
相關推薦

2018-05-16 23:05:46

2021-12-21 10:24:36

物聯(lián)網(wǎng)平臺物聯(lián)網(wǎng)IOT

2017-07-03 13:33:42

AndroidItemDecorat

2011-03-08 12:59:38

proftpd

2014-11-21 10:50:26

JavaString

2018-05-01 06:43:33

2010-05-11 10:29:06

Unix awk

2014-05-19 15:52:57

Apache StraApache

2011-04-14 09:30:15

集合框架

2017-12-29 09:32:55

無服務器架構(gòu)排查

2022-12-06 08:26:16

SpringAOPthis調(diào)用方法

2010-08-04 15:51:18

Ubuntu服務器版

2024-07-30 09:35:00

2013-09-27 11:33:57

交換機技術Vlan技術

2014-04-25 10:05:42

OpenStack私有云公共云

2024-01-24 11:24:03

C++編程異常處理

2022-06-26 23:03:14

Go標準庫語言

2024-01-30 07:55:03

KubernetesAPI服務器

2014-01-03 10:59:34

2023-09-21 09:00:00

Merge Que開發(fā)工具Mergify
點贊
收藏

51CTO技術棧公眾號