最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

05 系統(tǒng)面臨的現(xiàn)實問題:訂單退款時經(jīng)常流程失敗,無法完成退款!

2023-06-05 15:13 作者:儒猿課堂  | 我要投稿

系統(tǒng)面臨的現(xiàn)實問題:訂單退款時經(jīng)常流程失敗,無法完成退款!


1、想解決問題的小猛,大腦卻一片空白


昨天明哥給小猛講了互聯(lián)網(wǎng)系統(tǒng)的用戶使用情況以及負載之間的關系,還有系統(tǒng)負載造成的壓力都是指的什么,真是讓小猛打開眼界。


小猛以前可從沒考慮過,平時部署的系統(tǒng)、使用的數(shù)據(jù)庫居然還有這些問題。


而且昨天明哥也給小猛指出了系統(tǒng)現(xiàn)在面臨的第一個問題,就是支付成功之后的核心業(yè)務流程里混雜的子步驟太多了:


扣減庫存、更新訂單狀態(tài)、更新積分、發(fā)優(yōu)惠券、發(fā)紅包、發(fā)送Push推送、通知倉儲系統(tǒng)發(fā)貨,等等一系列的事情要做。


這一連串的步驟有時候在系統(tǒng)高峰期壓力大的時候,可能需要好幾秒才能完成,讓用戶體驗非常的不好。


小猛也回去想了很久,這個問題應該怎么解決呢?


暫時也沒什么思路,畢竟自己經(jīng)驗還淺,大腦一片空白。算了,還是等著明哥給講講吧!



2、再次回顧一個復雜的訂單支付流程


今天小猛剛一上班,廁所都來不及上,就被明哥給拽去了小會議室。接著明哥就要給小猛繼續(xù)分析系統(tǒng)現(xiàn)在存在的一些問題。


小猛心想:必須得好好聽??!問題分析完之后,明哥就要給我派發(fā)開發(fā)任務了,到時候我做的事情都是用來解決這些技術問題的。


到了會議室,明哥立馬就在小白板上唰唰的畫出了訂單支付過后的一系列流程,就在下面的圖里


包含了扣減庫存、更新訂單狀態(tài)、更新積分、發(fā)優(yōu)惠券、發(fā)紅包、發(fā)Push推送、通知倉儲系統(tǒng)調(diào)度發(fā)貨。


? ? ? ? ? ?

? ? ? ? ? ? ?

小猛看著上面那個訂單支付后的核心流程圖,心里感嘆道:真是復雜??!


自己平時上網(wǎng)購物確實知道買東西付錢之后,電商平臺上的商品庫存會減少,而且還會給自己增加一些積分。積分多到一定程度,會員等級會升級。


而且一般每次都會發(fā)放一些優(yōu)惠券、紅包抵用券之類的東西,并且再查看訂單的時候,狀態(tài)已經(jīng)變更為待發(fā)貨。


但是真到了自己去思考一個訂單系統(tǒng)設計的時候,才發(fā)現(xiàn)這個購物真是一個非常復雜的流程。


3、對訂單進行退款時需要干些什么?


接著明哥說:之前我們講過,訂單系統(tǒng)的第一個問題,就是支付之后的流程過于復雜,導致耗時太長,用戶體驗太差,這個是我們后續(xù)一定會去優(yōu)先解決的問題。


那么訂購單系統(tǒng)的第二個問題,就是訂單支付的反向過程,退款。


小猛這時很奇怪的問:訂單退款的時候都要干些什么?。坑惺裁磫栴}呢?


明哥說:你想想,用戶下一個訂單,把錢付給平臺之后,平臺會給用戶一系列的利好,比如發(fā)券、發(fā)積分、發(fā)紅包。


為什么要給用戶這么多好處?還不是因為你付錢給人家了?


小猛說:是的是的,這個世界是現(xiàn)實的,沒有平白無故的愛,也沒有平白無故的恨。


明哥接著說:那么在你申請退款之后,平臺就會把之前你付給他的錢還給你了。


既然錢退給你了,人家根本就沒得到你什么好處,這個時候還不得把之前給你的一些利好都收回來?比如優(yōu)惠券、積分、紅包之類的東西。


