支付網(wǎng)關(guān)設(shè)計概述

3 評論 27669 瀏覽 230 收藏 13 分鐘

本文作者主要分享的支付網(wǎng)關(guān)設(shè)計,即商戶業(yè)務(wù)系統(tǒng)的支付板塊設(shè)計。enjoy~

說到支付網(wǎng)關(guān),首先看一下網(wǎng)關(guān)的定義,網(wǎng)關(guān)的作用是實現(xiàn)網(wǎng)絡(luò)之間的通訊鏈接,包含兩個基本功能:網(wǎng)間連接和協(xié)議轉(zhuǎn)換。?同理,商戶業(yè)務(wù)系統(tǒng)中的支付板塊實現(xiàn)的就是商戶業(yè)務(wù)系統(tǒng)與銀行支付系統(tǒng)之間的鏈接,所起到的作用是類似的,可以被看作為一個網(wǎng)關(guān)。因此,我們今天要講的支付網(wǎng)關(guān)設(shè)計,其實就是商戶業(yè)務(wù)系統(tǒng)的支付板塊設(shè)計。

支付網(wǎng)關(guān)的由來

在電子支付還沒有普及的時候,商戶支持一家銀行是通過對接這家銀行提供的一個系統(tǒng)接口來完成的。然后隨著支付行業(yè)的不斷發(fā)展,商戶已經(jīng)不滿足于支付環(huán)節(jié)只支持一個銀行或者兩個銀行了。此時商戶的支付系統(tǒng)需要同時對接多個銀行,并處理好由此導(dǎo)致的很多衍生問題,例如對賬、清算等。而且開發(fā)一套這樣的系統(tǒng)所需的人力成本和時間成本也是商戶所不愿意接受的。

此時,第三方支付機(jī)構(gòu)誕生了,他們來開發(fā)運營一套系統(tǒng),代替商戶實現(xiàn)同時對接多個銀行系統(tǒng)的功能,然后通過統(tǒng)一的接口提供給商戶使用。所以這一個階段第三方支付機(jī)構(gòu)的系統(tǒng)就是支付網(wǎng)關(guān)。它所具備的基礎(chǔ)功能除了實現(xiàn)商戶業(yè)務(wù)系統(tǒng)與銀行系統(tǒng)之間的鏈接,還包括很多其它的支付業(yè)務(wù)相關(guān)基礎(chǔ)功能,包括:訂單管理、渠道管理、風(fēng)控管理、路由配置、帳務(wù)管理、清算管理、商戶管理和用戶管理等。

隨著線上支付的進(jìn)一步發(fā)展,第三方支付機(jī)構(gòu)越來越多,這時候商戶需要解決的問題已經(jīng)不再是如何接入多家銀行,而是如何接入多家支付機(jī)構(gòu)。此時商戶對支付系統(tǒng)的需求也發(fā)生了變化,網(wǎng)關(guān)的位置也進(jìn)一步前移,對商戶的支付系統(tǒng)提出了更高的要求。現(xiàn)在也有一個角色愿意為商戶來實現(xiàn)類似功能,那就是類似?Ping++ 這樣的聚合支付服務(wù)提供商。

從商戶的角度講,此時的支付網(wǎng)關(guān)和傳統(tǒng)支付網(wǎng)關(guān)區(qū)別在于,關(guān)注點會更少,商戶只需要關(guān)注訂單、渠道、風(fēng)控、賬務(wù)管理和路由配置即可。為了更清楚的解釋說明,我用一趟出境自由行之旅來演示一筆訂單在上述各個模塊之間的流轉(zhuǎn)過程。通常一筆訂單的處理涉及到四個環(huán)節(jié),有創(chuàng)建訂單、報文簽字、支付路由、結(jié)果確認(rèn)。為了更好的配套,我們還加入了商戶入網(wǎng)。

護(hù)照?–?渠道入網(wǎng)申請

渠道入網(wǎng)申請是訂單和渠道管理的首要環(huán)節(jié),就好比出境游首先要有護(hù)照。當(dāng)然并不是說有了護(hù)照就可以去任意國家和地區(qū)。不同的地區(qū)需要不同的護(hù)照類型(護(hù)照,港澳通行證等)。同樣,使用不同的支付渠道,也需要分別進(jìn)行入網(wǎng)申請。這里,尤其需要了解的一點是,支付渠道不等于支付產(chǎn)品。無論支付寶或者微信支付,在不同的前端場景下,比如 App 支付、網(wǎng)頁支付,都有相應(yīng)的支付產(chǎn)品。所以,并不是說商戶要用微信支付就只需要接入微信支付的一個接口。微信的開放平臺和微信的公眾平臺就需要申請兩個獨立的支付權(quán)限,經(jīng)常有客戶誤把開放平臺的 ID 配到公眾平臺,導(dǎo)致報錯。

