產(chǎn)品架構(gòu)圖
產(chǎn)品層
通過(guò)核心層提供的服務(wù)組合起來(lái)颈嚼,對(duì)最終用戶(hù)、商戶(hù)演闭、運(yùn)營(yíng)系統(tǒng)提供服務(wù)的系統(tǒng)锦担。
支付系統(tǒng)的支撐系統(tǒng)、核心系統(tǒng)每家公司的架構(gòu)都大同小異纹腌,而且都是必不可少的模塊。而每家公司的支付業(yè)務(wù)、運(yùn)營(yíng)策略各自不同砌溺,所以,上面的應(yīng)用層各自不同变隔。通常我們可以按照使用對(duì)象劃分為:針對(duì)最終用戶(hù)應(yīng)用规伐、針對(duì)商戶(hù)應(yīng)用、針對(duì)運(yùn)營(yíng)人員應(yīng)用匣缘、針對(duì)分控人員應(yīng)用...
支付流程圖
資金流處理
核心層
支付系統(tǒng)的核心模塊猖闪,內(nèi)部又分為兩個(gè)部分: 支付核心模塊以及支付服務(wù)模塊
支付應(yīng)用
支付核心層通過(guò)支付應(yīng)用對(duì)上冊(cè)提供服務(wù),用戶(hù)從這里啟動(dòng)支付流程肌厨。
支付網(wǎng)關(guān)
在支付系統(tǒng)中培慌,支付網(wǎng)關(guān)和支付渠道的對(duì)接是最核心的功能。其中支付網(wǎng)關(guān)是對(duì)外提供服務(wù)的接口柑爸,所有需要渠道支持的資金操作都需要通過(guò)網(wǎng)關(guān)分發(fā)到對(duì)應(yīng)的渠道模塊上吵护。一旦定型,后續(xù)就很少表鳍,也很難調(diào)整何址。而支付渠道模塊是接收網(wǎng)關(guān)的請(qǐng)求,調(diào)用渠道接口執(zhí)行真正的資金操作进胯。每個(gè)渠道的接口用爪,傳輸方式都不盡相同,所以在這里胁镐,支付網(wǎng)關(guān)相對(duì)于支付渠道模塊的作用偎血,類(lèi)似設(shè)計(jì)模式中的wrapper,封裝各個(gè)渠道的差異盯漂,對(duì)網(wǎng)關(guān)呈現(xiàn)統(tǒng)一的接口颇玷。而網(wǎng)關(guān)的功能是為業(yè)務(wù)提供通用接口,一些和渠道交互的公共操作就缆,也會(huì)放置到網(wǎng)關(guān)中
支付網(wǎng)關(guān)工作流程:
- 商戶(hù)側(cè)應(yīng)用發(fā)起支付請(qǐng)求帖渠。注意,這個(gè)請(qǐng)求一般是從服務(wù)器端發(fā)起的竭宰。比如用戶(hù)在手機(jī)端提交“立即支付”按鈕后空郊,商戶(hù)的服務(wù)器端會(huì)先生成訂單份招,然后請(qǐng)求支付網(wǎng)關(guān)執(zhí)行支付
- 支付請(qǐng)求被發(fā)送到支付(API)網(wǎng)關(guān)上。網(wǎng)關(guān)對(duì)這個(gè)請(qǐng)求進(jìn)行一些通用的處理狞甚,比如QPS控制锁摔、驗(yàn)簽等,然后根據(jù)支付請(qǐng)求的場(chǎng)景(網(wǎng)銀哼审、快捷谐腰、外卡等),調(diào)用對(duì)應(yīng)的支付產(chǎn)品
- 支付產(chǎn)品對(duì)用戶(hù)請(qǐng)求進(jìn)行預(yù)處理涩盾,包括執(zhí)行參數(shù)校驗(yàn)十气、根據(jù)支付路由尋找合適的支付通道、評(píng)估交易風(fēng)險(xiǎn)春霍、生成訂單桦踊、調(diào)用通道落地執(zhí)行支付、響應(yīng)通道的結(jié)果并將交易結(jié)果通知到商戶(hù)側(cè)
- 支付產(chǎn)品調(diào)用支付通道執(zhí)行支付终畅。這個(gè)請(qǐng)求并不是直接落地到通道上,而是通過(guò)支付通道前置來(lái)封裝竟闪,由支付通道前置來(lái)完成和通道的交付离福。 支付產(chǎn)品是按照可以提供的支付服務(wù)來(lái)設(shè)計(jì)的
- 支付通道前置,(以下在不引起混淆的情況下炼蛤,都簡(jiǎn)稱(chēng)支付通道)負(fù)責(zé)和支付通道之間的通訊妖爷,調(diào)用支付通道接口完成最終的支付操作數(shù)
設(shè)計(jì)原則
如上所述,支付網(wǎng)關(guān)理朋、支付產(chǎn)品和支付渠道的職責(zé)分工為:
- 按照支付能力來(lái)劃分支付產(chǎn)品絮识。
- 同一支付能力的公共支付流程,在支付產(chǎn)品中實(shí)現(xiàn)嗽上。 支付產(chǎn)品提供的是和渠道無(wú)關(guān)的次舌、和支付能力流程相關(guān)的功能。
- 在各支付產(chǎn)品中兽愤,其和支付能力無(wú)關(guān)的公共功能彼念,在支付網(wǎng)關(guān)上實(shí)現(xiàn)。
按照這個(gè)分工浅萧,在支付網(wǎng)關(guān)上實(shí)現(xiàn)的主要功能:
- API路由逐沙。在聚合支付場(chǎng)景下,當(dāng)有多個(gè)支付產(chǎn)品可以提供支持時(shí)洼畅,使用支付網(wǎng)關(guān)可以讓接入方對(duì)接時(shí)無(wú)需考慮支付產(chǎn)品的部署問(wèn)題吩案。
- 接口安全: 熔斷、限流與隔離帝簇。 這對(duì)支付服務(wù)來(lái)說(shuō)尤為重要徘郭。 這是微服務(wù)架構(gòu)的基本功能靠益,本文不做描述。
如下功能崎岂,是在支付產(chǎn)品中提供:
- 風(fēng)控?cái)r截: 風(fēng)控是和支付產(chǎn)品有關(guān)捆毫,不同產(chǎn)品的風(fēng)控措施、處理對(duì)策也是不同的冲甘,所以風(fēng)控是在產(chǎn)品層實(shí)現(xiàn)绩卤。
- 支付路由: 路由也是和產(chǎn)品有關(guān)。不同產(chǎn)品路由策略也不同江醇。
- 參數(shù)校驗(yàn): 這也是和支付產(chǎn)品相關(guān)的濒憋,不同的產(chǎn)品接口其參數(shù)也不同。
- 支付流程: 生成交易記錄陶夜、落地渠道執(zhí)行支付凛驮、同步和異步通知等操作。
如下功能条辟,可以在產(chǎn)品層或者網(wǎng)關(guān)層實(shí)現(xiàn):
- 身份驗(yàn)證: 確認(rèn)付款方黔夭、收款方、渠道是否有執(zhí)行當(dāng)前操作的權(quán)限羽嫡。 在那一層實(shí)現(xiàn)取決于這些信息是否有提煉為公共行為本姥。
- 驗(yàn)簽: 對(duì)接口參數(shù)進(jìn)行簽名并驗(yàn)證其簽名。這是為了避免接口被盜刷和篡改的必要手段杭棵。如果對(duì)各個(gè)接口采用統(tǒng)一的簽名規(guī)則婚惫,則可以在網(wǎng)關(guān)層實(shí)現(xiàn)。
支付產(chǎn)品
在不同的公司由于接入渠道和應(yīng)用的差異魂爪,對(duì)支付產(chǎn)品分類(lèi)略有不同先舷。支付產(chǎn)品是由支付系統(tǒng)對(duì)支付渠道進(jìn)行封裝而對(duì)業(yè)務(wù)方提供的支付能力。
快捷支付
用戶(hù)在完成綁卡之后滓侍,在支付的時(shí)候蒋川,不需要再輸入卡或者身份信息,僅需要輸入支付密碼就可以完成支付撩笆。對(duì)于小額度的支付尔破,甚至可以開(kāi)通小額免密,直接完成支付浇衬。 這種支付方式不會(huì)打斷用戶(hù)的體驗(yàn)懒构,是目前主要的在線支付方式。一般快捷支付產(chǎn)品是通過(guò)封裝銀行或者第三方支付平臺(tái)提供的快捷支付接口或者代付接口來(lái)實(shí)現(xiàn)的耘擂。網(wǎng)銀支付
用戶(hù)在支付的時(shí)候胆剧,需要跳轉(zhuǎn)到銀行網(wǎng)銀頁(yè)面來(lái)完成支付。在網(wǎng)銀頁(yè)面,需要輸入用戶(hù)的卡號(hào)和身份信息秩霍。這種支付方式會(huì)中斷用戶(hù)當(dāng)前的體驗(yàn)篙悯,一般僅用于 PC Web 上的支付。 網(wǎng)銀支付是封裝銀行提供的網(wǎng)銀支付來(lái)實(shí)現(xiàn)铃绒。賬戶(hù)支付
也稱(chēng)為余額支付鸽照、零錢(qián)支付等。 指為用戶(hù)建立本地賬戶(hù)颠悬, 支持充值矮燎,之后可以使用這個(gè)賬戶(hù)來(lái)完成支付。
支付路由
用戶(hù)在前端選擇一種支付方式赔癌,比如使用招行借記卡來(lái)支付后诞外,系統(tǒng)不一定就是調(diào)用招行的接口來(lái)執(zhí)行支付。支付寶灾票、百付寶等第三方支付平臺(tái)以及銀聯(lián)等峡谊,都支持招行借記卡支付。 這種將支付方式落地到具體的支付接口的模塊刊苍,就是支付路由既们。
支付路由在支付系統(tǒng)中的核心作用,除了本職工作路由外正什,還承擔(dān)如下職責(zé):
- 省錢(qián)啥纸,省錢(qián),省錢(qián)埠忘,這是支付路由選擇支付通道的最主要的規(guī)則。 哪個(gè)通道省錢(qián)馒索,基本會(huì)優(yōu)先考慮這個(gè)通道莹妒。
- 提升支付產(chǎn)品的QOS。這體現(xiàn)在系統(tǒng)的可靠性绰上、穩(wěn)定性旨怠、性能和可用性上。通過(guò)屏蔽掉無(wú)法連接蜈块、不穩(wěn)定鉴腻、性能低的通道來(lái)提升這些指標(biāo)。
- 支持營(yíng)銷(xiāo)百揭。通過(guò)優(yōu)先選擇有優(yōu)惠活動(dòng)的通道爽哎,可以幫助業(yè)務(wù)提升付費(fèi)客戶(hù)量。
- 降低運(yùn)營(yíng)成本器一。一個(gè)設(shè)計(jì)良好的支付路由课锌,可以大大降低運(yùn)營(yíng)投入。
架構(gòu)圖
支付渠道
包括銀行渠道和第三方支付(微信、支付寶渺贤、通聯(lián)雏胃、易寶)渠道
用戶(hù)管理
包括對(duì)用戶(hù)、商戶(hù)的實(shí)名身份志鞍、基本信息瞭亮、協(xié)議的管理
資金管理
管理公司在各個(gè)支付渠道的頭寸,在余額不足時(shí)進(jìn)行打款固棚。 對(duì)第三方支付公司统翩,還需要對(duì)備付金進(jìn)行管理
清算分潤(rùn)
對(duì)于有分潤(rùn)需求的業(yè)務(wù),還需要提供清分清算玻孟、對(duì)賬處理和計(jì)費(fèi)分潤(rùn)功能
會(huì)計(jì)財(cái)務(wù)
提供會(huì)計(jì)科目唆缴、內(nèi)部賬務(wù)、試算平衡黍翎、日切面徽、流水登記、核算和歸檔的功能
核算
賬戶(hù)賬務(wù)
管理賬戶(hù)信息以及交易流水匣掸、記賬憑證等趟紊。這里的賬務(wù)一般指對(duì)接線上系統(tǒng)的賬務(wù),采用單邊賬的記賬方式碰酝。 內(nèi)部賬記錄在會(huì)計(jì)核算系統(tǒng)中
風(fēng)控
風(fēng)控包括霎匈,賬戶(hù)風(fēng)險(xiǎn)、交易風(fēng)險(xiǎn)送爸、資金風(fēng)險(xiǎn)铛嘱、套現(xiàn)風(fēng)險(xiǎn)、操作風(fēng)險(xiǎn)袭厂、合規(guī)風(fēng)險(xiǎn)墨吓、洗錢(qián)風(fēng)險(xiǎn),每一塊都是一個(gè)課題纹磺。
基礎(chǔ)層
用來(lái)支持核心系統(tǒng)的基礎(chǔ)軟件包和基礎(chǔ)設(shè)施帖烘, 包括運(yùn)維監(jiān)控系統(tǒng)、日志分析系統(tǒng)等
運(yùn)維監(jiān)控
支付系統(tǒng)運(yùn)行的基礎(chǔ)設(shè)施受到外界的干擾(壓力橄杨、bug秘症、掉電、黑客攻擊...)造成系統(tǒng)不穩(wěn)定式矫,需要能夠被及時(shí)響應(yīng)乡摹,這就需要一個(gè)運(yùn)維監(jiān)控系統(tǒng)來(lái)協(xié)助完成。日志分析
日志是支付系統(tǒng)統(tǒng)計(jì)分析采转、運(yùn)維監(jiān)控的重要依據(jù)趟卸。需要提供基礎(chǔ)設(shè)施來(lái)支持日志統(tǒng)一收集和分析短信平臺(tái)
短信在支付系統(tǒng)中有重要作用: 身份驗(yàn)證、安全登錄、找回密碼锄列、以及報(bào)警監(jiān)控图云,都需要短信的支持實(shí)時(shí)計(jì)算
全文檢索
數(shù)據(jù)存儲(chǔ)