如何模塊化設(shè)計出款系統(tǒng)(一)

6 評論 8054 瀏覽 66 收藏 6 分鐘

出款系統(tǒng)可以分為這幾個主要模塊:應(yīng)用層、服務(wù)層、業(yè)務(wù)層、核心交易層、渠道網(wǎng)關(guān)層。

和收款業(yè)務(wù)相對,出款業(yè)務(wù)是支付業(yè)務(wù)的另一個重要板塊。

出款業(yè)務(wù)是指,從支付機構(gòu)的角度來看,資金方向是流出的,從支付機構(gòu)的客戶備付金賬戶付款到用戶/商戶的賬戶,最常見的業(yè)務(wù)類型包括:個人提現(xiàn)、商戶結(jié)算、商戶代發(fā)等。

那么應(yīng)該如何設(shè)計出款系統(tǒng)?出款系統(tǒng)包括哪些模塊呢?

一、設(shè)計思想

首先先來思考一個問題,在做出款系統(tǒng)設(shè)計的時候,應(yīng)該從哪些角度進行分析?

我們經(jīng)常說,產(chǎn)品設(shè)計時,應(yīng)當(dāng)從使用者的角度去思考使用者的需求是什么?在做出款產(chǎn)品設(shè)計時也是一樣的道理。

那么出款系統(tǒng)的使用者有哪些?其實不僅僅有普通用戶,還有不同角色的使用者,包括:

用戶:

包括個人用戶和商家用戶。對于用戶來說核心訴求是,快速、簡便發(fā)起提現(xiàn)/代付/結(jié)算請求;資金快速到賬。另外,對于個人用戶和商戶用戶來說,都需要能隨時了解交易進展和準確、盡快得知最終交易結(jié)果;如果交易失敗,需要了解具體的失敗原因以便更正后能成功提現(xiàn)/代付/結(jié)算。

財務(wù):

對于財務(wù)來說,核心訴求是,有足夠的資金用于當(dāng)前出款交易;資金安全,避免出現(xiàn)多付款的情況;對于差錯交易進行后續(xù)差錯處理,保證賬務(wù)無誤。

通道運營:

對于通道運營的同學(xué)來說,核心訴求是,提高通道的出款成功率,同時降低成本。

風(fēng)控:

風(fēng)控同學(xué)的核心訴求是,根據(jù)發(fā)起交易的設(shè)備號,使用適當(dāng)強度方式的校驗用戶身份;能對達到一定風(fēng)險值的用戶進行出款交易攔截。

因此,在整個出款系統(tǒng)的設(shè)計中,需要綜合考慮不同角色的訴求進行產(chǎn)品設(shè)計。

二、出款系統(tǒng)涉及哪些模塊?

我將出款系統(tǒng)分為5個層:應(yīng)用層、服務(wù)層、業(yè)務(wù)層、核心交易層、渠道網(wǎng)關(guān)層。

具體包括以下模塊:

出款應(yīng)用層:

負責(zé)面向商戶或用戶,是出款服務(wù)的最前端入口。

出款服務(wù)層:

負責(zé)與外部應(yīng)用層進行交互,并對調(diào)用方的基本信息進行校驗。

這一層對應(yīng)生成出款請求號-request id。

出款業(yè)務(wù)層:

負責(zé)處理與業(yè)務(wù)相關(guān)的流程。不同的業(yè)務(wù)類型,如個人提現(xiàn)和商戶結(jié)算,在流程處理上會有差異,因此需要根據(jù)不同業(yè)務(wù)進行處理。這也是為什么需要拆分出款業(yè)務(wù)層和出款核心層的原因之一。

這一層對應(yīng)生成出款訂單號-order id。

出款核心層:

負責(zé)處理核心出款交易流程,這部分流程和前端業(yè)務(wù)沒有關(guān)系,可以理解為是各出款業(yè)務(wù)最終都必經(jīng)的主流程。包括出款資金審核、出款對賬、出款差錯處理等模塊。

這一層對應(yīng)生成出款交易單-transaction id。

渠道網(wǎng)關(guān):

負責(zé)連接支付機構(gòu)出款系統(tǒng)和外部通道。接收內(nèi)部出款系統(tǒng)的外發(fā)渠道請求,包括交易請求和交易結(jié)果查詢請求等,組裝報文后外發(fā)到外部通道。T+1日獲取通道提供的對賬文件。

這一層對應(yīng)生成渠道流水號-channel id。

整體訂單流轉(zhuǎn)流程為:

1. 用戶或商戶每次發(fā)起出款請求,都會對應(yīng)生成一個request id,即出款請求號;