所以,本質(zhì)上訂單退款應該是一個訂單支付的逆向過程,也就是說他應該做如下一些事:

  • 重新給商品增加庫存

  • 更新訂單狀態(tài)為“已完成”

  • 減少你的積分

  • 收回你的優(yōu)惠券和紅包

  • 發(fā)送Push告訴你退款完成了

  • 通知倉儲系統(tǒng)取消發(fā)貨


最重要的是,需要通過第三方支付系統(tǒng)把錢重新退還給你。


而且如果電商平臺都已經(jīng)給你發(fā)貨了,你才申請退款,實際上你還得把收到的商品給人家快遞回去,等他們收到了商品再把錢退還給你。


當然,這里我們簡單起見,就說商品還沒發(fā)貨這種情況吧。


明哥說著,就唰唰的在小白板上又畫了一個圖,這是退款的流程圖。

? ? ? ? ? ?

? ? ? ? ? ??

小猛一看,倒吸了一口涼氣,心想,做個電商系統(tǒng)還真不容易?。≠I東西退東西原來都這么復雜,有這么多的講究!


4、小猛的靈光一閃:退款和支付不是有一樣的問題嗎?


這個時候小猛大腦突然靈光一閃,他說:明哥,那這個退款和支付不是有一樣的問題嗎?都是流程太長,子步驟過多,如果用戶點擊退款之后要一下子執(zhí)行這么多步驟,可能需要好幾秒的時間,用戶體驗同樣是很差的!


明哥用滿意的眼神看著小猛:真是沒看錯人,你這腦子就是靈活!沒錯,實際上這個訂單的退款也有同樣的一個問題,就是步驟太多太耗時,一起執(zhí)行的話,就會耗費很長時間,用戶體驗很不好。


但是,明哥話鋒一轉:不過訂單的退款可不只是這一個問題,你再觀察一下,這里還有什么問題?


小猛疑惑的盯著這個流程圖10秒的時間,一時語塞,茫然的看著明哥,實在想不出這里還有什么問題。


5、退款的最大問題:第三方支付系統(tǒng)如果退款失敗怎么辦?


明哥這個時候說,其實在退款的時候,最大的問題還不是步驟太多執(zhí)行太慢,最大的問題是假設你的庫存增加完了,訂單狀態(tài)更新了,積分收回了,優(yōu)惠券收回了,倉儲系統(tǒng)中斷發(fā)貨了,然后Push推送告訴你說已經(jīng)退款了,結果第三方支付系統(tǒng)退款失敗了。


比如有可能是第三方支付系統(tǒng)自己的問題導致退款失敗,也可能是你在調(diào)用第三方支付系統(tǒng)的時候,因為你自己的網(wǎng)絡問題導致調(diào)用失敗,就退款失敗了。


總之,用戶以為退款成功了,結果一查自己賬戶,錢就是沒進來,這才是最要命的一個問題。


明哥說著,在下面的圖里,畫上了一個重重的紅圈。

? ? ? ? ? ?

?? ? ? ? ? ?

明哥指著上圖中的紅圈,嚴肅的說,你有沒有想過如果調(diào)用第三方支付系統(tǒng)退款的時候萬一失敗了會怎么樣?


小猛入職以后第一次看見明哥這么嚴肅的表情,有點嚇到了,膽怯的問:是會把我拉出去祭天嗎?頓時腦子里浮現(xiàn)出一個程序員在祭壇上被祭天的場景。


明哥哈哈大笑:那倒不至于,不過這種情況可能會導致用戶再也不愿意來我們這里購物了,而且領導一定會狠批我們,年終獎就不用想了。


要是趕上公司年景不好,要優(yōu)化幾個人出去的時候,弄不好就輪到你了!


總而言之,這個問題,也是我們訂單系統(tǒng)要解決的一個很重要的問題。遠遠比步驟太多耗時太長,用戶體驗不好這個問題要嚴肅的多。


6、如果用戶下單后一直不付款怎么辦?

明哥接著說,現(xiàn)在我們已經(jīng)看完了用戶支付和退款兩個流程里的問題了,接著我們來看看第三個問題,就是用戶在支付之前會干什么。


通常來說,用戶在購物車里會加入很多的商品,然后選擇下單跳轉到一個訂單確認界面,在這里確認收貨地址、發(fā)票抬頭、優(yōu)惠券使用等一系列的問題,接著正式下這個訂單。


明哥說著,在小白板上畫出了一個流程圖。

