Web技術基礎
想讓特約商店的伺服器立即得知線上支付服務的付款已完成。關於支付服務以HTTP的POST,向特約商店事先登錄的URL送出通知的方式(Webhook),下列說明何者正確?
- A特約商店不必每隔一定時間詢問支付服務,只有在發生變化時才會收到通知。收到的通知是否為真,要以簽章等方式確認
- B特約商店的伺服器不必接受來自外部的請求,因此接收通知的URL不必公開在網際網路上
- C通知是透過與瀏覽器之間建立的WebSocket連線送達,因此特約商店的負責人必須一直開著瀏覽器
查看答案與解析
正確答案:A. 特約商店不必每隔一定時間詢問支付服務,只有在發生變化時才會收到通知。收到的通知是否為真,要以簽章等方式確認
Webhook是由發生事件的服務,向接收端登錄的URL送出HTTP請求來通知。與接收端反覆詢問狀態的方式相比,沒有無謂的請求,能立即得知變化。相對地,接收端必須接受從網際網路送來的請求,因此要以共用秘密金鑰產生的簽章等方式,確認通知是否為真。通知失敗時可能會重送,因此要處理成即使同一通知送達2次也不會出問題。
- A. 正確。只有在發生變化時才會收到通知,並以簽章等方式確認傳送者。
- B. 通知是以HTTP請求從外部送達,因此接收的URL必須公開。
- C. Webhook是伺服器之間的通知,不使用瀏覽器或WebSocket。