一文讀懂:支付路由應該如何設計!純乾貨!

文章來源:鳳凰牌老熊(ID:shamphone)

nnnnn

歡迎關注知乎賬號@Gabriel沒有特殊字元和討論。

支付流程

n

我們以收銀台為例,詳細說明支付的正確打開方式。 當用戶提交訂單後,就會被引導到收銀台上。 以某東為例,手機上是這樣的:

n

PC上是這樣的:

從這裡我們可以看出,用戶進入收銀台之後,首先需要選擇默認的支付方式

n

支付方式指消費時付款的方式,比如現金支付、貨到付款、信用卡支付、借記卡支付、掃碼支付等。

n

那麼有哪些支付方式適合在收銀台上展示出來? 也就是支付應用和支付方式的關係。在這裡,收銀台是一類支付應用

n

支付應用指提供給最終用戶在特定場景下使用的產品,比如掃碼收銀、二維碼支付、打賞、眾籌、POS支付、生活繳費、信用卡返款、手機充值等。 這些應用是建立在支付產品的基礎之上,直接面向最終的用戶提供服務。

n

每個支付應用可以用的支付方式是不一樣的。比如說,掃碼收銀,可能僅支持微信和支付寶。POS支付,僅支持銀行卡。而信用卡返款,只能從其他的借記卡上去扣款。 支付應用的設計和公司的業務有關,並需要考慮在公司業務場景下的用戶支付體驗。目前應用最全的數支付寶,可以參觀下支付寶的應用(截止至2017年2月15日):

n

在收銀台這個應用中,在呈現支付方式時,哪些支付方式可以提供給當前場景下的用戶來使用,哪個方式應該排在前面,這在支付系統中,是通過引導路由來實現的。

n

引導路由是根據支付應用、收款商戶、訂單額度等信息來決定提供給用戶的支付方式列表。

n

當用戶選擇一種支付方式並提交支付後,支付系統開始執行扣款。比如用戶選擇通過招行來支付,系統就會請求招行來扣款嗎? 這不一定,因為系統有可能並沒有接入到招行介面。除了招行自己的介面外,第三方支付公司、銀聯等,也可以從招行卡上扣款。那應該使用哪個通道合適? 這是通過支付路由來決定的。

n

支付路由指根據用戶選擇的支付方式,結合費率、QOS等因素,選擇合適的銀行或者其他公司提供的支付介面來完成資金轉移操作。

n

通過支付路由,我們可以定位到一個落地來執行的支付介面

n

支付介面,指由銀行提供的用來執行支付的介面。這裡要注意,對於同一家銀行,除了總行可以提供一個介面,各地的分行也可以提供這個介面。 但一般來說,同一家銀行的介面規範是一樣的,不同的是提供介面的伺服器、費率、性能等。

n

比如,支付公司可以接入工行總行、工行上海分行、工行北京分行的介面。為什麼要接入分行呢? 一般來說,不少分行會提供更優惠的接入費率,以及經常會舉辦一些活動來吸引用戶接入。

n

支付通道,這是對支付介面的一個封裝,包含合作銀行以及通道成本、商戶費率、QOS等信息;

n

銀行和第三方支付等渠道提供給電商公司使用的介面,往往都會封裝成支付產品

n

支付產品指將支付通道打包成滿足某特定支付場景需求的商品,比如信用卡快捷、信用卡Moto等。

n

在這裡我們把涉及到的幾個概念都做了定義。 當然,這些定義僅僅是從約定俗成的角度來描述,不具有學術意義。 不同的公司,對這些名稱叫法還不完全一致。 比如支付通道,有些叫渠道,有些公司叫網關。這裡統一一下稱呼,避免混淆。 總的來說,支付系統是把支付通道提供的「支付產品」 使用支付路由來封裝成業務需要的「支付產品」。這就是支付的核心流程。支付路由在其中起著關鍵作用。

n

設計目標

n

支付路由在支付系統中的核心作用,除了本職工作路由外,還承擔如下職責:

n

  1. 省錢,省錢,省錢,這是支付路由選擇支付通道的最主要的規則。 哪個通道省錢,基本會優先考慮這個通道。
  2. n

  3. 提升支付產品的QOS。這體現在系統的可靠性、穩定性、性能和可用性上。通過屏蔽掉無法連接、不穩定、性能低的通道來提升這些指標。
  4. n

  5. 支持營銷。通過優先選擇有優惠活動的通道,可以幫助業務提升付費客戶量。
  6. n

  7. 降低運營成本。一個設計良好的支付路由,可以大大降低運營投入。
  8. n

軟體架構

n

上述流程,在實現上,參考的架構設計如下:

n

