第一次搞支付交易需求?這份防資損干貨幫你避避坑。

0 評論 1044 瀏覽 5 收藏 7 分鐘

在交易支付的流程中,總會出現(xiàn)一些損耗,這種資損的處理比較麻煩。這篇文章,作者總結(jié)了其中的經(jīng)驗(yàn),希望可以幫到大家。

一、資損定義和分類

1. 定義

資損指的是在業(yè)務(wù)活動過程中,由于業(yè)務(wù)規(guī)則與實(shí)際資金流動存在不一致的情況,致使業(yè)務(wù)參與方中的一方乃至多方承受了資金損失。

2. 資損分類

站在平臺/公司的角度,資損分長款資損和短款資損。

長款資損,多收了用戶的錢,如重復(fù)代扣,重復(fù)支付,或算多了扣款金額。雖然不直接虧錢,也可以給用戶退錢,但是也浪費(fèi)用戶時(shí)間、客服資源,而且可能存在互聯(lián)網(wǎng)輿論問題。

短款資損,少收用戶錢,或者多給用戶錢/貨/權(quán)益。占用公司客服,催收資源,而且追不回來直接虧錢。

二、通道接入時(shí)防資損

1. 狀態(tài)碼問題

錯(cuò)把判斷接口操作成功的字段,當(dāng)作定義支付業(yè)務(wù)是否成功的字段。

務(wù)必要跟通道方窮盡明確,哪些狀態(tài)碼是成功、哪些是失敗,其余應(yīng)該歸為中間狀態(tài),包括空值等異常。

2. 支付結(jié)果查詢問題

錯(cuò)把查詢操作失敗當(dāng)作交易失敗

切記發(fā)起交易結(jié)果查詢接口失敗,不等于交易失敗,不能漏判斷這個(gè)點(diǎn)。

查詢速度過快

交易剛完成就反查交易狀態(tài),查詢接口返回“無此訂單/訂單不存在”,可能是銀行交易鏈路長,查詢請求先到。若據(jù)此將交易視為失敗處理,會引發(fā)上游系統(tǒng)重試,導(dǎo)致重復(fù)支付。

建議對接時(shí)咨詢接口提供方查詢頻率,了解多久后能查詢;或定義查詢策略,報(bào)錯(cuò)后 N 時(shí)間再查一次,若一直報(bào)錯(cuò),N 時(shí)長后置為失敗。

3. 通知問題

通道方通知的結(jié)果不一致

如通道方出現(xiàn)多次通知結(jié)果前后不一致,則建議以第一遍的通知為準(zhǔn),后續(xù)通知不更新狀態(tài),且告警出來人工干涉。

同步結(jié)果覆蓋異步通知結(jié)果

接口發(fā)起支付的時(shí)候沒得到終態(tài),而異步通知來得快,把訂單改了終態(tài)。此時(shí)發(fā)起支付后的程序又把訂單改成中間態(tài),并觸發(fā)后續(xù)的業(yè)務(wù)。

這個(gè)時(shí)候有人可能會說,等待下一次中間態(tài)查詢的補(bǔ)償任務(wù)即可,但是如果下游業(yè)務(wù)沒做好冪等,就G了。

因此建議,支付狀態(tài)不能從終態(tài)更新成處理中狀態(tài),不能從一個(gè)終態(tài)更新成另外一個(gè)終態(tài),如把成功改為失敗,或者失敗改為成功。

4. 單位問題

明確通道方金額的分元單位、貨幣單位等,若內(nèi)外部系統(tǒng)單位不一致,及時(shí)進(jìn)行單位轉(zhuǎn)換。同時(shí)關(guān)注金額精度問題。

三、扣款/支付時(shí)防資損

1. 支付中問題

業(yè)務(wù)一定要考慮、設(shè)計(jì)支付中狀態(tài)。

2. 防重復(fù)扣款

系統(tǒng)代扣

后端按支付訂單號冪等,支付中/支付成功狀態(tài)下不允許發(fā)起新支付。

主動支付

前端防抖。

前端支付中狀態(tài)付款按鈕置灰禁用。

后端按支付訂單號冪等,支付中/支付成功狀態(tài)下不允許發(fā)起新支付。

3. 單位

前后端分元單位、貨幣顯示要顯示一致。

四、出金業(yè)務(wù)防資損

1. 防重復(fù)出金

根據(jù)業(yè)務(wù)單號防重

限制同一筆業(yè)務(wù)訂單,只能同時(shí)存在在途或者成功1條出金記錄。

根據(jù)業(yè)務(wù)特征防重

短時(shí)內(nèi)同對象(卡號、身份證號、信用代碼,對象編碼等)。

短時(shí)內(nèi)同金額。

2. 防大額出錯(cuò)

根據(jù)不同的業(yè)務(wù)特征制定出金限額

如單筆出金限額、平臺單位時(shí)間之內(nèi)(日、月、年)匯總出金限額、單對象單位時(shí)間之內(nèi)出金限額

五、賬戶/錢包業(yè)務(wù)防資損

1. 涉及資金流的賬戶入賬程序

加錢入賬

如充值,一定是先用戶支付成功(通道響應(yīng)支付成功),再操作給用戶賬戶加錢。

減錢入賬

如提現(xiàn)、充值退款,一定是先操作用戶賬戶減錢,再給用戶原路退款/打款。

減錢時(shí)務(wù)必判斷余額夠不夠。

如是充值退款,如充值的時(shí)候收了手續(xù)費(fèi),需明確退款是否退手續(xù)費(fèi),如手續(xù)費(fèi)也退,判斷余額夠不夠時(shí),需要剔除手續(xù)費(fèi)。

2. 操作賬戶的順序

先插入流水,再操作余額加減,且務(wù)必上事務(wù)。

3. 入賬防重

根據(jù)業(yè)務(wù)單號+流水類型/賬戶類型冪等。且需要將業(yè)務(wù)單號存進(jìn)流水。

4. 提現(xiàn)失敗后賬戶藍(lán)字沖賬

如業(yè)務(wù)涉及提現(xiàn)失敗做沖賬動作,需要注意以下點(diǎn)。

防重復(fù)給賬戶加錢

除了提現(xiàn)訂單號判斷防重外,帶上原提現(xiàn)流水號做判斷,如該提現(xiàn)流水號已存在沖賬流水,則拒絕。

防算錯(cuò)金額

沖賬要取當(dāng)下最新的余額進(jìn)行疊加,不能取原提現(xiàn)前余額。

如有提現(xiàn)手續(xù)費(fèi),需把提現(xiàn)手續(xù)費(fèi)也退回,切記不要算錯(cuò)。

本文由 @別字君 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議。

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!