從產(chǎn)品分類(lèi)、模塊功能和業(yè)務(wù)流程,了解支付產(chǎn)品服務(wù)的設(shè)計(jì)

11 評(píng)論 65694 瀏覽 504 收藏 14 分鐘

本文介紹支付產(chǎn)品模塊的設(shè)計(jì)。

支付產(chǎn)品模塊是按照支付場(chǎng)景來(lái)為業(yè)務(wù)方提供支付服務(wù)。這個(gè)模塊一般位于支付網(wǎng)關(guān)之后,支付渠道之前。 它根據(jù)支付能力將不同的支付渠道封裝成統(tǒng)一的接口,通過(guò)支付網(wǎng)關(guān)來(lái)對(duì)外提供服務(wù)。所以,從微服務(wù)的角度,支付產(chǎn)品本身也是一個(gè)代理模式的微服務(wù),它透過(guò)支付網(wǎng)關(guān)響應(yīng)業(yè)務(wù)方請(qǐng)求, 進(jìn)行一些統(tǒng)一處理后,分發(fā)到不同的支付渠道去執(zhí)行,最后將執(zhí)行結(jié)果做處理后,通過(guò)支付網(wǎng)關(guān)再回傳給業(yè)務(wù)方。

支付產(chǎn)品在支付系統(tǒng)參考架構(gòu)圖中的位置如下圖所示:

Position

產(chǎn)品分類(lèi)

在不同的公司由于接入渠道和應(yīng)用的差異,對(duì)支付產(chǎn)品分類(lèi)略有不同。綜合支付場(chǎng)景和流程,支付產(chǎn)品可以分為如下幾類(lèi):

Product Category

支付產(chǎn)品是由支付系統(tǒng)對(duì)支付渠道進(jìn)行封裝而對(duì)業(yè)務(wù)方提供的支付能力。整體上來(lái)說(shuō),可以提供如下支付產(chǎn)品:

1. 快捷支付

用戶(hù)在完成綁卡之后,在支付的時(shí)候,不需要再輸入卡或者身份信息,僅需要輸入支付密碼就可以完成支付。對(duì)于小額度的支付,甚至可以開(kāi)通小額免密,直接完成支付。 這種支付方式不會(huì)打斷用戶(hù)的體驗(yàn),是目前主要的在線支付方式。一般快捷支付產(chǎn)品是通過(guò)封裝銀行或者第三方支付平臺(tái)提供的快捷支付接口或者代付接口來(lái)實(shí)現(xiàn)的。

2. 網(wǎng)銀支付

用戶(hù)在支付的時(shí)候,需要跳轉(zhuǎn)到銀行網(wǎng)銀頁(yè)面來(lái)完成支付。在網(wǎng)銀頁(yè)面,需要輸入用戶(hù)的卡號(hào)和身份信息。這種支付方式會(huì)中斷用戶(hù)當(dāng)前的體驗(yàn),一般僅用于PC Web上的支付。 網(wǎng)銀支付是封裝銀行提供的網(wǎng)銀支付來(lái)實(shí)現(xiàn)。

3. 協(xié)議支付

協(xié)議支付也稱(chēng)代收或者代扣,代收指渠道授權(quán)商戶(hù)可以從用戶(hù)的銀行賬戶(hù)中扣款,一般用于定期扣款,不用于日常消費(fèi)。比如水電煤氣、有線電視費(fèi)。協(xié)議支付是通過(guò)封裝銀行、第三方支付提供的代扣或者快捷接口來(lái)實(shí)現(xiàn)。

4. 平臺(tái)支付

使用微信、支付寶等第三方支付平臺(tái)來(lái)完成支付。使用時(shí),一般需要用戶(hù)預(yù)先安裝支付平臺(tái)系統(tǒng)(手機(jī)上),注冊(cè)并登錄到第三方支付平臺(tái),并且已經(jīng)在該平臺(tái)上完成綁卡等操作。 由于微信、支付寶已經(jīng)被大量使用,用戶(hù)也產(chǎn)生對(duì)這些平臺(tái)的信任,平臺(tái)支付往往是電商公司的主要支付方式。

5. 外卡支付

對(duì)于由海外支付的需求,還需要提供外卡支付支持。 國(guó)內(nèi)不少支付渠道都能支持外卡支付,如支付寶全球購(gòu)等。直接對(duì)接Paypal,也是目前用的最多的外卡支付渠道。 關(guān)于外卡支付,以后會(huì)有專(zhuān)文介紹。