? ? ? ? ? ?

? ? ? ? ? ?

接著用戶對訂單一旦確認完畢,就會提交訂單,訂單提交到訂單系統(tǒng)之后,就會正式在數(shù)據(jù)庫中創(chuàng)建一個訂單出來


明哥說著在流程圖里加了一點步驟

? ? ? ? ? ?

? ? ? ? ? ?

接著正常來說,就會跳轉到支付界面讓他進行付款了,但是萬一這個人在付款界面猶豫了一下呢?結果自己把付款界面給關了,這不就是訂單創(chuàng)建了,但是沒支付么?


此時訂單的狀態(tài)“待支付”,而且只要你下了訂單,你訂單里涉及到的商品,都會有對應的鎖定庫存的一個工作,相當于給你預先保留好這些商品。


明哥說著在流程圖里又加了幾個步驟。

? ? ? ? ? ?

?? ? ? ? ? ?

明哥指著圖里畫紅圈的地方說,你看訂單系統(tǒng)在創(chuàng)建訂單的時候已經(jīng)調(diào)用庫存系統(tǒng)鎖定了你要買的商品的庫存,結果明明給你跳轉到支付界面了,你卻放棄了支付,這不是在耍我們么?


要是訂單一直不付款,一直這么放著,他對應的商品庫存就會一直鎖定,別人都沒法買了。


這就好比你去商場買鞋子,看到一雙球鞋要1500塊,然后結果你就拿個鐵盒子來放在商店里,把球鞋放進去鎖上,然后告訴營業(yè)員說,我下個月發(fā)工資過來買這個鞋子,現(xiàn)在我把他鎖起來,誰都不許買,給我留著!


難道你讓人家球鞋店給你保留鞋子一個月?


聽到明哥的這個比喻,小猛不禁哈哈大笑,比喻的很貼切,確實是這個道理。


明哥接著說道:所以一般來說,我們的訂單系統(tǒng)會啟動一個后臺線程,這個后臺線程就是專門掃描數(shù)據(jù)庫里那些待付款的訂單。


如果發(fā)現(xiàn)超過24小時還沒付款,就直接把訂單狀態(tài)改成“已關閉”了,釋放掉鎖定的那些商品庫存。


明哥在流程圖里又加了一個步驟。

? ? ? ? ? ?

? ? ? ? ? ?

7、如果有幾十萬訂單沒付款,難道要一直傻傻的掃描?


明哥接著說,問題就出在了這個掃描待支付訂單上了。


假設咱們現(xiàn)在數(shù)據(jù)庫中積壓了幾十萬筆待支付的訂單,難道你要求一個后臺線程不停的去掃描這幾十萬筆訂單嗎?這個效率明顯是很低的啊!


萬一以后有幾百萬筆未支付訂單呢?難道要不停的掃描幾百萬筆待支付的訂單?


所以這個就是訂單支付之前最大的一個技術問題。


小猛聽完之后,恍然大悟,現(xiàn)在訂單支付之前,支付的時候,支付之后要退款的時候,居然都有各自的問題所在,看來后續(xù)要做的優(yōu)化還真是不少!


今天小猛覺得自己對訂單系統(tǒng)的業(yè)務和技術問題又理解的更加深刻了,他決定回家繼續(xù)好好做筆記,務必讓自己在一周以內(nèi)對訂單系統(tǒng)徹底熟悉起來!


End


專欄版權歸公眾號儒猿技術窩所有

未經(jīng)許可不得傳播,如有侵權將追究法律責任

05 系統(tǒng)面臨的現(xiàn)實問題:訂單退款時經(jīng)常流程失敗,無法完成退款!的評論 (共 條)

分享到微博請遵守國家法律
疏附县| 长乐市| 东乡县| 军事| 凤山市| 通道| 隆子县| 陆丰市| 南雄市| 梅州市| 尤溪县| 洪泽县| 金秀| 绥棱县| 台北市| 越西县| 高唐县| 孙吴县| 同仁县| 宜章县| 额尔古纳市| 蒙自县| 永泰县| 英山县| 游戏| 洛宁县| 金秀| 禄劝| 邓州市| 察哈| 利津县| 吴堡县| 铁力市| 阳江市| 昔阳县| 乐陵市| 泸西县| 天等县| 南涧| 汽车| 盖州市|