如何搭建支付中臺系統(tǒng)?
中臺的概念在2018年下半年到2019年突然一下子在互聯(lián)網(wǎng)圈火起來了,在招聘網(wǎng)站上隨便一搜都是中臺產(chǎn)品經(jīng)理,那么什么是中臺呢?中臺能解決什么問題,如何去搭建適合公司的中臺系統(tǒng)?支付中臺如何落地?
什么是中臺
中臺其實最早是起源于軍事領(lǐng)域,在二戰(zhàn)時期的美軍在各個戰(zhàn)場上,看起來有打不完的彈藥、耗不完的燃料、充足的食品補給、及時準確的情報……但其資源卻在萬里之遙的美國本土,這一切是如何做到的呢?
就是依靠龐大的中臺體系,支持到世界各戰(zhàn)場。前方戰(zhàn)場上的一名士兵,平均就有12名人員支持,在戰(zhàn)場-基地-本土形成前、中、后臺的效率系統(tǒng)。
國內(nèi)互聯(lián)網(wǎng)最早實行中臺戰(zhàn)略的就是阿里。
由于阿里涉及的業(yè)務(wù)線非常多,在沒有中臺之前都是每個業(yè)務(wù)自己去做一套系統(tǒng),但是每個業(yè)務(wù)系統(tǒng)都有相同的模塊,例如訂單系統(tǒng)、支付系統(tǒng)、商戶系統(tǒng)、短信系統(tǒng)等。因此就導(dǎo)致各個業(yè)務(wù)線重復(fù)造輪子的現(xiàn)象,業(yè)務(wù)端不僅需要對業(yè)務(wù)模塊進行優(yōu)化和升級,同時也需要維護這些基礎(chǔ)支撐服務(wù)。
用一句話概括:中臺就是將所有業(yè)務(wù)的公共模塊抽象出來,單獨創(chuàng)建一個中臺系統(tǒng)統(tǒng)一對這些公共模塊進行維護,統(tǒng)一輸出服務(wù)提供業(yè)務(wù)方使用,讓業(yè)務(wù)方能夠集中全力發(fā)展業(yè)務(wù)。
中臺解決什么問題
理解了中臺的概念,那么就需要思考對于互聯(lián)網(wǎng)公司,中臺系統(tǒng)的搭建能夠解決什么問題呢?
可以解決你的996問題
中臺是獨立于業(yè)務(wù)系統(tǒng)而又服務(wù)于業(yè)務(wù)系統(tǒng)的存在,業(yè)務(wù)系統(tǒng)的前臺和后臺是關(guān)聯(lián)存在的,但是中臺的定位就是出于整個公司層面,要服務(wù)于多條業(yè)務(wù)線。
因此通過建設(shè)中臺系統(tǒng),能夠極大減少業(yè)務(wù)系統(tǒng)的工作量,提高業(yè)務(wù)端的工作效率,業(yè)務(wù)系統(tǒng)部門就不需要再為了這些基礎(chǔ)服務(wù)而進行996了。
提高公司產(chǎn)品靈活性和市場競爭力
通過中臺系統(tǒng),業(yè)務(wù)只需要關(guān)系業(yè)務(wù)流程即可,輕裝上陣,將重心配合市場方向去優(yōu)化業(yè)務(wù)系統(tǒng),對于市場上出現(xiàn)的新的業(yè)務(wù)模式和特殊需求能夠更快的響應(yīng),幫助公司快速占領(lǐng)市場。
節(jié)約成本,結(jié)構(gòu)清晰
對于中臺最直觀的感受就是提高工作效率和減少人力成本,不僅僅減少業(yè)務(wù)開發(fā)部門,同時也減少商務(wù)部門、法務(wù)部門等相關(guān)職能部門,所有的外部基礎(chǔ)服務(wù)統(tǒng)一中臺管理,對于整個產(chǎn)品架構(gòu)的梳理會更加清晰,在產(chǎn)品設(shè)計方面也會更加快速,部門分工也更加合理。
支付中臺如何落地
支付中臺,首先咱們應(yīng)該最關(guān)心的是中臺這個關(guān)鍵詞,因為實際每個業(yè)務(wù)都已經(jīng)有支付能力了,但是由于每個業(yè)務(wù)對于支付的單獨開發(fā),導(dǎo)致資源的浪費,讓業(yè)務(wù)將過多的精力用在基礎(chǔ)支撐服務(wù)的維護和開發(fā)上,而無法集中精力去針對市場優(yōu)化業(yè)務(wù),不利于業(yè)務(wù)的沉淀和持續(xù)發(fā)展。
我認為當(dāng)企業(yè)的業(yè)務(wù)線數(shù)量大,企業(yè)的主要業(yè)務(wù)線穩(wěn)定情況下應(yīng)該需要建立中臺系統(tǒng)。
而建立企業(yè)的中臺系統(tǒng)則需要首先調(diào)研企業(yè)的每個業(yè)務(wù)的場景和特點,然后對每個業(yè)務(wù)進行拆解,得到每個業(yè)務(wù)的組成模塊,再分析出每個業(yè)務(wù)組成模塊的一個合集,這樣就能確定中臺系統(tǒng)的定位和構(gòu)成。
業(yè)務(wù)拆分思路
- 在設(shè)計之初需要確定業(yè)務(wù),該業(yè)務(wù)的核心場景;
- 從核心場景往外剝離,確定哪些是基礎(chǔ)服務(wù);
- 確定基礎(chǔ)服務(wù)與業(yè)務(wù)的系統(tǒng)分界;
- 確定好每個基礎(chǔ)服務(wù)的分界后,需要對基礎(chǔ)服務(wù)進行建模,以保證整個中臺體系的兼容性和擴展性。
支付中臺建模思路
- 基于業(yè)務(wù),拆分為面向支付業(yè)務(wù)和面向資金核算兩套體系。
- 基于場景,例如依據(jù)支付流程等進行拆分。
- 基于技術(shù)實現(xiàn),例如出于對系統(tǒng)的性能等考慮拆分。
支付中臺整體架構(gòu)
通過上圖,可以看出支付系統(tǒng)可以拆分為:收銀臺、交易核心、支付核心、渠道網(wǎng)關(guān)、賬務(wù)系統(tǒng)、會計系統(tǒng)、清算系統(tǒng)、合規(guī)系統(tǒng)等。
- 收銀臺:主要應(yīng)用于業(yè)務(wù)的提交結(jié)算場景,可以根據(jù)不同的業(yè)務(wù)配置不同的收銀臺模板。
- 交易核心:業(yè)務(wù)發(fā)起支付時,支付系統(tǒng)與業(yè)務(wù)方的前置模塊,主要用于對業(yè)務(wù)的校驗、接單、查詢請求等處理。
- 支付核心:對于業(yè)務(wù)發(fā)起的交易進行支付處理,生成支付訂單,可以根據(jù)不同的交易類型匹配不同的支付工具,支付核心根據(jù)渠道返回的支付結(jié)果,請求賬務(wù)系統(tǒng)、清結(jié)算系統(tǒng)、數(shù)據(jù)中心、交易系統(tǒng)等邏輯處理。
- 渠道網(wǎng)關(guān):主要是對接渠道,處理渠道報文,渠道接口請求,支付路由處理等。
- 賬務(wù)系統(tǒng):支付系統(tǒng)的賬務(wù)處理中心,賬務(wù)的凍結(jié)、解凍、出金、入金,根據(jù)不同的交易類型對賬戶進行記賬,并將賬務(wù)流水通知到會計系統(tǒng),會計系統(tǒng)進行復(fù)式記賬。
- 會計系統(tǒng):會計系統(tǒng)可以作為公司的業(yè)財中臺,主要是根據(jù)賬務(wù)系統(tǒng)流水將業(yè)務(wù)數(shù)據(jù)轉(zhuǎn)化為財務(wù)數(shù)據(jù),如果公司有用友、金蝶等財務(wù)系統(tǒng),可以將生成的會計分類同步到財務(wù)系統(tǒng)中。
- 清算系統(tǒng):針對不同的業(yè)務(wù)類型,進行清分結(jié)算。
- 合規(guī)系統(tǒng):對接反洗錢系統(tǒng)、反詐騙系統(tǒng),保證支付安全合規(guī)。
支付鏈路
由業(yè)務(wù)方發(fā)起交易,通過收銀臺或者API發(fā)起,進入到交易系統(tǒng),交易系統(tǒng)請求支付系統(tǒng),支付系統(tǒng)接收到支付請求向渠道網(wǎng)關(guān)發(fā)起,渠道網(wǎng)關(guān)請求銀行或支付公司;支付系統(tǒng)接收到結(jié)果后異步通知數(shù)據(jù)中心、清結(jié)算系統(tǒng)和合規(guī)系統(tǒng)。
異常處理機制
1)如何保證數(shù)據(jù)統(tǒng)一性?
支付系統(tǒng)最重要的就是數(shù)據(jù)的統(tǒng)一性,因為涉及到真實的資金情況,因此對于訂單統(tǒng)一性的要求是最高的,否則會導(dǎo)致資損的情況產(chǎn)生。
我們可以針對每個業(yè)務(wù)設(shè)置一個業(yè)務(wù)代碼,通過業(yè)務(wù)代碼+訂單號的方式,在每筆訂單生成一個業(yè)務(wù)跟蹤號。通過這個業(yè)務(wù)跟蹤號能夠?qū)⒔灰子唵巍⒅Ц队唵?、渠道訂單、資金流水進行關(guān)聯(lián)和約束,防止訂單數(shù)據(jù)差異以及對整個訂單生命周期的追溯。
每個系統(tǒng)的訂單可以定義規(guī)則,例如:日期+系統(tǒng)代碼+序號。
2)如何保證業(yè)務(wù)支付的穩(wěn)定性和擴展性?
首先需要深入了解每個業(yè)務(wù)對于基礎(chǔ)服務(wù)的應(yīng)用場景,根據(jù)業(yè)務(wù)的應(yīng)用場景包裝出不同的交易產(chǎn)品(交易類型、例如充值場景、提現(xiàn)場景、擔(dān)保場景等)。在支付核心系統(tǒng)中,通過支付能力的組合形成支付工具,根據(jù)支付工具在組合成不同的交易產(chǎn)品,例如通過鑒權(quán)+代扣的支付能力,可以組合成支付工具快捷支付,快捷支付可以與交易場景的充值對應(yīng)。這樣就能實現(xiàn)插件化開發(fā),能夠根據(jù)業(yè)務(wù)的需要完成不同的組合場景,提供支付系統(tǒng)的擴展性。
3)如何處理部分支付的異常流程?
例如用戶的組合支付(紅包、優(yōu)惠券、支付寶支付)紅包和優(yōu)惠券扣款成功、支付寶支付失敗,我們建立了一個異常管理組件,這種組合支付都需要報送到異常管理組件,通過異常處理組件的規(guī)則,對該異常情況發(fā)起反向退款流程。異常處理組件會向支付系統(tǒng)發(fā)起紅包退款、優(yōu)惠券退款,保證整體訂單的狀態(tài)一致性。
4)代付拆單,部分成功的情況
對于代付交易,如果拆單后,出現(xiàn)2筆子單成功,1筆子單失敗,出現(xiàn)這種異常會將該異常子單發(fā)送到異常處理組件,異常處理組件發(fā)送到調(diào)度中心,可以重發(fā);如果無法重發(fā),可以人工支付后更新狀態(tài)。
本文由 @極光 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議4
給支付中臺提供了一個明確的定義,公共模塊抽象出來 ,提供各個業(yè)務(wù)以支持,不同重復(fù)造輪子, 后面會是如何做的問題了。 1.如何研發(fā)公共模塊 2.各個前臺系統(tǒng)如何調(diào)用 3.中臺系統(tǒng)如何整合數(shù)據(jù)
一直沒理解,為什么交易系統(tǒng)在收銀臺之后而不是在收銀臺之前
此交易系統(tǒng)不是訂單系統(tǒng)
怎么感覺沒寫完,突然就結(jié)束了
我也是這么認為的,確實從那個架構(gòu)圖開始就斷開了的感覺,不過本文已經(jīng)介紹的一些概念寫的還是相當(dāng)不錯的,如果作者再進一步敘述就太好了
點贊