詳解:支付路由設計
編輯導語:路由器我們一定都不陌生,那么你了解什么是路由器嗎?本篇文章中,作者從路由器的上下游關系、核心系統架構、分組規則、篩選規則、算法模型、管理后臺等方面為我們做了詳細地分析。
路由器,一個神秘的系統,一套偉大的算法;太神秘,以至于這個世界只剩他的傳說,太偉大,因為我們知道他總能為你挑選出最好的;他就是史上最強“通道挑選官”—— 路由器 !
可大可小,可弱可強;可有可無,對他就是這么隨性瀟灑;今天我們就聊聊路由算法模型,以及與他關系最親密的2個小伙伴!
一、什么是路由器?
1. 路由是什么
基于支付通道的屬性特點和業務系統的要求,為支付交易篩選出符合業務要求的最優的通道;簡單的說就是業務系統要收款,你路由器幫我選一條最好的通道吧!這就是路由的職能,為通道選擇做決策。
例如:我們去大興機場,怎么去呢?問問同事吧;同事告訴你,如果省錢就做地鐵轉公交,但是比較耗時,而且折騰;如果圖省事和快就打車,直接就到,就是貴一點;選哪條呢?這個過程中你的同事就是個路由器,給你多個選擇。
如果你增加條件,比如“選擇一個既便宜又不折騰的”,那你的同事可能告訴你“哪就用花小豬,優惠大,打車一樣的體驗,卻是做公交的價格”;那么既便宜又不折騰就是你對交通方式的要求;你的同事就會基于這些要求為你綜合反饋一條道路。
2. 路由作用
剛才說了,為了選擇一條最優的通道,那么作用其實就是:
- 降低成本:越便宜越好;
- 提高用戶體驗:用戶支付的越爽越好;
- 確保有可用通道:這個不行換那個,確保能完成支付。
3. 路由按服務特點分類
- 咨詢型路由:你問他,他告訴你一條通道;
- 服務型路由:你問他,他為你選擇一條通道,并調用通道完成支付,告訴你支付結果。
4. 路由按業務類型分
- 鑒權路由:為綁卡鑒權選擇鑒權通道;
- 支付路由:為支付交易選擇一條支付通道;
- 聚合路由:為聚合支付業務選擇一條支付通道。
5. 路由核心競爭力
路由的評價指標有以下幾個方面:
二、路由器的上下游關系
路由作為最強通道挑選官,那么他與上下游什么關系呢,我們分三層來看:
1. 業務架構簡圖
業務系統請求路由進行支付或者鑒權,路由選擇出了最優的通道;封裝好支付請求參數請求訂單系統初始化支付訂單,訂單系統請求通道完成支付,并返回支付結果(具體的位置和流程我覺得每家公司不一樣,因公司而異,因人而異,你讓路由直接調通道也可以,核心目的就是確保支付能夠成功,至于系統職能劃分,這個不做過多探討)。
2. 核心系統介紹
- 業務系統:路由的上游系統,向路由發起支付請求,比如收銀臺等;
- 訂單系統:路由下游系統,為路由提供支付類接口,并向下請求通道完成支付或者鑒權;
- 通道:銀行通道管理,管理各條通道以及通道屬性等,為上游包裝支付或者鑒權類接口,最后請求通道提供方完成支付或者鑒權;
- 其他系統:路由在篩選通道時有些參數上游系統并不會傳,需要路由自己去查,比如通道屬性,商戶白名單等。
三、路由器核心系統架構
從系統功能層面我們來看一個常見的路由系統架構圖以及在支付架構中的上下游位置:
四、通道屬性介紹
1. 什么是通道屬性
在介紹路由器規則設計之前,我們先了解下通道屬性;如果把通道類比成一個人,那么通道的屬性就像人的屬性一樣,有基本信息、學歷信息、婚姻信息、工作信息等。
那么對于通道來說,他的屬性更多是哪個銀行的,支付通道還是打款通道,可不可用,需不需要商家報備等等。
2. 通道屬性的作用
通道屬性的一個關鍵用途就是路由選擇的依據,路由的規則配置其實就是根據通道屬性去配置的,什么屬性的通道能用,什么類型的通道屬性不能用。
3. 通道屬性舉例
- 通道編碼:gh-kj-001
- 通道名稱:工行快捷支付
- 通道類型:快捷,網銀,打款
- 通道狀態:開啟,關閉
- 所屬銀行:工商銀行
- 卡種:借記卡
- 其他
- ……
五、路由器規則介紹
路由器最核心的是規則以及篩選模型;什么是路由器規則;路由規則就是支付請求來了篩選通道的條件;比如那個銀行的,什么卡等,路由器規則主要分兩類:
1. 分組規則
為了提升篩選效率,我們先對通道按照組合規則進行分組,分組規則需要的參數是上游請求方必填的、離散的,比如按照以下屬性進行分組:
- 交易類型:支付、鑒權、打款
- 賬戶類型:個人、對公
- 卡種:借記卡、貸記卡
- 銀行:工商銀行、招商銀行、北京銀行等
2. 篩選規則
經過通道的分組篩選,最后確定了一個通道列表,然后再通過篩選規則篩選出需要的通道,比如以下篩選規則:
- 狀態:開啟
- 成本最低優先:選擇成本最低的
- 商家通道方報備:商家需要在銀行進行報備
六、路由器分組規則
通過組合規則和篩選規則的配置,我們就會得到一個通道篩選的規則樹:
列如上游系統請求系統時傳了:支付-個人-借記卡-招行,那么就可以快速定位到一個通道組了:通道A、通道B、通道C。
七、路由器篩選規則
通過分組規則我們得到了一個通道組,如上面我們選出3條通道“通道A,通道B,通道C”,最終我們要選擇一條通道,所以還需要進一步做篩選,這時候我們就用到了篩選規則;假如我們設定了3個屬性做篩選“狀態,商家報備,成本優先”,這3條通道屬性如下:
- 假設商家已經在A通道做了報備,所以整個篩選流程模型如下:
我們知道案例中入參應該是3條通道:通道A、通道B、通道C。
- 通過篩選后,因為C關閉了被過濾掉,我們得到了2條通道:通道A、通道B,因為有下一條規則,所以我們繼續往下走,報備規則的篩選,這時候流程圖如下:
因為商家已經報備了A通道,B通道不需要報備,所以,經過這個篩選,我們依然得到兩條通道通道A,通道B,因為有下一條規則,所以我們繼續往下走。
- 成本最低優先規則的篩選,這時候流程圖如下:
經過這個篩選,在A和B通道對比中,B的成本最低,所以最終我們得到了一條最優的通道:通道B。
八、路由器算法模型
通過上面的說明,我們可以得到一個路由器的算法流程和模型可以抽象成4字模型:流·樹·篩·查。
1. 主流程
2.?規則樹
3.?通道篩選
4. 參數查詢
當上游系統沒有傳參,但是在通道篩選時需要的參數,路由需要去相關系統進行查詢,比如商家白名單要到白名單系統查詢等。
九、路由器管理后臺
知道了路由的原理,上下游關系,以及算法模型,我們還需要一個配置化后臺對規則等進行管理,這里不具體介紹;按照業務需要設計即可。另外,通道管理系統,訂單系統后續會有單獨的文章介紹,這里不再贅述了。
十、最后
我們知道系統設計和建設要因公司而已,因業務發展而已,上面介紹的是一個完整的成型的路由系統。
但是路由系統是否需要建設也是非必須的,比如普通的商戶就接了一個微信和支付寶,開了2個商戶號,這個其實就不需要路由系統,業務系統寫死要調用哪個通道即可。
對于哪些接了幾十條通道,每一類通道又開設了多條時,比如微信開了10個商戶號,分別為各業務線收款,那么就需要按照業務類型進行路由選擇微信通道了。
作者:陳曉光,一個會彈吉他會算命的產品經理老司機,微信公眾號:陳天宇宙
本文由 @陳天宇宙 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
那里有通道管理系統
醍醐灌頂!
人人都是產品經理這個app(網站)交互做的好差。我想點贊、收藏,需要下滑到最底下才行= =
小主這里提到的支付和打款的概念和區別能解釋一下么
支付就是個人買東西付款,個對公。打款是企業打款給商戶,公對公,公對個
樓主確實很厲害,在你這學習不到知識,謝謝
學習到很多知識,打錯字了 :)
hhhhh
大佬,微信公眾號怎么搜不到?
可否給大概說明一下路由的監控跟狀態的自動化管理,應該如何設計?或者有沒有文章可參考
請問老哥找到相關文檔了嗎?后人來了 遇到同樣的困境
滿滿干貨