圖解支付系統(tǒng)的渠道路由設(shè)計(jì)

1 評(píng)論 392 瀏覽 0 收藏 19 分鐘

在現(xiàn)代支付系統(tǒng)中,渠道路由扮演著至關(guān)重要的角色,它決定了支付請(qǐng)求在多個(gè)可用渠道中的最佳路徑。本文將深入探討渠道路由的基本概念、核心作用以及設(shè)計(jì)原則,并通過(guò)實(shí)際案例分析,展示如何構(gòu)建一個(gè)既靈活又高效的渠道路由系統(tǒng)。

這篇文章主要講清楚:渠道路由是什么,為什么需要渠道路由,渠道路由的幾種形態(tài),一個(gè)簡(jiǎn)潔而實(shí)用的基于規(guī)則的渠道路由設(shè)計(jì)。

注:有些公司稱渠道為通道,都是一個(gè)意思,為方便起見,本文統(tǒng)稱為渠道。

01 一些背景知識(shí)

有些支付公司沒(méi)有區(qū)分支付方式咨詢、渠道咨詢、渠道路由,而是混在一起做掉,這樣的好處是簡(jiǎn)單而實(shí)用,缺點(diǎn)是擴(kuò)展性不足。下面將以擴(kuò)展性最好的拆分方式來(lái)講解。

下面是三者之間的簡(jiǎn)單關(guān)系圖:

說(shuō)明:

  1. 支付方式咨詢:根據(jù)用戶的請(qǐng)求,組裝可用支付方式列表返回給用戶。由收銀域提供服務(wù)。
  2. 渠道咨詢:根據(jù)用戶的請(qǐng)求,組裝可用的渠道列表和渠道屬性返回給收銀域,再由收銀域轉(zhuǎn)換為支付方式返回給用戶。由渠道網(wǎng)關(guān)提供服務(wù)。
  3. 渠道路由:當(dāng)有多個(gè)渠道可用時(shí),選擇出最優(yōu)的一個(gè)渠道。由渠道網(wǎng)關(guān)提供服務(wù)。

再詳細(xì)一點(diǎn),如下:

  • 支付方式咨詢:解決用戶可以使用哪些支付方式,比如余額、招行借記卡、招行信用卡等。比如虛擬商品不能使用信用卡,這種支付方式的管理就是支付方式咨詢的職責(zé)。
  • 渠道咨詢:解決是否有渠道可以支持當(dāng)前的支付行為。比如用戶綁定了招行借記卡,但招行當(dāng)前正在維護(hù)無(wú)法提供服務(wù),那就將渠道狀態(tài)設(shè)置為不可用,收銀域?qū)?yīng)的支付方式會(huì)置灰。
  • 渠道路由:解決最優(yōu)渠道問(wèn)題。需要綜合支付成功率、支付成本、用戶體驗(yàn)、渠道狀態(tài)等多種因素挑選出最優(yōu)的一條渠道。

02 渠道路由核心作用

渠道路由核心作用是當(dāng)有多個(gè)渠道同時(shí)滿足業(yè)務(wù)訴求時(shí),綜合支付成功率、支付成本、用戶體驗(yàn)、渠道狀態(tài)等多種因素挑選出最優(yōu)的一條渠道。具體如下:

  1. 提高支付成功率:通過(guò)選擇最合適的渠道,可以提高支付的成功率,減少支付失敗帶來(lái)的用戶流失。原因在于不同的渠道在其內(nèi)部的風(fēng)險(xiǎn)偏好是不一樣的,同一個(gè)請(qǐng)求在A渠道會(huì)失敗,但在B渠道會(huì)成功。
  2. 優(yōu)化成本:不同渠道的費(fèi)用可能不同,通過(guò)合理的路由,可以降低支付成本。一些渠道還有階梯收費(fèi),需要通過(guò)分流不同的渠道,保持整體成本最優(yōu)。
  3. 提升用戶體驗(yàn):快速、穩(wěn)定的支付體驗(yàn)?zāi)茉鰪?qiáng)用戶的滿意度和忠誠(chéng)度。用戶如果經(jīng)常在A渠道支付,新的請(qǐng)求過(guò)來(lái)后,仍然發(fā)給A渠道支付的成功率往往會(huì)更高。
  4. 負(fù)載均衡:將支付請(qǐng)求合理分配到不同的渠道,避免某個(gè)渠道過(guò)載,提升整體系統(tǒng)的穩(wěn)定性。