2. 流到出款業(yè)務(wù)層之后,一個request id對應(yīng)生成一個order id, 即出款訂單號;

3. 流到出款核心層后生成transaction id,即出款交易單。當(dāng)原交易因通道異常導(dǎo)致交易失敗而重發(fā)交易時,一個訂單會對應(yīng)多個交易單;

4. 流到渠道網(wǎng)關(guān)后生成channel id,即渠道流水號,一個transaction id對應(yīng)一個channel id。

在出款系統(tǒng)內(nèi)部,需要同時關(guān)注訂單、交易單和渠道流水信息;而用戶或商戶在前端看到的信息則是訂單層面的信息。在產(chǎn)品設(shè)計的時候需要注意,用戶希望看到的是什么信息,那么訂單層面需要將信息進行一定的處理后再面向用戶展示。

后面的篇章將按照層級結(jié)構(gòu)分別介紹,每個層級的每個模塊扮演的角色是什么?在設(shè)計時分別需要考慮哪些因素?

 

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

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 通俗易懂思路清晰,給作者點贊!

    來自北京 回復(fù)
  2. 為什么要產(chǎn)生三個id?

    回復(fù)
    1. 以購物為例,我猜是文中的幾個ID可以這樣理解:你點擊了付款按鈕會產(chǎn)生一個request id,這個ID對電商平臺運營人員非常有用;當(dāng)你核對好地址、商品信息后點擊立刻支付會產(chǎn)生一個order id,這個ID對運營、客服、用戶都有用;付款成功后商家后臺會產(chǎn)生一個transaction id表明付款成功,這個ID對于查詢付款訂單比較有用,防止hack訂單;channel id 可能是用來區(qū)分電商產(chǎn)品不同渠道,比如app、網(wǎng)站、小程序、代理等等,這個對營銷人員可能比較有用。

      來自上海 回復(fù)
    2. 首先非常感謝你的提問~~

      出款的整個交互流程涉及四方:外部調(diào)用方–》出款系統(tǒng)–》渠道網(wǎng)關(guān)系統(tǒng)–》外部渠道。

      request id :一般是外部調(diào)用方傳進來的。這個號在調(diào)用方那是唯一的,可用于外部調(diào)用方和出款系統(tǒng)進行訂單核對。

      order id :是出款系統(tǒng)內(nèi)部訂單唯一性的標識。為什么不以request id為準呢,因為request id是外部調(diào)用方傳進來的,當(dāng)有多個調(diào)用方使用你的出款服務(wù),碰巧其中兩個調(diào)用方在同一天內(nèi)送進來兩個一樣的request id時,你就無法分清楚了。所以內(nèi)部的唯一性肯定要用自己內(nèi)部生成的訂單號來保證。

      transaction id :這個也是出款系統(tǒng)內(nèi)部生成的號,和order id不同的是,order id是業(yè)務(wù)層生成的,對應(yīng)的是與業(yè)務(wù)相關(guān)的訂單信息,例如用戶提現(xiàn)和商戶代付是兩個不同的業(yè)務(wù)。 transaction id 是交易核心層生成的,對應(yīng)的是交易信息。而當(dāng)渠道異常導(dǎo)致交易失敗時,可以將第一筆交易置失敗,再重發(fā)一筆新的交易。因此,一個order id可對應(yīng)多個transaction id ,給前端用戶返回的信息其實是order id層面的。

      channel id:這個是渠道網(wǎng)關(guān)系統(tǒng)生成的號,稱為渠道流水號。渠道網(wǎng)關(guān)系統(tǒng)和出款系統(tǒng)是兩個獨立的系統(tǒng),每一筆transaction 請求時,渠道網(wǎng)關(guān)都會對應(yīng)生成自己的唯一的渠道流水號。這個號也是渠道網(wǎng)關(guān)系統(tǒng)與外部渠道之間交互的唯一性編號。

      總結(jié)一下:
      request id、order id 、channel id 是為了四方交互時,保證各方內(nèi)部唯一性而產(chǎn)生的編號。
      而transaction id 的產(chǎn)生,主要是因為它和order id需要承擔(dān)出款系統(tǒng)內(nèi)不同的分工。

      文章中講到的各個層級都分別扮演不同的角色,后續(xù)篇章會逐個具體分析。

      來自廣東 回復(fù)
  3. 嗯,確實,如果再補充一下,為什么這樣做就更好了。現(xiàn)在的支付系統(tǒng)比較標準化,但是很多人都知道要這樣做,確不知道為什么要這樣做。

    來自北京 回復(fù)
    1. 非常感謝你的建議,我對于這個問題的理解已經(jīng)補充在上面那位同學(xué)的提問中。

      來自廣東 回復(fù)