6. 話費(fèi)支付

對(duì)于有包月小額類(lèi)型的支付,手機(jī)話費(fèi)也是一個(gè)不錯(cuò)的選擇。目前也有一些平臺(tái)可以支持話費(fèi)支付,比如虹軟、聯(lián)動(dòng)優(yōu)勢(shì)等。

7. 虛幣支付

不少公司會(huì)有自己的虛擬幣,比如京豆、Q幣等。這些虛幣也可以作為一種支付方式。

8. 賬戶(hù)支付

也成為余額支付、零錢(qián)支付等。 指為用戶(hù)建立本地賬戶(hù), 支持充值,之后可以使用這個(gè)賬戶(hù)來(lái)完成支付。

9. 信用支付

如京東的白條,螞蟻花唄等,指使用信用賬戶(hù)進(jìn)行透支,類(lèi)似信用卡支付。

10. 代付

和代扣相反,代付是平臺(tái)將錢(qián)打給用戶(hù)。

每一種支付方式的詳細(xì)功能將在后續(xù)的各個(gè)章節(jié)中介紹。 這里先簡(jiǎn)要介紹支付產(chǎn)品模塊的通用功能。

模塊功能

支出產(chǎn)品根據(jù)其支付能力,對(duì)外提供不同的功能。整體上來(lái)說(shuō),一般支付產(chǎn)品需要提供如下接口:Product Category1. 簽約和解約

在快捷支付、代扣等產(chǎn)品中,用戶(hù)在使用前,需要先完成簽約。簽約可以在渠道側(cè)進(jìn)行,一般第三方支付采用這種方式,當(dāng)電商需要接入時(shí),讓第三方給授權(quán)。 銀行和銀聯(lián)的簽約一般是在電商側(cè)進(jìn)行, 電商側(cè)負(fù)責(zé)收集用戶(hù)的信息,調(diào)用銀行和銀聯(lián)的接口進(jìn)行簽約。簽約后,后續(xù)的支付行為就使用簽約號(hào)來(lái)進(jìn)行,無(wú)需再輸入個(gè)人信息。 和簽約相對(duì)應(yīng),解約則是取消簽約關(guān)系。

2. 支付

支付是少不了的操作。 不同產(chǎn)品中支付行為不一樣??旖葜Ц妒窃陔娚谭?wù)器上發(fā)起,請(qǐng)求渠道進(jìn)行支付;網(wǎng)銀支付則是跳轉(zhuǎn)到銀行支付網(wǎng)關(guān)上進(jìn)行; 而賬戶(hù)支付、虛幣支付,則是在本地進(jìn)行的。

3. 撤銷(xiāo)和退款

有些渠道區(qū)分撤銷(xiāo)和退款,比如銀聯(lián)、農(nóng)行等,撤銷(xiāo)指取消當(dāng)天在渠道側(cè)未結(jié)算的交易; 而退款僅針對(duì)已經(jīng)結(jié)算的交易。有些渠道則不作區(qū)分。

4. 查詢(xún)簽約狀態(tài)

對(duì)于需要簽約的交易,可以通過(guò)這個(gè)接口來(lái)查詢(xún)簽約狀態(tài)。

5. 查詢(xún)訂單狀態(tài)

通過(guò)這個(gè)接口來(lái)查詢(xún)支付清單狀態(tài)以及退款的訂單狀態(tài)。

6. 預(yù)授權(quán)

預(yù)授權(quán)交易用于受理方向持卡人的發(fā)卡方確認(rèn)交易許可。受理方將預(yù)估的消費(fèi)金額作為預(yù)授權(quán)金額,發(fā)送給持卡人的發(fā)卡方。

7. 預(yù)授權(quán)撤銷(xiāo)

對(duì)已成功的預(yù)授權(quán)交易,在結(jié)算前使用預(yù)授權(quán)撤銷(xiāo)交易,通知發(fā)卡方取消付款承諾。預(yù)授權(quán)撤銷(xiāo)交易必須是對(duì)原始預(yù)授權(quán)交易或追加預(yù)授權(quán)交易最終承兌金額的全額撤銷(xiāo)。

8. 預(yù)授權(quán)完成交易

對(duì)已批準(zhǔn)的預(yù)授權(quán)交易,用預(yù)授權(quán)完成做支付結(jié)算。

9. 預(yù)授權(quán)完成撤銷(xiāo)