舉幾個(gè)渠道路由應(yīng)用的小場(chǎng)景:

  1. 用戶使用招行信用卡支付,支付平臺(tái)同時(shí)對(duì)接了網(wǎng)聯(lián)和銀聯(lián),而網(wǎng)聯(lián)和銀聯(lián)都支持招行信用卡,那么就需要渠道路由挑選一個(gè)渠道。
  2. 做實(shí)名認(rèn)證,平臺(tái)對(duì)接了多個(gè)實(shí)名認(rèn)證通道,通過(guò)渠道路由挑選一個(gè)認(rèn)證渠道。

由上面可以看到,除了支付路由外,還可能有信息類渠道路由,比如實(shí)名認(rèn)證類。

那退款有沒(méi)有路由?顯示沒(méi)有。在銀聯(lián)做的支付,只能去銀聯(lián)退款。特殊的渠道也沒(méi)有路由,比如用戶選擇使用支付寶支付,因?yàn)橹Ц秾氈荒茉谥Ц秾氉鲋Ц?,所以無(wú)需路由。

03 渠道路由的設(shè)計(jì)原則

渠道路由作為支付系統(tǒng)的核心模塊,需要滿足以下幾個(gè)設(shè)計(jì)原則:

  • 靈活性:路由規(guī)則需要支持動(dòng)態(tài)調(diào)整。從業(yè)務(wù)的角度出發(fā),有些場(chǎng)景考慮成本,有些場(chǎng)景考慮成功率,都能方便支持。
  • 擴(kuò)展性:設(shè)計(jì)時(shí)要考慮到未來(lái)可能新增的支付渠道,新增的決策因子,這些都不能在代碼中寫死,確保系統(tǒng)易于擴(kuò)展。
  • 高可用性:路由系統(tǒng)本身需要具備高可用性,確保在高并發(fā)和故障情況下仍能穩(wěn)定運(yùn)行,哪怕內(nèi)部報(bào)錯(cuò),仍然能返回一條可用的渠道。
  • 性能:在保證準(zhǔn)確性的前提下,路由決策需要快速,不能成為支付流程的瓶頸。

04 業(yè)界常見的幾種路由形態(tài)

根據(jù)業(yè)務(wù)的需要,通常有以下幾種路由形態(tài):

  1. 硬編碼取第一個(gè)。在項(xiàng)目上線初期,為了趕進(jìn)度,同時(shí)渠道也不多,常常在代碼中寫死取第一個(gè),先保證支付主流程能走通。
  2. 基于規(guī)則的路由。通過(guò)預(yù)定義的規(guī)則提高靈活性和可擴(kuò)展性。
  3. 智能路由。利用機(jī)器學(xué)習(xí)和大數(shù)據(jù)分析,根據(jù)歷史數(shù)據(jù)和實(shí)時(shí)狀態(tài),智能地選擇最佳渠道。

05 一種典型的基于規(guī)則的渠道路由設(shè)計(jì)

基于規(guī)則的渠道路由是最常見的設(shè)計(jì)。簡(jiǎn)單地說(shuō),就是符合什么條件就執(zhí)行什么樣的分流邏輯。比如:支付平臺(tái)對(duì)接了網(wǎng)聯(lián)和銀聯(lián),招行信用卡全部走網(wǎng)聯(lián),工行信用卡500塊以內(nèi)的走網(wǎng)聯(lián),500塊以上的走銀聯(lián)。

5.1. 核心流程設(shè)計(jì)

