支付通道及系統設計
支付渠道是指能夠提供資金流轉功能的通道,我們常見的支付方式都要通過對應的支付通道來完成。支付渠道需要進行管理,那么為什么需要對支付渠道進行管理呢?下面通過場景說明其必要性。
支付渠道,也可以叫支付通道,是指能夠提供資金流轉功能的通道,包括但不限于銀行、第三方支付機構。我們常見的借記卡(儲蓄卡)、貸記卡(信用卡)、微信、支付寶、云閃付等支付方式,都是通過對應的支付通道完成支付的。
支付渠道管理,通俗理解就是對支付渠道的管理, 為什么需要對支付渠道進行管理呢?下面通過場景說明其必要性。
場景一
電商公司A,在初期,為了使產品快速的成型上線,支付是輔助功能,支付收銀臺設計的是一個簡單的收銀臺,只有【支付寶】,那我們該如何實現呢?
支付收銀臺只有一個支付方式——支付寶,是固定的,對應支付通道也是一個固定的,支付的時候直接請求支付寶就可以,調用流程簡化如下
場景二
還是這個公司A,產品上線之后,業務發展的不錯,產品也不斷的迭代,單一的支付方式無法滿足業務發展,收銀臺會發展到這樣
相比于場景一,支持了更多的支付方式,這意味著需要接入更多的支付通道。后續也有可能會支持更多的支付方式,也就有可能需要接入新的支付通道。這個時候我們就需要思考了,比如下面的幾個問題:
通道很多,如何對它們進行統一的維護呢?
當同一個支付方式有多個通道的時候,如何進行通道選擇(即支付通道路由)?
后面如果新增通道,如何能靈活的進行添加呢?
這些可以總結為:需要對支付渠道進行管理。那支付渠道管理是管理什么?以及怎樣進行支付渠道管理的設計呢?下面就以電商平臺為例,進行支付渠道管理的設計。
01 場景分析
電商平臺(以下簡稱平臺A)的交易業務流程(擔保交易)可以描述為以下幾步。
1. 買家通過平臺A購買商品:下單并支付完成;
2. 賣家收到訂單,進行發貨;
3. 買家收到包裹后,確認收貨;
4. 平臺A進行資金結算(按平臺的結算規則),結算到賣家平臺賬戶;
5. 賣家可以在平臺A進行提現,提到賣家自己的銀行卡。
在這個過程中,也可能發生退款,可以分為2類——售前退款和售后退款:
a)售前退款:買家下單支付成功之后,確認收貨之前的退款。
b)售后退款:買家確認收貨之后的退款。
兩者主要的差異是退款的錢由誰來出,售前退款因為資金還沒有結算給商家,所以資金是從平臺A退給買家;售后退款就需要從商家的賬戶退給買家。
我們對上述流程進行簡化,重點突出與支付渠道相關的部分,如下圖所示。我們拆分成3個流程進行支付渠道需求分析:
1.1 支付流程
對平臺A來說,首當其沖的是要保證用戶能支付成功;其次才是其他的,比如通道的成本、用戶體驗等。分析渠道管理的功能:
(1)渠道的基本信息管理維護
渠道支持哪些支付方式。收銀臺展示的支付方式都可以走哪些渠道。
渠道的狀態維護。例如某一個渠道現在有問題,那后續的交易是不能繼續發到這個渠道的,需要維護成下線或者不可用。有的渠道有日常維護,比如每天的凌晨0點-1點不可用,需要增加渠道的維護時間配置。
(2)渠道路由
根據用戶支付方式,選擇一個最優的支付渠道。影響路由可能的因素,比如:通道費率、買家是否已經在某個通道支付過、渠道是否支持、渠道當前是否可用、支付環境(比如微信環境有h5、小程序、sdk,設計的時候可能會定義成不通的通道),以及也有可能會有一些業務上的限制,比如跨境交易只能走固定的幾個通道。
(3)補單流程
正常情況下,渠道側支付成功后,都會主動發送回調通知,告訴平臺這筆訂單的狀態,但是如果出現了意外,渠道的通知服務異常了,單純依靠渠道的回調就有問題了,用戶銀行卡已經扣錢了,但是平臺的訂單還是待支付,所以為了避免這種情況的發生,就需要有補單任務,主動去渠道查詢訂單狀態。
(4)錯誤代碼映射
提升用戶體驗。一般如果支付失敗,渠道都會返回對應的錯誤代碼以及錯誤原因,但是有些渠道,特別是銀行卡支付的時候,因為失敗的原因有很多種,且渠道直接返回的原因,如果直接展示給用戶的話,用戶不一定能理解,所以需要做一層轉換,轉換成用戶容易理解的文案。
1.2 退款流程
退款都是原路退,即支付的時走的銀聯,退款的時候也走銀聯渠道退款。但是也有情況例外,比如:
超過通道的原路退款時間:每個通道不盡相同,有的是一年、兩年或者更久,也有個的只有6個月,比如微信支付寶。超過期限就不能原路退了。
原路退異常:比如微信賬號注銷、卡注銷等等。
所以退款這里,還需要考慮下無法原路退的情況,應該如何處理。
1.3 提現流程
這塊涉及的功能和支付流程類似。需要額外考慮的是如果所有的提現渠道都有問題的時候,提現流程如何進行處理。
02.支付渠道管理設計
2.1 支付渠道管理總體架構設計
根據上一部分的業務場景分析,支付渠道管理系統的架構設計如下:
2.2 支付渠道路由
(1)路由要素分析
路由要素有很多,下圖列了一下常見的要素。
渠道與支付方式的映射關系:是某個支付方式可以走哪個渠道的關鍵配置。
通道限額:除了微信或者支付寶支付的,銀行卡支付通道都是有單筆支付限額,以及日限額。
渠道狀態:渠道當前是否可以用。
渠道權重:比如建設銀行-借記,提交篩選完之后,還有2個渠道可以用,這個時候就需要通過配置的權重,選擇有限走哪個渠道。
白名單:渠道上配置白名單,白名單類型可以是卡號、買家用戶ID、賣家用戶ID,如果配置了白名單,在滿足渠道條件之后,會優先走這個通道。
產品碼:做業務區分。根據前面場景分析,某些渠道只能走特定的業務。
支付環境:同一種支付方式在不同的環境路由到不同的渠道。比如微信支付,可能的支付環境有:微信小程序環境、微信h5環境、SDK環境、瀏覽器環境,環境不一樣,實際發送渠道請求的參數也不一樣,所以需要進行區分。
渠道費率:每個渠道都會收手續費,會有一個費率配置。在實際路由配置的時候,費率選擇問題可以和權重進行合并,運營人員直接根據產品策略,配置渠道權重,以達到目的。
維護時間:通道會有維護時間,即某段時間不能接受交易請求。銀行類的交易,維護比較常見。
(2)路由邏輯
核心邏輯是——選擇一個最優的可以使用的通道。其選擇過程如圖所示:
條件過濾:根據請求參數,選出所有符合條件的渠道集合。實現起來比較簡單,配置好條件,篩選的時候逐個進行比較,如果符合就繼續下一個條件,如果不符合就中止,進行一個下一個渠道篩選。
渠道選擇:從可用的渠道集合中選擇一個最優的渠道。一般會進行一個打分制,需要配置分數規則,比如配置的費率規則:
把所有的分數進行加和,就是這個渠道的分數,最后返回一個分數最高的渠道。比較特殊的,如果命中了白名單,則可以直接返回這個渠道。
(3)退款渠道路由
退款渠道的路由很簡單,就是退款的時候獲取到原單渠道,那么這個渠道就是退款渠道。
2.3 統一結果碼映射
這里不僅有支付失敗的錯誤文案映射,也還有訂單狀態的映射,因為渠道的返回報文有對應的返回碼,這個在對接時候,渠道方會告知哪些返回碼是成功的。這塊的處理流程如下:
2.4 補單邏輯
不管是支付、退款還是提現,補單流程是統一的,如下圖所示(圖十一):
不同的是,支付/退款/提現的查詢,需要請求不同的接口,需要跟進訂單類型進行適配。
2.5 退款超期處理
這里說的超期包含2種情況:
一是這筆退款訂單的處理超過了一定的時間還沒成功,我們就認為可能是有問題。這個時間是多少呢?不同渠道還不一樣,微信或者支付寶的退款一般是很快的,銀行卡的退款可能會慢一點,最長可能會到幾天才會成功,所以這個時間配置在渠道配置里;
二是這個筆訂單像上面說的幾種情況,沒辦法原路退款了。
這2種情況我們都是需要發現并解決的,畢竟最終是需要把錢退給買家的,所以我們需要把這部分訂單找出來,然后進行處理就好。整個處理流程可以設計如下:
這塊核心就是需要把這個訂單發送到【線下處理系統】(一個能承載這部分訂單且能串通這個流程的系統即可)。對于處理方式,常見的有:
聯系買家,進行線下打款,打一筆資金到買家的銀行賬戶或其他的收款賬戶。
如果是渠道系統問題,可以再把退款單進行原單重新發送(前提是渠道支持重復發送)。
03 支付渠道管理后臺
3.1 支付銀行管理
這里的支付銀行和收銀臺側支付方式對應,是用于后面配置支付渠道路由。
3.2 支付渠道管理
支付渠道管理維護了支付通道的基本信息。描述為:哪個機構(外部機構的簡稱)、什么業務(入款、出款等)、什么支付類型(借記、貸記渠道)的通道,并為其定義一個在該支付平臺的唯一通道編碼。其中:
- 修改:對渠道基本信息進行修改;
- 配置接口參數:對這個渠道的接口請求參數進行配置;
- 銀行配置:配置這個渠道能支持哪些支付銀行。
3.3 渠道路由
渠道路由維護了支付銀行和支付渠道的一些條件,如果需要修改。
3.4 白名單管理
白名單管理是為某個用戶或者是卡號添加渠道白名單,在白名單列表里,渠道路由的時候有優先走這個渠道。
專欄作家
陳天宇宙,微信公眾號:陳天宇宙,人人都是產品經理專欄作家。多平臺支付領域專欄作者,十年資深產品;專注為10萬支付產品經理和支付機構以及企業提供深度支付內容和服務!
本文原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自 Unsplash,基于 CC0 協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
通道費、限額、通道協議等,這都算是支付渠道本身的屬性,為什么要在支付路由里面管理呢
對于電商平臺來說,最保險的是過了售后期才可支持提現
轉發了
干貨!