圖解支付收單平臺(tái)設(shè)計(jì):高效為商戶收款
在支付系統(tǒng)的復(fù)雜世界中,收單結(jié)算扮演著至關(guān)重要的角色。本文將帶你了解收單結(jié)算的演進(jìn)形態(tài),如何在支付系統(tǒng)中定位收單,以及如何設(shè)計(jì)收單產(chǎn)品架構(gòu)和系統(tǒng)架構(gòu)。
收單結(jié)算是支付系統(tǒng)最重要的子域之一,行業(yè)內(nèi)經(jīng)常把有牌照的支付平臺(tái)稱為“收單機(jī)構(gòu)”就可見一斑。
有些監(jiān)管嚴(yán)格的國家地區(qū),沒有收單牌照就不能碰收單和結(jié)算,商戶必須入駐到有收單牌照的支付機(jī)構(gòu)。
不過,在我剛進(jìn)入支付行業(yè)時(shí),還沒有收單平臺(tái)的概念,那時(shí)系統(tǒng)還是單體應(yīng)用,就只是建了一張商戶訂單表,用于保存商戶訂單信息,就是最簡單的收單系統(tǒng)了。
隨著業(yè)務(wù)復(fù)雜度增加,收單也早就不是一張表就能搞定。
本文主要講清楚支付系統(tǒng)中收單涉及的基本概念,產(chǎn)品架構(gòu)、系統(tǒng)架構(gòu),以及一些核心的流程和相關(guān)領(lǐng)域模型、狀態(tài)機(jī)設(shè)計(jì)。
1. 收單結(jié)算概述
收單和結(jié)算結(jié)合很緊密,我們先講一下收單結(jié)算的整體概念,再單獨(dú)細(xì)講收單平臺(tái),結(jié)算平臺(tái),拒付平臺(tái)。
1.1. 基本概念
我們通常把收單、結(jié)算、拒付放在一起講,主要是因?yàn)檫@三個(gè)都是面向商戶的最核心的服務(wù)。簡要如下:
- 收單:幫商戶把錢從用戶手里收進(jìn)來。
- 結(jié)算:把從用戶收進(jìn)來的錢結(jié)轉(zhuǎn)給商戶。
- 拒付:在用戶發(fā)起拒付后需要從商戶待結(jié)算款里面扣除拒付的這部分錢(因?yàn)檫@部分錢需要退回給用戶)。在國際收單場(chǎng)景比較常見。
這三者緊密聯(lián)系卻又彼此各有側(cè)重點(diǎn),后面分開講述。
1.2. 整體產(chǎn)品架構(gòu)圖
從圖中可以看到,最上層是收單的產(chǎn)品層,負(fù)責(zé)對(duì)商戶提供直接的服務(wù),并且封裝個(gè)性化的收銀臺(tái)產(chǎn)品。主要包括有:
- 收銀臺(tái)支付:需要跳轉(zhuǎn)到收銀臺(tái)進(jìn)行支付;
- 二維碼支付:需要先調(diào)用碼平臺(tái)進(jìn)行解碼,解碼后就和普通的支付流程是一樣的;
- 代扣/協(xié)議支付:商戶后臺(tái)發(fā)起扣款,不需要跳轉(zhuǎn)到收銀臺(tái)。
再下面是三個(gè)核心,分別為收單核心、結(jié)算核心、拒付核心。
三者的職能如下:
- 收單核心:主要負(fù)責(zé)處理商戶訂單的全生命周期管理:訂單創(chuàng)建、支付推進(jìn)、退款、撤銷等。
- 結(jié)算核心:主要負(fù)責(zé)把商戶應(yīng)收賬款算清楚,把結(jié)算款按合同約定結(jié)轉(zhuǎn)給商戶。
- 拒付核心:主要負(fù)責(zé)處理用戶的拒付和對(duì)應(yīng)的抗辯以及最后的判責(zé)。
2. 收單演進(jìn)形態(tài)
無收單機(jī)構(gòu)模式
這就是小時(shí)候去小賣部買糖的模式,一手交錢一手交貨。
好處:足夠簡單。不足:無法完成線上交易。
行內(nèi)收單模式
所謂行內(nèi)收單,就是發(fā)行卡和收單是同一家銀行。
好處:手續(xù)費(fèi)低,成功率高。不足:業(yè)務(wù)比較受限,以線下收單為例,商戶無法部署所有的銀行POS機(jī)。
發(fā)卡行與收單行分離模式
大部分情況下,用戶的發(fā)卡行和商戶的收單行是不同的銀行。
不過,這種情況基本也已經(jīng)滅絕,因?yàn)樾枰l(fā)卡行和收單行兩兩對(duì)接,形成一個(gè)巨大的網(wǎng)狀結(jié)構(gòu),維護(hù)成本高昂。
清算機(jī)構(gòu)模式
發(fā)卡行和收單行之間不再直連,而是通過清算機(jī)構(gòu)。清算機(jī)構(gòu)通常是央行下面的特許經(jīng)營的金融機(jī)構(gòu)。這樣圍繞清算機(jī)構(gòu)形成一個(gè)星形架構(gòu),所有銀行只需要和清算機(jī)構(gòu)對(duì)接就行。
當(dāng)前銀行間的交易基本上是這種形態(tài)。比如中國的銀聯(lián),國外的VISA,MASTERCARD等,是卡組,也是清算機(jī)構(gòu)。
第三方支付(電子錢包)形態(tài)
隨著互聯(lián)網(wǎng)支付的興起,以第三方支付為中心形成另外一個(gè)星形結(jié)構(gòu)。
上圖做了很大的簡化。在中國因?yàn)閿嘀边B的關(guān)系,支付寶、微信支付背后的財(cái)付通等這些第三方支付機(jī)構(gòu)都是對(duì)接銀聯(lián)、網(wǎng)聯(lián),而不是直連銀行。但是在國外仍然是允許直連銀行的。
3. 收單在支付系統(tǒng)中的位置
把收單和結(jié)算再細(xì)化分拆,收單的地位如下圖所示:
如果用一句話說明收單的核心能力和定位,那就是:負(fù)責(zé)商戶收單業(yè)務(wù)的全生命周期管理。
4. 收單產(chǎn)品架構(gòu)
前面說過,收單核心負(fù)責(zé)商戶業(yè)務(wù)單的全生命周期管理,對(duì)外提供下單、退款、撤銷、查詢等接口。
行業(yè)內(nèi)對(duì)于交易模式基本有3種:
- 即時(shí)到賬模式:用戶支付完成后,錢就到商戶賬戶。注意:這個(gè)“即時(shí)”是相對(duì)概念。商戶真正拿到錢還需要看結(jié)算協(xié)議及結(jié)算進(jìn)度。去小賣部拿支付寶、微信支付買零食都是這種模式。
- 預(yù)授權(quán)模式:先從用戶賬上預(yù)授權(quán)一筆錢,交易完成后再進(jìn)行請(qǐng)款。最常見的就是酒店住宿場(chǎng)景,入住時(shí)先預(yù)授權(quán)一筆錢做押金,離店時(shí)根據(jù)消費(fèi)情況做請(qǐng)款,并撤銷(Void)多余的預(yù)授權(quán)款項(xiàng)。
- 擔(dān)保交易模式:用戶支付完成后,錢先扣在支付平臺(tái),用戶確認(rèn)收貨后,再通知支付平臺(tái)放款給商戶。在淘寶買東西就是這種模式。
為支持對(duì)外的能力,收單需要建設(shè)很多基礎(chǔ)服務(wù),包括下單、支付推進(jìn)、退款、撤銷、通知、凍結(jié)解凍等。
5. 收單系統(tǒng)架構(gòu)
這個(gè)系統(tǒng)架構(gòu)圖中包含了收單最基本的能力。
收單在收到商戶的請(qǐng)求后,需要調(diào)用會(huì)員、商戶等域校驗(yàn)合法性,還會(huì)調(diào)用合約中心等校驗(yàn)商戶的權(quán)限,全部通過后,就會(huì)創(chuàng)建收單單據(jù)。
如果只是預(yù)下單,收單單據(jù)創(chuàng)建完成后就直接返回給商戶訂單創(chuàng)建成功,并返回收銀臺(tái)地址,供用戶跳轉(zhuǎn)到收單臺(tái)繼續(xù)支付。
如果是下單并支付(比如代扣),收單單據(jù)創(chuàng)建完成后,調(diào)用收銀支付域進(jìn)行支付扣款流程。
6. 收單核心流程
6.1. 極簡支付流程
上面的時(shí)序圖已經(jīng)清楚說明支付整體的流程,以及各子域之間的交互。部分子域沒有畫出來,比如支付過程中需要調(diào)用風(fēng)控、卡中心、額度中心等,這些在后面講收銀支付域時(shí)重點(diǎn)說明,本次聚集在收單領(lǐng)域。
另外,這里只畫了類似代扣場(chǎng)景的支付流程,現(xiàn)實(shí)中的預(yù)授權(quán)、請(qǐng)款,擔(dān)保交易、預(yù)付款(多次支付)等模式會(huì)復(fù)雜很多,后面有機(jī)會(huì)再單獨(dú)開章節(jié)講。
6.2. 極簡退款流程
用戶發(fā)起退款后,在商戶側(cè)會(huì)進(jìn)行校驗(yàn),校驗(yàn)通過后就會(huì)給用戶展示退款已提交之類的提示。
收單接收到商戶的退款請(qǐng)求后,需要先查詢歷史合約,檢查合約是否支持退款,是否過了退款有效期,是否滿足最小退款金額,全部通過后,就創(chuàng)建退款單并保存。
接下來會(huì)進(jìn)入退款資金準(zhǔn)備階段,因?yàn)閺馁Y損防控的角度,除非另有合約約定,否則支付平臺(tái)一般是不會(huì)做墊資退款的。在退款資金準(zhǔn)備階段,需要實(shí)時(shí)扣減商戶待結(jié)算戶的錢,這是與支付流程很大不同的點(diǎn)。當(dāng)然,有些支付公司可能和商戶約定從獨(dú)立的退款賬戶進(jìn)行扣款,那也需要保證這個(gè)退款賬戶余額充足。
上面最后一步的記賬只寫到了充退待清算戶,之后等到清算文件過來后,會(huì)再繼續(xù)推進(jìn)充退待清算戶到渠道應(yīng)收的記賬。
7. 收單領(lǐng)域模型設(shè)計(jì)
這是精簡后的模型,對(duì)于說清楚收單的核心能力建設(shè)已經(jīng)足夠。真實(shí)場(chǎng)景下還需要增加很多必要的字段,比如產(chǎn)品碼,合約號(hào),凍結(jié)標(biāo)識(shí)等。在做詳細(xì)設(shè)計(jì)時(shí)根據(jù)業(yè)務(wù)訴求去增加就行。
從圖中也可以看出,最核心是交易主單,所有其它單據(jù)都與交易主單關(guān)聯(lián)。
比較特別的是里面有普通支付單和預(yù)授權(quán)單。正常都是普通支付單,只有預(yù)授權(quán)產(chǎn)品才會(huì)有預(yù)授權(quán)單,對(duì)應(yīng)的還有請(qǐng)款單和預(yù)授權(quán)撤銷單。
8. 收單狀態(tài)機(jī)設(shè)計(jì)
下面以交易主單、普通支付單、退款單、預(yù)授權(quán)和請(qǐng)款單等常見的單據(jù)狀態(tài)機(jī)做說明。
特別需要說明的是,狀態(tài)機(jī)的推進(jìn)一定要設(shè)計(jì)好,不能使用if else來寫,要牢記“終態(tài)不可變更”的原則,否則容易出問題。具體怎么使用代碼實(shí)現(xiàn)狀態(tài)機(jī),以及為什么“終態(tài)不可變更”,后面單獨(dú)開章節(jié)來詳細(xì)論述。
8.1. 交易主單狀態(tài)機(jī)
交易主單創(chuàng)建初始入庫就是INIT。
如果是下單并支付場(chǎng)景(比如代扣),就先推進(jìn)到PAYING,然后調(diào)用收銀支付進(jìn)行扣款操作。如果是部分請(qǐng)款,也是支付中,全額請(qǐng)款完成或未請(qǐng)款部分撤銷了預(yù)授權(quán),就推進(jìn)到SUCCESS。
如果是預(yù)下單,那停留在INIT,然后等支付域支付成功回執(zhí)回來,推進(jìn)到SUCCSSS。
如果訂單關(guān)閉,就推進(jìn)到CLOSE。
需要特別說明一點(diǎn)的是,一些經(jīng)驗(yàn)不足的同學(xué)在交易主單耦合了很多不應(yīng)該放在交易主單的狀態(tài),比如退款成功,撤銷成功等。這導(dǎo)致交易主單的狀態(tài)機(jī)特別復(fù)雜,非常容易出錯(cuò)。比較好的經(jīng)驗(yàn)就是,交易主單、支付單、退款單、撤銷單等全部只管自己的狀態(tài)機(jī)。
8.2. 支付單狀態(tài)機(jī)
支付單創(chuàng)建初始狀態(tài)就是INIT。
收到支付域的支付成功回執(zhí),更新為SUCCESS。
交易超時(shí)關(guān)閉,推進(jìn)到CLOSE。
8.3. 退款單狀態(tài)機(jī)
退款單初始為INIT。
然后推進(jìn)退款資金準(zhǔn)備,這個(gè)過程把要退款的錢從商戶待結(jié)算戶或指定賬戶扣到退款過渡戶,如果收單合約中還要求退款退費(fèi),還需要從收費(fèi)賬戶把手續(xù)費(fèi)扣出來。
退款資金準(zhǔn)備成功后,推進(jìn)到PREPARE_CUSS。
然后向支付域發(fā)起退款,支付受理成功后,推進(jìn)到SUCCESS。
8.4. 預(yù)授權(quán)狀態(tài)機(jī)
預(yù)授權(quán)單初始為INIT。
預(yù)授權(quán)失敗回執(zhí)推進(jìn)到CLOSE。預(yù)授權(quán)成功后,用戶全額撤銷,也推進(jìn)到CLOSE。
成功回執(zhí)推進(jìn)到AUTHED。
開始請(qǐng)款為CAPTURING,部分請(qǐng)款成功仍然為CAPTURING。
全額請(qǐng)款完成推進(jìn)SUCCESS,或部分請(qǐng)款后,剩下額度被撤銷,也推進(jìn)到SUCCESS。
8.5. 請(qǐng)款狀態(tài)機(jī)
請(qǐng)款單初始為INIT。
請(qǐng)款失敗回執(zhí)推進(jìn)到CLOSE。
請(qǐng)款成功回執(zhí)推進(jìn)到SUCCESS。
9. 資金流
9.1. 即時(shí)到賬
即時(shí)到賬比較簡單,支付過程,從支付網(wǎng)關(guān)過濾戶到商戶待結(jié)算戶,再到商戶余額。
退款則相反,在退款資金準(zhǔn)備階段需要從商戶待結(jié)算戶到退款網(wǎng)關(guān)過渡戶。
9.2. 擔(dān)保交易
擔(dān)保交易模式比即時(shí)到賬多了一個(gè)擔(dān)保戶。
9.3. 預(yù)授權(quán)模式
預(yù)授權(quán)模式比即時(shí)到賬模式多了一個(gè)請(qǐng)款過渡戶。
10. 結(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)載。
題圖來自Unsplash,基于 CC0 協(xié)議。
大佬我想請(qǐng)問下,其他行業(yè)(比如基金)的產(chǎn)品經(jīng)理,想轉(zhuǎn)行做支付產(chǎn)品,門檻高嗎,以及是否有相關(guān)書可以進(jìn)行提前了解學(xué)習(xí)呢
收付款方式有很大的市場(chǎng)需求,多開發(fā)這方面可能有意義