說(shuō)明:

  1. 先進(jìn)行唯一渠道判斷,如果只有一條渠道,直接返回。
  2. 判斷規(guī)則,如果規(guī)則沒(méi)有命中,那就從可用渠道中隨機(jī)挑選一條。
  3. 如果命中規(guī)則,再根據(jù)規(guī)則中的分流邏輯進(jìn)行分流。
  4. 最后返回唯一的一條渠道。

5.2. 分流算法設(shè)計(jì)

如果一個(gè)請(qǐng)求既可以走銀聯(lián),也可以走網(wǎng)聯(lián),還可以走直連,有以下幾種情況:

  1. 沒(méi)有命中任何一條規(guī)則,隨機(jī)選擇一條渠道。
  2. 有多條規(guī)則可以命中,選擇優(yōu)先級(jí)最高的。
  3. 命中的路由規(guī)則里,銀聯(lián)和網(wǎng)聯(lián)分別是40%和40%,直連20%,根據(jù)規(guī)則分流。如果當(dāng)前銀聯(lián)掛了,把銀聯(lián)按比例分配到網(wǎng)聯(lián)和直連。

常見的分流算法是先把各渠道的分流比例換算成0-100區(qū)間的數(shù)字,從大到小排序,再根據(jù)用戶ID取模、請(qǐng)求單號(hào)取?;蛏梢粋€(gè)隨機(jī)數(shù),再看這個(gè)數(shù)落在哪個(gè)區(qū)間,對(duì)應(yīng)的渠道就是命中的渠道。

偽代碼如下:

int random = 用戶ID取模(或請(qǐng)求單號(hào)取模,或生成隨機(jī)數(shù));

	for (int i = 0; i < 分流集合.size(); i++) {

	    if (random -= 分流集合[i] <= 0) {

    	        return 命中的渠道;

            }

        }

5.3. 路由規(guī)則配置模型

說(shuō)明:

1)路由規(guī)則用于規(guī)則引擎運(yùn)算是否命中。核心字段包括:規(guī)則ID、規(guī)則類型、規(guī)則表達(dá)式、優(yōu)先級(jí)。實(shí)際實(shí)現(xiàn)時(shí)可根據(jù)各公司內(nèi)部情況加字段。

  1. 規(guī)則ID:用于分流配置做關(guān)聯(lián);
  2. 規(guī)則類型:用于區(qū)分支付、實(shí)名認(rèn)證等。
  3. 規(guī)則表達(dá)式:用于規(guī)則引擎運(yùn)算;
  4. 優(yōu)先級(jí):用于排序,如果有多個(gè)規(guī)則都符合,以優(yōu)先級(jí)最高的為準(zhǔn);

2)分流配置用于規(guī)則命中后,如何進(jìn)行分流。核心字段包括:規(guī)則ID、渠道名、分流比例。

  1. 規(guī)則ID:用于與路由規(guī)則進(jìn)行關(guān)聯(lián)。
  2. 渠道名:表示要分流去的渠道。
  3. 分流比例:說(shuō)明有多少流量要分過(guò)去。

3)決策因子定義用于決策的條件。比如卡BIN,卡品牌,金額等。

5.4. 規(guī)則引擎選擇

業(yè)務(wù)的規(guī)則引擎有很多,比如大名鼎鼎的Drools等,也可以選擇自研,各公司可以根據(jù)自己的技術(shù)生態(tài)來(lái)選擇。

我個(gè)人推薦Aviator。推薦理由:簡(jiǎn)單實(shí)用。因?yàn)槁酚梢?guī)則都非常簡(jiǎn)單,沒(méi)有過(guò)于復(fù)雜的運(yùn)算,不需要引入一些很重的規(guī)則引擎。

關(guān)于Aviator的資料,可參考官網(wǎng)介紹。

后面會(huì)有Aviator的規(guī)則示例。

5.5. 決策子選擇

決策因子就是路由規(guī)則匹配的條件,一般有以下幾種:

  1. 金額:比如小于某個(gè)金額,或大于某個(gè)金額。
  2. 卡品牌:VISA、MASTER、UPAY等。
  3. 發(fā)卡行:CMB、ICBC等。
  4. 卡類型:借記卡、信用卡等。
  5. 卡BIN:某個(gè)號(hào)段的卡。
  6. 業(yè)務(wù)場(chǎng)景字段:各公司自定,比如線下場(chǎng)景,線上場(chǎng)景等。

