iT邦幫忙

2025 iThome 鐵人賽

DAY 24
0
自我挑戰組

打造自己的Medium系列 第 24

Day24 雜談

  • 分享至 

  • xImage
  •  

這其實也跟這次的範圍無關,但因為剛好有遇到類似的問題,所以一起紀錄

下訂單的時候剛好遇到網路不穩,要怎麼樣才不會重覆訂購呢?

Idempotency Key

冪等性(Idempotency): 同一請求執行一次或多次,效果都一樣

冪等性金鑰就是確保操作的唯一識別碼,實作上由前端帶唯一識別碼,如:UUID,後端接收後檢查是否有重複的代碼,去判斷接下來的操作

到這邊看起來好像很簡單,那如果涉及付款呢?

想像中的簡易流程

  1. 【前端】產生冪等性Key + 送訂單請求 (含冪等性Key)
  2. 【後端】檢查冪等性Key是否已存在,沒有就建立訂單(狀態:待付款)並回傳訂單資訊
  3. 【前端】用訂單資訊導向金流付款頁面
  4. 【金流】使用者完成付款(成功或失敗)
  5. 【金流】通知【後端】付款結果(附帶金流交易編號等)
  6. 【後端】根據金流通知更新訂單狀態(Paid/Failed),使用金流交易編號確保不重複
  7. 【前端】呈現付款結果(成功或失敗)

作者的哈拉

最近都在看別的東西.../images/emoticon/emoticon28.gif


上一篇
Day23 IEnumerable vs IQueryable
下一篇
Day25 git stash
系列文
打造自己的Medium30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言