預(yù)授權(quán)完成撤銷(xiāo)交易必須是對(duì)原始預(yù)授權(quán)完成交易的全額撤銷(xiāo)。預(yù)授權(quán)完成撤銷(xiāo)后的預(yù)授權(quán)仍然有效。

10. 對(duì)賬

通過(guò)FTP或者HTTP方式提供對(duì)賬文件供商戶(hù)側(cè)對(duì)賬。

11. 余額查詢(xún)

查詢(xún)商戶(hù)的交易賬戶(hù)的余額,避免由于余額不足導(dǎo)致交易失敗。 注意,不是客戶(hù)的余額。 當(dāng)然,不是所有的銀行或者第三方支付都提供這個(gè)接口。

業(yè)務(wù)流程

上述操作,除了對(duì)賬、查單外,每個(gè)操作實(shí)現(xiàn)的主流程,一般會(huì)包括參數(shù)校驗(yàn),支付路由,生成訂單,風(fēng)險(xiǎn)評(píng)估,調(diào)用渠道服務(wù),更新訂單和發(fā)送消息這7步,對(duì)于一些比較復(fù)雜的服務(wù),還會(huì)涉及到異步同通知處理的步驟。

Product workflow

1. 執(zhí)行參數(shù)校驗(yàn)

所有的支付操作,都需要對(duì)輸入執(zhí)行參數(shù)校驗(yàn),避免接口受到攻擊。

  • 驗(yàn)證輸入?yún)?shù)中各字段的有效性驗(yàn)證,比如用戶(hù)ID,商戶(hù)ID,價(jià)格,返回地址等參數(shù)。
  • 驗(yàn)證賬戶(hù)狀態(tài)。交易主體、交易對(duì)手等賬戶(hù)的狀態(tài)是處于可交易的狀態(tài)。
  • 驗(yàn)證訂單:如果涉及到預(yù)單,還需要驗(yàn)證訂單號(hào)的有效性,訂單狀態(tài)是未支付。為了避免用戶(hù)緩存某個(gè)URL地址,還需要校驗(yàn)下單時(shí)間和支付時(shí)間是否超過(guò)預(yù)定的間隔。
  • 驗(yàn)證簽名。簽名也是為了防止支付接口被偽造。 一般簽名是使用分發(fā)給商戶(hù)的key來(lái)對(duì)輸入?yún)?shù)拼接成的字符串做MD5 Hash或者RSA加密,然后作為一個(gè)參數(shù)隨其他參數(shù)一起提交到服務(wù)器端。如支付網(wǎng)關(guān)設(shè)計(jì)所介紹,簽名驗(yàn)證也可以在網(wǎng)關(guān)中統(tǒng)一完成。

2. 根據(jù)支付路由尋找合適的支付服務(wù)

根據(jù)用戶(hù)選擇的支付方式確定用來(lái)完成該操作的合適的支付渠道。用戶(hù)指定的支付方式不一定是最終的執(zhí)行支付的渠道。比如用戶(hù)選擇通過(guò)工行信用卡來(lái)執(zhí)行支付,但是我們沒(méi)有實(shí)現(xiàn)和工行的對(duì)接,而是可以通過(guò)第三方支付,比如支付寶、微信支付、易寶支付,或者銀聯(lián)來(lái)完成。那如何選擇合適的支付渠道,就通過(guò)支付路由來(lái)實(shí)現(xiàn)。支付路由會(huì)綜合考慮收費(fèi)、渠道的可用性等因素來(lái)選擇最優(yōu)方案。

3. 評(píng)估交易風(fēng)險(xiǎn)

檢查本次交易是否有風(fēng)險(xiǎn)。風(fēng)控接口返回三種結(jié)果:阻斷交易、增強(qiáng)驗(yàn)證和放行交易。

  1. 阻斷交易,說(shuō)明該交易是高風(fēng)險(xiǎn)的,需要終止,不執(zhí)行第5個(gè)步驟;
  2. 增強(qiáng)驗(yàn)證,說(shuō)明該交易有一定的風(fēng)險(xiǎn),需要確認(rèn)下是不是用戶(hù)本人在操作。這可以通過(guò)發(fā)送短信驗(yàn)證碼或者其他可以驗(yàn)證用戶(hù)身份的方式來(lái)做校驗(yàn),驗(yàn)證通過(guò)后,可以繼續(xù)執(zhí)行該交易。
  3. 放行交易,即本次交易是安全的,可以繼續(xù)往下走。