簽證 – 創(chuàng)建支付訂單

有了護(hù)照以后,我們還需要辦理簽證才能出國。此時是需要提供一些必要信息的,例如往返機(jī)票信息,目的地酒店信息等。這也與創(chuàng)建支付訂單同理,我們需要提供一筆訂單所需的必要要素。在這個環(huán)節(jié),我們需要注意一下幾點:

1. 訂單號

如果自己做支付系統(tǒng),訂單號是第一個要考慮到的問題。當(dāng)我們同時做多個支付產(chǎn)品對接的時候,首先需要注意訂單號的格式,不同支付產(chǎn)品渠道對訂單的格式要求不一樣,特別是銀行端的格式更特殊一些。其次是訂單號的唯一性。在實際操作的時候,訂單號的唯一性不僅和技術(shù)實現(xiàn)有關(guān),還和業(yè)務(wù)流程有關(guān),例如同一訂單是否支持多次支付等。這里我們建議區(qū)分業(yè)務(wù)訂單和支付訂單兩個維度。通過業(yè)務(wù)訂單和支付訂單的一對多映射來解決唯一性問題。

2. 訂單有效期

訂單有效期可以分為兩個部分:支付有效期和退款有效期。

支付有效期是可以商戶自定義的,需要注意的是不同渠道的參數(shù)使用方法不一樣,有的是相對時間,有的是絕對時間。

而退款有效期是由渠道規(guī)定的,不同機(jī)構(gòu)的退款有效期不一樣。這樣我們在業(yè)務(wù)設(shè)計的時候需要取一個最小值。對于超出渠道退款有效期的訂單而業(yè)務(wù)上又要允許退款,那么為了保證訂單信息的正確性,必要的時候必須使用專門的邏輯來處理。

接口適配

支付寶手機(jī)支付和微信支付/銀聯(lián)移動支付的接口區(qū)別可以用簽證類型很好的類比。

支付寶手機(jī)支付發(fā)起是由商戶在后臺將所有東西按照渠道的要求進(jìn)行處理、準(zhǔn)備,然后直接前端通過控件調(diào)起支付寶的?App?發(fā)起支付。這非常像我們的落地簽,自己準(zhǔn)備好必要材料,飛機(jī)落地以后對方海關(guān)才進(jìn)行查驗。

而微信支付和銀聯(lián)移動支付等渠道則必須先進(jìn)行后臺請求,請求通過后,再由前端發(fā)起支付動作。這就和標(biāo)準(zhǔn)的簽證非常類似了,資料不符合要求前,是拿不到簽證的,也就無法進(jìn)行后續(xù)操作。這就是不同支付渠道在業(yè)務(wù)邏輯上有差異的地方,不同渠道的訂單落地順序、落地內(nèi)容,以及后續(xù)的狀態(tài)更新等在支付網(wǎng)關(guān)設(shè)計時都需要相應(yīng)考慮。
出境查驗 – 報文簽名

出境查驗相當(dāng)于報文簽名。出境查驗的時候,我們需要檢查護(hù)照和簽證的合法性。簽名的作用類似,一是防篡改,二是防抵賴。這個環(huán)節(jié),需要弄清楚兩個概念:對稱加密?AES?和非對稱加密?RSA??梢詤^(qū)分公私鑰就基本上沒有問題了。
風(fēng)控管理

出行要注意安全,同理,支付系統(tǒng)也要考慮到風(fēng)控管理。通常我們把風(fēng)控管理分為兩個層面,一個是賬戶資金風(fēng)險控制,另外一個是業(yè)務(wù)風(fēng)險控制。

賬戶資金風(fēng)險控制這環(huán)是由支付機(jī)構(gòu)來負(fù)責(zé)的,因為如果支付機(jī)構(gòu)的支付安全層面出現(xiàn)問題,將導(dǎo)致用戶信息泄露、資金損失以及非法交易等一系列問題。所以這些機(jī)構(gòu)都花了足夠的精力去做賬戶風(fēng)險控制,這樣的后果就是,商戶首先是無法接觸到消費者的個人支付敏感要素的。當(dāng)然,我們就可以投入更多的精力在業(yè)務(wù)風(fēng)險的領(lǐng)域。

