狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

糟糕,訂單超時關閉成功,用戶也支付成功了,我該怎么辦?

freeflydom
2024年1月27日 17:25 本文熱度 681

在電商及金融類的系統中,用戶在下完單之后沒有立即付款,訂單處于未支付狀態,默認情況下訂單會有30分鐘或者1小時左右(具體時間可以設置)的超時時間。在此期間用戶可以選擇立即付款,支付成功后訂單進入待發貨狀態,等待商家發貨。若超過規定的付款時間,那么訂單會被關閉,庫存及使用到的優惠(包含優惠券、積分)都將會被返還。那么如果訂單超時時間到期需要關閉訂單,并且此時正好用戶也支付成功了,對于訂單服務來說該如何處理呢?

明確訂單終態

正常情況下,支付業務只有支付成功和支付失敗(用戶取消)兩種狀態,兩者中必有一個能進入到終態。必須明確一點的是,無論哪一個都代表著業務的最終態,不能被改變。如果終態隨便轉換,那么在設計上一定是不合理的。

業務處理

有兩種情況:

  • 第一種: 用戶支付成功處理成功,訂單超時關閉處理失敗;

  • 第二種:訂單超時關閉處理成功,用戶支付成功處理失敗。

針對上面的這兩種情況,如果用戶已經支付成功,面對訂單超時關閉的請求可以直接拒絕,也符合正常的業務邏輯。不過,要是出現訂單超時關閉成功,但支付成功處理失敗了,這樣的情況該如何處理呢?用戶的錢怎么處理?原路返回嗎?

沒錯,就是原路返回。訂單超時關閉了,用戶支付成功會觸發支付回調,開發人員可以在回調處理的過程中,如果發現訂單已經被關閉了,那么就得觸發退款流程,把錢退給用戶。 這樣,即使訂單超時關閉了,但是用戶付過的錢已經退回了,對用戶來說也并不存在損失。

注:退款流程可能存在失敗的情況,開發人員需要做好冪等以及兜底方案。

對賬機制

類似這些與支付有關的業務,引入對賬機制是必要的。根據支付流水以及支付單的狀態以及用戶的支付、退款情況,逐一比對(支付金額=沖退金額)。如果發現不一致的情況,要根據用戶的實付金額進行退款重試,直到完全一致。

加鎖

具體來說就是出現了并發問題,無論是用戶支付成功回調還是訂單即將超時關閉訂單,在執行業務邏輯之前,都需要加鎖控制,并且一定是分布式鎖。誰搶到了這筆單子的鎖,誰先處理,沒搶到的只能等待下次重試。這樣做不僅能夠解決并發問題,而且也能夠避免異常情況的出現。

總結

上面的方案整體看下來,能夠很好的解決訂單超時到期關閉,同時用戶也支付成功出現的并發問題,不過除此之外,仍需做好冪等以及兜底方案,確保實際業務系統能夠正常穩定運行。


作者:程序員淺夢
鏈接:https://juejin.cn/post/7325728181248606245
來源:稀土掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。



該文章在 2024/1/27 17:25:45 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved