壹、小額支付系統的概述
支付系統根據交易金額的大小、交易的緊急情況,將支付系統劃分為大額支付系統和小額支付系統。
1.小額支付系統的特點
小額支付系統主要處理跨行同城、異地紙質憑證可以截留的借記支付業務以及金額在規定起點以下的小額貸記支付業務。根據支付指令進行實時或批量轉發,凈額清算。小額支付系統主要有以下特點:
批量處理
借記業務、規定金額起點以下貸記業務
主要服務於社會公眾日常支付等零售支付領域
7*24小時運行
實時業務20秒
2.小額支付系統的基本業務
小額支付系統處理的業務根據業務種類,可劃分為支付類、信息類、特殊交易類、對賬管理類。
支付類業務主要包括普通借貸記業務、實時借貸記業務、定期借貸記業務;信息類業務主要是提供查詢類業務,比如業務狀態查詢等;特殊交易類業務主要是針對異常業務進行對應的沖正處理等;對賬管理類主要是進行對賬處理。
二、普通匯兌業務的鏈路介紹
1.普通匯兌介紹
普通貸記業務主要是處理主動匯款業務,其中匯兌業務為普通貸記最重要的業務之壹。會對主要包括現金匯款、普通匯兌、網銀支付、外匯清算等。普通匯兌的應用場景是客戶通過轉賬方式發起的匯款業務。
2.普通匯兌的處理鏈路
前面說到,小額支付系統的特點為批量轉發,凈額清算。因此,當客戶1發起壹筆普通匯兌交易時,銀行的小額支付系統並不會單筆轉發給人行,而是根據系統自設定,按照時間或者筆數組包,以包的形式轉發給人行。人行接收到小額的批量包,也不會進行逐筆清算,而是凈額清算。具體舉例說明壹下,方便大家理解。有如下壹批交易(這裏以A、B兩個銀行為例):
A銀行向B銀行發起壹筆100元匯款
A銀行向B銀行發起壹筆300元收款
A銀行向B銀行發起壹筆20元匯款
1)渠道端發起匯款交易
2)A銀行支付系統接收到渠道端發起的匯款交易指示後,每壹筆都需要去核心系統進行記賬。
3)當達到壹定的時間或筆數達到壹定的數量後,A銀行支付系統便進行組包,並按照人行的規定的報文格式,將包以報文的格式轉發給人行。
4)人行收到我行的報文後,根據報文內容,先將每筆交易記在相應銀行的頭寸下,匯總後,再進行清算,也就是凈額清算。當批量包處理成功後,人行便將該包轉發給B銀行支付系統並將結果同步到A支付系統。
5)B銀行收到報文後,便將對應的錢轉入對應客戶的賬戶。
6)A銀行支付系統收到人行的成功回執後,再將結果返回給渠道端。
三、普通匯兌的測試分析
從上面的介紹來看,普通匯兌的處理好像並不復雜,但是涉及到錢的測試,在案例設計都需更加嚴謹,接下來我們就測試來進行分析。匯兌分為匯兌往賬(即從我行向他行發出的匯兌交易)、匯兌來賬(他行向我行發來的匯兌交易),這裏以匯兌往賬為例
1.需求分析
首先,我們先進行簡要的需求分析。
支付系統接收到渠道端的交易後,對業務參數進行檢查後,到核心進行記賬;待櫃面發起定時組包指令後,支付系統便進行組包發送人行,並等待接收人行的回執,根據回執進行對應的處理後,將結果同步返回到渠道端。需求項主要有:
1.業務參數檢查
2.記賬
3.發送報文
4.接收回執
5.同步結果
2.實現邏輯分析
梳理完需求後,下面根據具體的需求與實現,我們進行邏輯的梳理,具體如下圖。根據邏輯圖,可從以下三塊進行檢查:
1.邏輯處理檢查:業務參數檢查、異常處理檢查、組包檢查、報文發送檢查、回執接收檢查(拒絕、排隊、清算)、沖正處理、狀態更新
2.判斷分支檢查:記賬結果分支、大小額判斷分支、發送人行結果判斷、人行回執結果判斷
3.異常情況檢查
3.測試點分析
根據邏輯梳理的檢查項後,我們可進壹步輸出測試點。
輸出測試點之後,有壹個問題是,如何覆蓋?
為了保證流程的完整性、全面性,因此這裏建議使用場景將測試點串起來的方法進行覆蓋,如:“小額普通匯兌往賬_扣賬成功,人行拒絕_沖賬成功”這壹場景,即可覆蓋以下這些測試點:
4.測試中的重難點
1)渠道多
Q:發起匯兌交易的渠道有很多,比如櫃面、網銀、手機銀行等,那麽在測試設計時,我們如何判斷是需要全渠道覆蓋還是挑選典型渠道進行覆蓋?
A: 在考慮這個問題前,我們需清楚支付的業務處理邏輯。比如匯兌這壹交易,若各個渠道調用的是支付同壹個接口,那圍繞支付展開的測試則只需保證這個接口的處理邏輯正確,用哪壹渠道來覆蓋並不重要。但圍繞渠道展開的測試則不同,各渠道的參數配置、與支付的通訊方式等都各異,因此各渠道在接入支付後都需要再次測試。
2)關聯方依賴性強
Q:在1的背景下,支付系統接收的每壹筆匯兌交易假設都由渠道方來發起,那則需要關聯方的配合,如果關聯方配合度低,測試起來效率會很低。這種情況,應該如何解決?
?A: 由於支付百分之90的交易都可以在櫃面發起,因此條件允許的話,測試人員可以安裝櫃面的相關環境進行交易的發起。若條件不允許,則需mock調用。
以上兩者都存在各自的優缺點:前者操作起來更加方便快捷,真實性高、連通性強,但是假設櫃面環境出現問題,則會阻塞測試。後者不依賴於環境,也可以使得有效的增加覆蓋,但mock會使測試失去真實性、連通性。因此哪種更合適需要實際考慮。
3)賬務檢查
賬務是測試中比較重要的壹步,假設賬務出現問題,那帶來的經濟損失是很嚴重的。所以賬務的測試相當重要。
賬務有兩種,壹種是記賬賬務,壹種是沖正賬務。正常交易的記賬賬務,對該賬務的金額、機構、科目號、科目名等等都需要仔細核對;異常處理產生的沖正賬務,沖正賬務是與錯賬相反的賬務,此類賬務在測試過程中是必須覆蓋的。
4)模擬人行報文
我們發的往賬交易都需要人行的回執,測試時,人行不會根據妳的測試需求,給妳送妳對應的異常情況。因此我們需自己模擬人行的報文進行測試,即自發自收。這對報文中的要素、邏輯需要有壹定的熟悉程度。
以上,就是小額系統普通匯兌的流程介紹以及測試相關分析。歡迎大家壹起探討,也歡迎指正。