業(yè)務(wù)領(lǐng)域的風(fēng)險控制更多需要考慮業(yè)務(wù)漏洞導(dǎo)致的風(fēng)險?;ヂ?lián)網(wǎng)產(chǎn)品常見業(yè)務(wù)風(fēng)險包括惡意刷單、套現(xiàn)、薅羊毛。我們防止這幾類風(fēng)險的常見方式是通過對一些關(guān)鍵要素的采集,比如交易帳戶、支付帳戶、交易頻次、交易金額、交易時間、交易地點等,然后基于相應(yīng)的風(fēng)控規(guī)則進(jìn)行判斷,最后根據(jù)判斷結(jié)果來做相應(yīng)處理。

入境查驗 – 結(jié)果通知,驗簽,狀態(tài)更新

這是支付最后的環(huán)節(jié)。很多商戶經(jīng)常困惑是通過異步通知,還是通過主動查詢來確定最終支付結(jié)果?這兩個方案我們認(rèn)為是并存的,一個是保證效率,一個是保證可用性。我們建議客戶根據(jù)自己的業(yè)務(wù)特點對兩個機(jī)制進(jìn)行有效的配合使用。

同時,我們需要注意的是并不是所有的支付機(jī)構(gòu)都具備異步通知邏輯;也并不是所有的退款都有異步通知,比如微信退款。所以,支付網(wǎng)關(guān)要在這個環(huán)節(jié)來進(jìn)行同一化處理,確保后端業(yè)務(wù)系統(tǒng)對接的規(guī)則一致性。

旅游賬單 –?對賬

最后講一下對賬,對賬管理一般分為渠道對賬和內(nèi)部對賬。渠道對賬要保證清算資金、支付訂單狀態(tài)的一致性,內(nèi)部對帳必須保證交易單、支付單、財務(wù)明細(xì)的一致性。

通常來說,對賬主要包含以下幾步:獲取對帳單,對賬單數(shù)據(jù)格式化,交易金額和訂單狀態(tài)一致性核查,以及差錯處理。

差錯有兩種常規(guī)類型:長款和短款。站在商戶維度來說,長款就是商戶多收到錢。一般來說,訂單狀態(tài)不正確和重復(fù)支付都會導(dǎo)致長款。短款就是商戶少收到錢,這種情況一般概率較低,大多出現(xiàn)在第三方機(jī)構(gòu)與銀行系統(tǒng)之間的業(yè)務(wù)對接環(huán)節(jié)。

訂單的差錯處理,我們強(qiáng)烈建議人工介入,不要自動處理。因為這個涉及到資金的進(jìn)出,必須要謹(jǐn)慎處理。

支付路由

經(jīng)常會有商戶問,我們需不需要做支付路由。實際上,在目前支付網(wǎng)關(guān)需要對接的是不同支付產(chǎn)品,當(dāng)該支付產(chǎn)品的入口是唯一的時候,是無法進(jìn)行支付路由設(shè)計的,最直接的例子就是微信和支付寶。但現(xiàn)在不少銀行都成了微信和支付寶的代理商,支持他們的線下或者線上支付產(chǎn)品。在這個前提下,是可以做一定的支付路由處理的。通常來說,支付路由主要是基于:成本,穩(wěn)定性和流量均衡這幾點來考慮進(jìn)行設(shè)計的。而且,支付路由不單單是一個支付請求的路由設(shè)計,對于后續(xù)支付結(jié)果的處理,資金的對賬等都需要仔細(xì)分析處理。

最后總結(jié)一下,我們通過一個訂單的處理過程,基本介紹了一個支付網(wǎng)關(guān)涉及到幾個板塊,包括:財務(wù)管理、業(yè)務(wù)管理、路由管理、渠道管理和風(fēng)控管理。但僅有這些還是不夠的,作為支付網(wǎng)關(guān)來講,我們還要做接入管理,進(jìn)行流量控制和準(zhǔn)入控制。需要做基礎(chǔ)平臺支撐,進(jìn)行系統(tǒng)狀態(tài)監(jiān)控,提供內(nèi)部運維管理。只有這樣,才可以算是一個相對完備的支付路由,如上圖所示。

(來自Ping++ 支付設(shè)計大會現(xiàn)場分享)

 

作者:Ping++ 趙宇

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

題圖來自 攝圖網(wǎng),基于 CC0 協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 最后的最后文字有誤哈,應(yīng)該是:完備的支付網(wǎng)關(guān)

    回復(fù)
  2. 學(xué)習(xí)了

    來自廣東 回復(fù)
  3. 第一次看見把網(wǎng)關(guān)支付寫的那么詳細(xì)的!

    回復(fù)