支付路由並不會直接對接前端的支付產品或者後端的支付渠道,它是支付網關的一部分。如果是基於微服務的架構,支付路由作為一個獨立的服務,被支付網關所調用。

n

計算因子

n

路由規則是支付路由的核心。在規則設置上,需要和公司的業務、支付服務的scope來綜合考慮。 這裡講述的是通用的規則設計,供具體實現時參考。

n

產品類型 當然,路由時首選需要考慮渠道可以支持的支付產品。

n

費率

n

費率是路由最重要的一個指標。一般銀行是按照額度來收費,部分是按照交易筆數來收費,複雜點的是階梯收費,比如10萬一個費率檔次,100萬一個費率檔次。

n

優惠活動

n

銀行、第三方支付為了延攬客戶,經常也會提供一些補貼給對接的商戶,對於使用該渠道的交易進行補貼。而優惠的策略也是多種多樣。

n

交易限額 不同通道會限制每次交易的金額上限,以及針對每個賬戶每天的額度限制。超過這個額度,需要變換通道。

n

卡類型 通道支持的信用卡或者借記卡。

n

通道的QOS 掉單率、網路延遲以及介面能支持的TPS,是路由的一個重要衡量因素。

n

資金頭寸 電商公司在銀行或者第三方平台的資金頭寸。如果資金頭寸不足,則不能使用這個通道來執行。

n

到賬時效 對於轉賬,資金什麼時候到目標賬戶上,也是影響路由選擇的一個因素。

n

商戶類型 不同類型的商戶可以選擇不同的通道。 比如高性能、費率高的通道,預留給高級商戶。

n

模塊設計

n

支付路由從架構上來說,一般是作為支付網關的一部分。採用微服務架構時,路由模塊作為一個獨立的服務來部署,為支付網關所調用。所涉及的模塊如上所示:

n

支付通道管理

n

提供通道支持的產品類型、費率等信息。

n

支付通道QOS監控

n

收集通道使用過程中的錯誤信息,介面延遲,超時情況等信息,用於統計QOS。

n

資金頭寸管理

n

用於監控公司在各個支付通道上的頭寸,並提供頭寸的信息。

n

優惠活動

n

銀行、第三方支付為了延攬客戶,經常也會提供一些補貼給對接的商戶,對於使用該渠道的交易進行補貼。而優惠的策略也是多種多樣: 1. 支付策略;針對使用該通道的所有支付進行補貼;僅針對首次使用該通道的用戶進行補貼;僅針對綁卡的用戶進行補貼。

n

2. 補貼時,按照支付金額來設置優惠額度,或者按比例打折。

n

3. 一般活動都會設置補貼總額度。該額度用完了就停止補貼。

n

當然,活動也都會設置開始和截止時間。

n

路由計算

n

人工路由

n

大部分支付系統在接入渠道不多時,人工路由也是一個不錯的選擇。運營人員指定支付渠道和產品之間的映射關係。出問題時人工切換即可。這種路由的優勢是性能高,路由結果可控,出問題時易於排查問題。當接入通道數量增加,營銷活動頻繁時,人工路由會是一個巨大的投入。

n

基於規則的路由

n

這是相對比較簡單的自動路由設計。 按照業務要求設置各種路由規則,比如:

n

if(支付方式==招商借記卡 && 額度<100) then 目標通道==銀聯token支付if(支付方式==招商借記卡 && 額度>100) then 目標通道==招商快捷支付

n

技術上,規則可以使用drools來描述。

n

基於權重的路由

n

規則路由的難點各種規則的制定。在路由因子增多的情況下,規則的維護會是一個噩夢。基於權重的路由則可以緩解這個問題。這種計算方式,簡單說,就是對各個通道打分,分數最高的就命中。難點在於制定打分的標準以及計算公式。 比如可以從費率、優惠額度、QOS和使用率角度來評分,給優惠額度高一點的比重,這會導致高優惠額度的通道被優先命中。注意每個維度上的計算公式也不是一成不變的,比如使用率和QOS都是動態打分計算。權重的調整是一個挑戰,需要在運行過程中不斷的調試。必要時,可以使用旁路測試來比較兩種演算法的優劣。

n

路由是支付的核心模塊,穩定性是第一要素,其次是性能,最後才是怎麼省錢。路由系統的設計,需要和公司業務發展保持一致,並適度超前。簡單的if-else實現可以滿足大多數場景下的需求。避免在系統建設初期引入過於複雜的路由。

推薦閱讀:

2016 支付大事記
支付行業里二清是指什麼?第三方機構不能接二清嗎?
九卦| 央行發布II、III類賬戶開立重大變革通知
支付「收銀台」系統功能邊界應該怎樣定義?

TAG:支付 | 金融 | 互联网 |