5.6. 路由規(guī)則示例

規(guī)則的編寫和規(guī)則引擎強(qiáng)相關(guān)。下面以Aviator做個(gè)示例。實(shí)際落地時(shí),需要根據(jù)自己選擇的規(guī)則引擎做改造。

假設(shè):支付平臺(tái)對(duì)接了網(wǎng)聯(lián)和銀聯(lián),要求:

1)招行信用卡全部走網(wǎng)聯(lián)。

2)工行信用卡500塊以內(nèi)(不包含)的40%走網(wǎng)聯(lián),60%走銀聯(lián)。

3)工行信用卡500塊以上的走銀聯(lián)。

一些基本的變量定義

銀行名稱:bankName

支付方式:paymentMethod

卡類型:cardType

金額變量:amount

網(wǎng)聯(lián):NUCC

銀聯(lián):UPAY

招行:CMB

工行:ICBC

定義規(guī)則

1)規(guī)則1:paymentMethod=’card’ && cardType=’credit’ && bankName=’CMB’

分流:NUCC:100

2)規(guī)則2:paymentMethod=’card’ && cardType=’credit’ && bankName=’ICBC’ and amount < 500.00

分流:NUCC:40,UPAY:60

3)規(guī)則3:paymentMethod=’card’ && cardType=’credit’ && bankName=’ICBC’ and amount >= 500.00

分流:UPAY:100

5.7. 界面配置示例

下面只是示意一個(gè)簡(jiǎn)單的路由配置。如果是多層次的與和或關(guān)系,需要產(chǎn)品經(jīng)理做一些稍微復(fù)雜一點(diǎn)的界面。

說(shuō)明:

  1. 示例規(guī)則的業(yè)務(wù)訴求:工行信用卡500塊以內(nèi)(不包含)的40%走網(wǎng)聯(lián),60%走銀聯(lián)。
  2. 后臺(tái)保存的規(guī)則為:“paymentMethod=’card’ && cardType=’credit’ && bankName=’ICBC’ and amount < 500.00”,分流有2兩條,分別是:“NUCC:40”,“UPAY:60”。
  3. 用于決策因子的元數(shù)據(jù),需要提前定義好,包括這些字段的運(yùn)算規(guī)則(比如開戶行就不能使用大于、等于)。

5.8. 一些調(diào)優(yōu)思路

  1. 用戶最近支付成功記錄優(yōu)先,提高成功率。比如用戶可以用銀聯(lián),也可以使用網(wǎng)聯(lián),如果5天內(nèi)最近一次使用了銀聯(lián)是成功的,那么為了成功率,可以考慮再次路由到銀聯(lián)去。因?yàn)閺那里L(fēng)控的角度,已經(jīng)成功的前提下,再次成功的可能性更大(余額不足除外)。
  2. 根據(jù)用戶ID做分流,而不是當(dāng)前訂單號(hào)做分流,或者完全隨機(jī)數(shù)。也就是使用偽隨機(jī)。好處是同一個(gè)用戶更大概率走到同一個(gè)渠道,有利于提高成功率,進(jìn)而提升用戶體驗(yàn)。
  3. 適當(dāng)使用緩存,以提高運(yùn)算速度。

06 加入自動(dòng)化開關(guān)的渠道路由

外部渠道服務(wù)經(jīng)常不穩(wěn)定,通過(guò)自動(dòng)化開關(guān)模塊監(jiān)聽支付引擎或渠道網(wǎng)關(guān)的支付結(jié)果消息,實(shí)時(shí)計(jì)算渠道的狀態(tài),在渠道出現(xiàn)問(wèn)題后自動(dòng)關(guān)閉,并推送給渠道路由。

