圖解支付結(jié)算平臺(tái)設(shè)計(jì):如何高效給商戶(hù)結(jié)算

0 評(píng)論 2442 瀏覽 14 收藏 8 分鐘

本文主要講清楚支付系統(tǒng)中商戶(hù)結(jié)算涉及的基本概念,產(chǎn)品架構(gòu)、系統(tǒng)架構(gòu),以及一些核心的流程和相關(guān)領(lǐng)域模型、狀態(tài)機(jī)設(shè)計(jì)等。

收單結(jié)算是支付系統(tǒng)最重要的子域之一,行業(yè)內(nèi)經(jīng)常把有牌照的支付平臺(tái)稱(chēng)為“收單機(jī)構(gòu)”就可見(jiàn)一斑。

我們?cè)谏弦黄恼轮v了收單如何幫忙商戶(hù)收錢(qián),收完錢(qián)還得轉(zhuǎn)給商戶(hù),用戶(hù)支付100塊錢(qián),那么到底給商戶(hù)多少錢(qián),什么時(shí)候給,這都是結(jié)算平臺(tái)干的工作。謂之“結(jié)算”。

下面這個(gè)圖留著是為了提高“收單、結(jié)算、拒付”緊密結(jié)合的印象。

三者的職能如下:

  1. 收單核心:主要負(fù)責(zé)處理商戶(hù)訂單的全生命周期管理:訂單創(chuàng)建、支付推進(jìn)、退款、撤銷(xiāo)等。
  2. 結(jié)算核心:主要負(fù)責(zé)把商戶(hù)應(yīng)收賬款算清楚,把結(jié)算款按合同約定結(jié)轉(zhuǎn)給商戶(hù)。
  3. 拒付核心:主要負(fù)責(zé)處理用戶(hù)的拒付和對(duì)應(yīng)的抗辯以及最后的判責(zé)。

一、結(jié)算在支付系統(tǒng)中的位置

在收單機(jī)構(gòu)(支付平臺(tái))里,結(jié)算就是把幫商戶(hù)收進(jìn)來(lái)的錢(qián),按約定的結(jié)算規(guī)則、準(zhǔn)確、及時(shí)地結(jié)算給商戶(hù)。

二、結(jié)算產(chǎn)品架構(gòu)

結(jié)算模式分為主動(dòng)結(jié)算和被動(dòng)結(jié)算。站在商戶(hù)的角度,被動(dòng)結(jié)算就是以收單機(jī)構(gòu)為準(zhǔn),收單機(jī)構(gòu)說(shuō)結(jié)多少就是多少。主動(dòng)結(jié)算就是以商戶(hù)為準(zhǔn),商戶(hù)說(shuō)結(jié)多少就是多少。

一般來(lái)說(shuō),大部分商戶(hù)都是被動(dòng)結(jié)算,特殊的大商戶(hù)比如Google,Apple經(jīng)常使用主動(dòng)結(jié)算。

結(jié)算一定要設(shè)計(jì)賬期,就像賬務(wù)系統(tǒng)要有會(huì)計(jì)日是一樣的道理,避免跨天的交易或零點(diǎn)附近的交易出現(xiàn)結(jié)算異常。對(duì)應(yīng)就有賬期創(chuàng)建、入賬、關(guān)賬、出賬。

三、結(jié)算系統(tǒng)架構(gòu)

核心的服務(wù)包括:結(jié)算受理、注冊(cè),賬期的新建、關(guān)賬、出賬,最后就是結(jié)算。

四、結(jié)算核心流程

下面以即時(shí)到賬模式為例說(shuō)明。擔(dān)保交易模式和預(yù)授權(quán)模式稍有不同。

在交易日,收單收到支付成功回執(zhí)后,就發(fā)消息給結(jié)算,結(jié)算收到消息去查結(jié)算合約,進(jìn)入結(jié)算注冊(cè)流程。

在結(jié)算注冊(cè)時(shí),如果存在打開(kāi)的賬期,就直接掛過(guò)去,如果不存在,就創(chuàng)建一個(gè)賬期。

在結(jié)算日,先進(jìn)行關(guān)賬,避免在途任務(wù)受影響。關(guān)賬成功后,進(jìn)入結(jié)算批次,再進(jìn)入打款流程。

打款有3種情況:

1)結(jié)算到商戶(hù)余額戶(hù)。

2)在線(xiàn)結(jié)算到提現(xiàn)卡。

