最近在網路購物發現結帳越來越方便,點選XXPay,
WEB畫面就會產生QR Code,接著手機打開APP掃描付款,
APP付款完成後,很好奇,停在QR Code的WEB畫面卻可以馬上知道付款完成,導回購物網站,我覺得是前端在等候通知後切換網頁,因為非常即時,請問各位大神這是用何種技術做到的,謝謝。
就我所知可以通知前端的技術上,使用WebSocket可以做到,爬文上看到有人提到SignalR可以實現。
就我們公司串的幾個pay 觀察開發者工具 network
的狀況
基本上都是用 polling
的方式進行結果詢問
當然這個 polling
問到 server端 是不會直接對db做資料存取
有可能你問到的資料是來自 memory-cache
server端 只要收到使用者付款 針對 memory-cache
做成功覆寫
即可馬上問到最新資料
當然這些都是猜測而已,server端 可以實作的方法很多,純粹提供自己的一個想法
統整:
client >(polling)> memory // 使用者前端畫面
client付款 > server收到 >(寫入)> memory // 付款動作
我不是程式人,但就我的理解,
應該是後端的帳務系統接收到付款訊息後,通知網頁轉到下一步去,
而不是 QR-Code 本身的換頁作用
是的
你理解的沒錯
QR Code網頁並不會知道付款完成
是在網頁使用Real-time的作法,回去跟Server確認付款的狀態
WebSocket只是其中一種
SinalR則是微軟幫忙整合多種Real-time的框架
這邊有整理幾種方法可以參考看看
https://www.freecodecamp.org/news/5-ways-to-build-real-time-apps-with-javascript-5f4d8fe259f7/