聊聊那些結(jié)算系統(tǒng)的線上事故:重復(fù)付款1700萬元
由于涉及敏感信息,公司和平臺(tái)名稱已刪減,大家也不要臆想都發(fā)生在京東內(nèi)部哈,也可能是某寶某多某團(tuán),畢竟這個(gè)圈子很小。有些內(nèi)容需要了解背景和上下文,所以大家重點(diǎn)關(guān)注系統(tǒng)本身或上下游交互過程存在的問題,引以為戒。
1、結(jié)算系統(tǒng)配合上游升級(jí),上線后幾天質(zhì)控部門反饋發(fā)現(xiàn)一商家利用取消退款刷卡消費(fèi),一個(gè)珠寶商家刷卡消費(fèi)880W+,有疑似問題的商家有20個(gè),合計(jì)金額2000W。
原因
新系統(tǒng)采取收支兩線原則,取消退款訂單也會(huì)先給商家結(jié)算,再逆向扣收。考慮商家對(duì)賬體驗(yàn)扣收所有明細(xì)會(huì)同一事務(wù)處理,執(zhí)行不成功會(huì)重試但不會(huì)掛賬。商家利用統(tǒng)一事務(wù)處理的空隙時(shí)間立刻提現(xiàn),導(dǎo)致無法將應(yīng)收及時(shí)收回。
方案
1)移動(dòng)端無法凍結(jié)漏洞修補(bǔ)上線,將20個(gè)疑似商家賬戶凍結(jié);
2)結(jié)算系統(tǒng)緊急將所有逆向進(jìn)行掛賬,并增加時(shí)序邏輯;
2、某戰(zhàn)略商家和平臺(tái)內(nèi)A、B兩個(gè)事業(yè)部事業(yè)部簽了入駐合同并分別約定了10W和13W保證金,但是實(shí)際收取了商家兩筆10W和一筆13W保證金,商家投訴受到了“商業(yè)欺詐”。
原因
運(yùn)營(yíng)在合同審核通過后發(fā)現(xiàn)賬期選錯(cuò)了,按照正常流程如果要更新賬期只能再簽一份補(bǔ)充協(xié)議進(jìn)行修正或者下線原主合同再新簽,但都需要再走一遍各級(jí)領(lǐng)導(dǎo)審核。后來通過老運(yùn)營(yíng)指點(diǎn)知道了合同系統(tǒng)可以更新版本,可以直接修改賬期、付款方式等信息。
于是利用這個(gè)連合同系統(tǒng)產(chǎn)品經(jīng)理都不熟悉的隱藏技能進(jìn)行了更新。但問題是合同系統(tǒng)更新版本會(huì)將所有信息全量重推:結(jié)算系信息是按商家ID維度創(chuàng)建,所以更新版本時(shí)按照商家ID進(jìn)行了update;但是保證金系統(tǒng)是應(yīng)收單維度,所以當(dāng)成原合同更新版本之后再次進(jìn)行了應(yīng)收創(chuàng)建。
方案
1)合同系統(tǒng)隱藏更新版本入口;
2)保證金系統(tǒng)上線合同維度的應(yīng)收判重;
3、訂單中心將一批海外訂單的結(jié)算明細(xì)推送重復(fù),跨越了兩個(gè)連續(xù)自然月,而且這批訂單結(jié)算系統(tǒng)沒有校驗(yàn)住,導(dǎo)致給商家重復(fù)結(jié)算。合計(jì)金額20W美金。
原因
1)由于訂單中心主從數(shù)據(jù)庫遷移,導(dǎo)致這批訂單的流水主庫推送了一遍,遷移過去之后從庫又推了一遍。
2)而且由于確實(shí)存在同一訂單先后推送結(jié)算明細(xì)的場(chǎng)景,所以結(jié)算系統(tǒng)沒辦法用訂單編號(hào)作為判重條件,只能是結(jié)算明細(xì)的UUID,恰好兩批訂單的UUID不同導(dǎo)致結(jié)算系統(tǒng)檢驗(yàn)通過。因此導(dǎo)致給商家重復(fù)結(jié)算。
方案
本來想的是上游訂單中心重推一遍逆向結(jié)算明細(xì)進(jìn)行沖抵,后來溝通一下,因?yàn)檫@批訂單實(shí)際沒有發(fā)生逆向,如果強(qiáng)制推送一批逆向流水,后期出現(xiàn)問題無法定位,方案作罷。
1)訂單已經(jīng)付款成功的,結(jié)算員在下期結(jié)算單中錄入調(diào)整項(xiàng),對(duì)這批重復(fù)結(jié)算的訂單進(jìn)行沖抵。
2)訂單還沒付款的,結(jié)算員在當(dāng)期錄入調(diào)整項(xiàng)進(jìn)行沖抵;
思考:如何根本性規(guī)避?
4、結(jié)算系統(tǒng)配合公司整體要求進(jìn)行合規(guī)改造,因?yàn)樯婕暗臉I(yè)務(wù)類型和商家體量過大,所以是分批切流上線。但是后來有一個(gè)商家找過來反饋,他當(dāng)天收到的貨款比平時(shí)多了,部分訂單好像重復(fù)付款了。
原因
由于新結(jié)算系統(tǒng)切流設(shè)置了白名單和開關(guān),這個(gè)業(yè)務(wù)類型的商家在切流的時(shí)候確實(shí)切了,所以上線后的新系統(tǒng)的的結(jié)算單明細(xì)和金額沒錯(cuò)。但是舊結(jié)算系統(tǒng)里沒有及時(shí)下線這個(gè)業(yè)務(wù),導(dǎo)致舊結(jié)算系統(tǒng)仍然在給商家進(jìn)行結(jié)算,所以結(jié)算重復(fù)。
方案
1)舊結(jié)算系統(tǒng)下線該業(yè)務(wù)類型;
2)新增試算功能,對(duì)結(jié)算次數(shù)和狀態(tài)進(jìn)行校驗(yàn);
3)結(jié)算員聯(lián)系商家確認(rèn)重復(fù)結(jié)算的訂單明細(xì)和金額,結(jié)算員在下期結(jié)算單里進(jìn)行調(diào)賬。
5、某醫(yī)藥商家向采銷反饋當(dāng)期的結(jié)算單的貨款對(duì)賬不齊,自己核算系統(tǒng)無法記賬,要求重新對(duì)賬。對(duì)賬后商家財(cái)務(wù)反饋商家后臺(tái)結(jié)算單金額正確,但是同一批訂單又在另一個(gè)COD系統(tǒng)被結(jié)算,后經(jīng)核對(duì)近年的重復(fù)付款金額1700W+。
原因
1)該平臺(tái)訂單分為先款訂單和后款訂單,兩類訂單都由結(jié)算系統(tǒng)和訂單中心交互,最終面向商家付款。
2)該平臺(tái)所使用的物流服務(wù)商為該平臺(tái)和其他外包訂單的后款訂單部分,也向商家提供了COD結(jié)算業(yè)務(wù)。物流服務(wù)商沒有針對(duì)平臺(tái)訂單進(jìn)行過濾,導(dǎo)致貨款結(jié)算重復(fù)。
方案
物流服務(wù)商COD系統(tǒng)針對(duì)訂單中心的后款訂單進(jìn)行過濾,確保平臺(tái)結(jié)算系統(tǒng)作為商家結(jié)算的唯一收口。
結(jié)算無小事,細(xì)節(jié)顯能力。結(jié)算系統(tǒng)一旦發(fā)生錯(cuò)誤,很多情況下是沒法通過自身校驗(yàn)發(fā)現(xiàn)的,所以在做每一個(gè)需求,處理每一個(gè)問題的時(shí)候,都要把目前系統(tǒng)現(xiàn)狀了解清楚,把可能存在的業(yè)務(wù)場(chǎng)景考慮全面。
如果,我說的是如果,大家所負(fù)責(zé)的結(jié)算系統(tǒng)發(fā)生了線上事故,切忌甩鍋給研發(fā)、給測(cè)試、給運(yùn)營(yíng),問題的發(fā)生不可能只是一方的責(zé)任,可以參考下面的流程處理:
1、定位問題原因,這是第一步也是重中之重;
2、及時(shí)止損并確定問題數(shù)據(jù)明細(xì);
3、產(chǎn)研測(cè)三方確定方案,RD上線修復(fù),QA各場(chǎng)景測(cè)試;
4、聯(lián)系結(jié)算員和運(yùn)營(yíng)盡快與商家聯(lián)系,進(jìn)行溝通和郵件確認(rèn),避免后期扯皮;
轉(zhuǎn)載請(qǐng)備注文章來自:http://ssll180.com/wenda/zhifu/2594.html
?
【免責(zé)聲明】本站對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證,目的在于傳遞更多信息。
看了以上文章的44.75%用戶還看了以下內(nèi)容:
看了以上文章的44.75%用戶還看了以下內(nèi)容:
看了以上文章的26.02%用戶還在看以下內(nèi)容:
看了以上文章的26.02%用戶還在看以下內(nèi)容:
看了以上文章的16.43%用戶還看了以下內(nèi)容:
看了以上文章的16.43%用戶還看了以下內(nèi)容:
POS機(jī)網(wǎng)文章上一篇:為什么有人用手刷pos機(jī)刷卡,信用卡會(huì)降額? ;POS機(jī)網(wǎng)文章下一篇:為什么我需要驗(yàn)證移動(dòng)pos的信用卡?