3)線(xiàn)下人工打款(人工結(jié)算)。

打款完成后,推進(jìn)結(jié)算流水SETTLED。

五、結(jié)算核心領(lǐng)域模型

左邊綠色部分是賬單和流水相關(guān)信息,中間藍(lán)色是賬期和批次相關(guān)信息,右邊是打款信息。

因?yàn)橐粋€(gè)收單可能會(huì)有多種費(fèi)用,所以會(huì)生成多條我方賬單流水。同樣的,一個(gè)收單可能結(jié)算給多個(gè)主體,對(duì)應(yīng)有多筆結(jié)算流水。

結(jié)算賬期有點(diǎn)類(lèi)似會(huì)計(jì)日的概念,是為了控制零點(diǎn)左右的收單單據(jù)的結(jié)算能落到正確的結(jié)算賬期里去。

關(guān)賬后就會(huì)發(fā)起外部結(jié)算以及對(duì)應(yīng)的打款。一個(gè)結(jié)算批次可能會(huì)分成多筆打款。

六、結(jié)算狀態(tài)機(jī)設(shè)計(jì)

上面把結(jié)算涉及到的狀態(tài)機(jī)都畫(huà)出來(lái)了。

特殊的是打款單的狀態(tài)機(jī),因?yàn)榇蚩钣锌赡苷{(diào)用外部渠道打到商戶(hù)的卡里去,外部渠道有一定概率先返回打款成功,過(guò)兩天后又返回退票(實(shí)際打款失敗,資金退回),這個(gè)時(shí)候需要推進(jìn)到REVERSE,然后重新更新信息后再進(jìn)行打款。

退票的原因有多種,比如商戶(hù)的卡被凍結(jié)等。

七、資金流

結(jié)算一般只涉及到正向資金流,也就是支付成功后,一步步推進(jìn)結(jié)算到商戶(hù)余額戶(hù)或者商戶(hù)銀行卡,如果是結(jié)算到商戶(hù)余額戶(hù),就需要商戶(hù)主動(dòng)在商戶(hù)門(mén)戶(hù)發(fā)起提現(xiàn)到卡。

很多人很好奇“為什么要有支付網(wǎng)關(guān)過(guò)渡戶(hù)和商戶(hù)待結(jié)算戶(hù)?能不能直接進(jìn)商戶(hù)余額戶(hù)?”

我的答案是:如果你一定要這么做,也是可以的,但是會(huì)給自己埋下很多坑。

我舉兩個(gè)例子:

1. 從渠道扣款成功,并不代表就一定要結(jié)算給商戶(hù)。比如去外部渠道扣款是有時(shí)間消耗的,外部渠道扣款成功后,如果訂單已經(jīng)關(guān)閉(用戶(hù)主動(dòng)關(guān)單或者訂單超時(shí)關(guān)單),這個(gè)時(shí)候需要給用戶(hù)把錢(qián)原路退回去。所以需要有一個(gè)“支付網(wǎng)關(guān)過(guò)渡戶(hù)”作為臨時(shí)的中間戶(hù)(也是內(nèi)部戶(hù),用戶(hù)或商戶(hù)是不可見(jiàn)的),在需要退回時(shí),直接從這個(gè)中間戶(hù)退回去。

2. 商戶(hù)是有結(jié)算周期的,一般使用T+N表示,這個(gè)N可以是0,1,2 … …,從風(fēng)險(xiǎn)角度,比較少使用T+0。

3. 結(jié)算方式是可以使用結(jié)算到余額戶(hù)或卡。如果每筆都直接結(jié)算到了卡,發(fā)生退款怎么辦?還需要有單獨(dú)一個(gè)退款戶(hù)。大規(guī)模交易情況下,這個(gè)卡的交易記錄也是極多的。

4. 退款一般從商戶(hù)待結(jié)算戶(hù)扣回。這樣設(shè)計(jì)更簡(jiǎn)單。

八、結(jié)束語(yǔ)

本文主要講了結(jié)算的基本概念,以及對(duì)應(yīng)的產(chǎn)品和系統(tǒng)架構(gòu)圖,一些核心的領(lǐng)域模型和狀態(tài)機(jī)設(shè)計(jì)。

本文由人人都是產(chǎn)品經(jīng)理作者【隱墨星辰】,微信公眾號(hào):【隱墨星辰】,原創(chuàng)/授權(quán) 發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

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

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