4. 生成交易訂單

將訂單信息持久化到數(shù)據(jù)庫(kù)中。當(dāng)訪問(wèn)壓力大的時(shí)候,數(shù)據(jù)庫(kù)寫(xiě)入會(huì)成為一個(gè)瓶頸。

5. 調(diào)用支付渠道提供的服務(wù)

所有的支付服務(wù)都需要第三方通道來(lái)完成執(zhí)行。一般銀行渠道的調(diào)用比較簡(jiǎn)單,可以直接返回結(jié)果。一些第三方支付,支付寶,微信支付等,會(huì)通過(guò)異步接口來(lái)告知支付結(jié)果。

6. 更新訂單

對(duì)于同步返回的結(jié)果,需要在主線程中更新訂單的狀態(tài),標(biāo)記是支付成功還是失敗。對(duì)于異步返回的渠道,需要在異步程序中處理。

7. 發(fā)送消息

通過(guò)消息來(lái)通知相關(guān)系統(tǒng)關(guān)于訂單的變更。風(fēng)控,信用BI等,都需要依賴(lài)這數(shù)據(jù)做準(zhǔn)實(shí)時(shí)計(jì)算。

8. 異步通知

如上述流程,其中涉及到調(diào)用遠(yuǎn)程接口,其延遲不可控。如果調(diào)用方一直阻塞等待,很容易超時(shí)。引入異步通知機(jī)制,可以讓調(diào)用方在主線程中盡快返回,通過(guò)異步線程來(lái)得到支付結(jié)果。對(duì)于通過(guò)異步來(lái)獲取支付結(jié)果的渠道接口,也需要對(duì)應(yīng)的在異步通知中將結(jié)果返回給調(diào)用方。 異步通知需要調(diào)用方提供一個(gè)回調(diào)地址,一般以http或者h(yuǎn)ttps的方式。這就有技術(shù)風(fēng)險(xiǎn),如果調(diào)用失敗,還需要重試。而重試不能過(guò)于頻繁,需要逐步拉大每一次重試的時(shí)間間隔。 在異步處理程序中,訂單根據(jù)處理結(jié)果變更狀態(tài)后,也要發(fā)消息通知相關(guān)系統(tǒng)。

以上是關(guān)于支付產(chǎn)品設(shè)計(jì)的主流程。 后續(xù)分享將詳細(xì)介紹每個(gè)支付產(chǎn)品的設(shè)計(jì)。

#專(zhuān)欄作家#

鳳凰牌老熊,微信公眾號(hào):鳳凰牌老熊,人人都是產(chǎn)品經(jīng)理專(zhuān)欄作家,10多年企業(yè)應(yīng)用和互聯(lián)網(wǎng)軟件架構(gòu)設(shè)計(jì)經(jīng)驗(yàn),關(guān)注互聯(lián)網(wǎng)金融和大數(shù)據(jù)領(lǐng)域。

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

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 可以求老師一個(gè)朋友圈席位嗎~~~

    來(lái)自廣東 回復(fù)
  2. 大師

    來(lái)自上海 回復(fù)
  3. 干貨

    回復(fù)
  4. 干貨,干貨,干貨,太專(zhuān)業(yè),向你學(xué)習(xí)

    來(lái)自陜西 回復(fù)
  5. 麻煩請(qǐng)問(wèn),如果是準(zhǔn)實(shí)時(shí)的接口,返回結(jié)果的時(shí)間時(shí)不一定的,前端常規(guī)是如何包裝的?

    來(lái)自浙江 回復(fù)
  6. 干貨

    來(lái)自廣東 回復(fù)
  7. 分析真?zhèn)€支付流程很詳細(xì),把支付的風(fēng)控設(shè)計(jì)再細(xì)致的描述下就更好了!

    來(lái)自上海 回復(fù)
  8. 支付產(chǎn)品模塊是按照支付場(chǎng)景來(lái)為業(yè)務(wù)方提供支付服務(wù)。這個(gè)模塊一般位于支付網(wǎng)關(guān)之后,支付渠道之前。

    不是太理解,望老大賜教

    回復(fù)
  9. 望單線聯(lián)系,請(qǐng)教細(xì)則

    回復(fù)
  10. 支持,干貨?。。?!

    來(lái)自廣東 回復(fù)
  11. 意猶未盡,支持一下

    來(lái)自上海 回復(fù)