說(shuō)明:

  1. 由自動(dòng)化開關(guān)模塊監(jiān)聽支付引擎的支付結(jié)果消息,每秒計(jì)算一次渠道的狀態(tài),在渠道出現(xiàn)問(wèn)題后,自動(dòng)關(guān)閉,并把結(jié)果推送給渠道路由。
  2. 渠道關(guān)閉后,再發(fā)起探測(cè)服務(wù),探測(cè)成功后,灰度打開渠道。

下圖是渠道自動(dòng)化渠道開關(guān)的示意圖。有多種技術(shù)手段可以實(shí)現(xiàn),基本原理就是基于滑動(dòng)時(shí)間窗口算法來(lái)做,具體落地可以使用時(shí)序數(shù)據(jù)庫(kù),或者自己通過(guò)redis實(shí)現(xiàn)。

說(shuō)明:

  1. 初始是完成打開。
  2. 指定時(shí)間內(nèi)全部失敗或指定時(shí)間內(nèi)成功率低于閥值,關(guān)閉渠道。
  3. 指定時(shí)間后,發(fā)起查詢,如果查詢渠道失敗,持續(xù)關(guān)閉。
  4. 如果查詢成功,就灰度打開,如果灰度打開后的成功率不滿足要求,就繼續(xù)關(guān)閉。
  5. 如果灰度打開后的成功率滿足要求,就持續(xù)加大灰度,直到完成打開。

后面會(huì)單獨(dú)起一篇文章來(lái)講自動(dòng)化渠道開關(guān)的設(shè)計(jì)與實(shí)現(xiàn)。

07 高階的智能路由

一些有實(shí)力的公司,通過(guò)算法和機(jī)器學(xué)習(xí)來(lái)做智能路由。所謂智能路由,就是不僅是根據(jù)路由規(guī)則來(lái)計(jì)算路由,而是根據(jù)當(dāng)前的請(qǐng)求參數(shù)和渠道數(shù)據(jù),綜合成功率、成本、用戶使用習(xí)慣、地域等多因子計(jì)算出最優(yōu)的一條渠道。

這個(gè)方案有幾個(gè)難題不好解決。

首先是公司實(shí)力足夠強(qiáng)。有人才來(lái)做算法,且這些算法同學(xué)需要懂一點(diǎn)業(yè)務(wù);

其次是經(jīng)驗(yàn)不好總結(jié)。比如成功率提升了2%,是因?yàn)槭裁丛蛱嵘耍坑幸恍┎豢山忉屝浴?/p>

最后業(yè)務(wù)無(wú)法直接操作調(diào)優(yōu)。比如有些場(chǎng)景下業(yè)務(wù)希望保成功率,有些場(chǎng)景下業(yè)務(wù)希望保較低的成本,智能路由如何調(diào)參?

我個(gè)人更傾向于【規(guī)則路由 + 離線數(shù)據(jù)分析】的組合。其中離線數(shù)據(jù)分析平臺(tái)可以引入一些算法來(lái)分析各因子對(duì)成功率的影響,供業(yè)務(wù)人員決策,并調(diào)整路由規(guī)則。

說(shuō)明:

  1. 通過(guò)分析數(shù)據(jù),找到影響成功率成本的因子。
  2. 更新路由規(guī)則。
  3. 重復(fù)第1步。

8. 結(jié)束語(yǔ)

渠道路由在現(xiàn)代支付系統(tǒng)中扮演著至關(guān)重要的角色,一個(gè)高效、靈活的渠道路由設(shè)計(jì)能夠顯著提升支付成功率,優(yōu)化成本,并改善用戶體驗(yàn)。通過(guò)本文的介紹,希望能為大家在實(shí)際項(xiàng)目中設(shè)計(jì)和實(shí)現(xiàn)渠道路由提供一些有益的參考。

作者:隱墨星辰,公眾號(hào):隱墨星辰

本文由 @隱墨星辰 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載

題圖來(lái)自Unsplash,基于CC0協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 支付系統(tǒng)設(shè)計(jì)好復(fù)雜啊,渠道路由這塊尤其燒腦,但真的很酷炫!??????

    來(lái)自遼寧 回復(fù)