支付系統(tǒng)設(shè)計:銀行卡支付(三)

16 評論 75832 瀏覽 410 收藏 15 分鐘
🔗 B端产品经理需要更多地关注客户的商业需求、痛点、预算、决策流程等,而C端产品经理需要更多地关注用户的个人需求

這一期,回到支付系統(tǒng)的核心業(yè)務(wù),即支付。每個電商公司的支付系統(tǒng)都已經(jīng)或多或少的實(shí)現(xiàn)了交易核心功能,可也都是一直在改進(jìn),總是不斷的有新的需求冒出來。所以這一期開始,我們梳理一下:到底有哪些支付方式?每種支付方式都是怎么運(yùn)作的?

支付和交易

說到支付就不得不提交易。這兩個概念在不同公司中是不一樣的。我們的定義是,交易是生成訂單;支付是對訂單進(jìn)行付款。 訂單生成過程我們以后另開話題來說。這一次重點(diǎn)介紹支付。而就支付行為來說,我們碰到的大部分都是單次支付,其次還有轉(zhuǎn)賬和退款。在蘋果推出訂閱支付后,國內(nèi)支付寶等也在陸續(xù)跟進(jìn)。 單次支付是我們用的最多的支付方式了,即一次結(jié)清所有款項(xiàng)。把單次支付走通了,其他支付方式也容易處理。 本期重點(diǎn)介紹單次支付。

銀行卡支付

先說大家比較熟悉的銀行卡支付,它分為線上支付和線下支付兩種形式。線下支付就是通常說的POS收單,這里不介紹這個內(nèi)容。對線上支付,按照卡的類別,分為貸記卡支付,也叫motopay、ePOS,即信用卡支付;和借記卡支付。按照支付形態(tài),又分為認(rèn)證支付、網(wǎng)銀支付、快捷支付幾種形態(tài)。銀行卡網(wǎng)銀支付要求銀行卡必須開通在線支付功能,而快捷支付并不需要開通在線支付功能。主要利用支付驗(yàn)證要素(卡號、密碼、手機(jī)號、CVN2、CVV2等),結(jié)合安全認(rèn)證(例如短信驗(yàn)證碼),讓持卡人完成互聯(lián)網(wǎng)支付。

認(rèn)證支付

指用戶在綁卡時,將卡信息提供給電商。這樣在支付時,用戶無需再輸入這些信息,由電商在服務(wù)器側(cè)保留用戶的賬戶信息,比如身份證號,卡號,手機(jī)號。在用戶支付時,無需再輸入這些內(nèi)容,最多就提供個密碼或者校驗(yàn)碼,就可以完成支付。這基本不會打斷用戶的使用體驗(yàn),所以也是電商喜歡的支付方式。但認(rèn)證支付最讓人詬病的就是安全性。一方面需要向電商暴露個人信息,一旦被竊取,資金就容易被盜走。還有在手機(jī)上執(zhí)行支付,一旦手機(jī)丟失,竊取者就可以輕而易舉的使用或者轉(zhuǎn)移資金。

快捷支付

快捷支付和認(rèn)證支付類似,不同點(diǎn)在于綁卡之后,有些銀行接口會返回token,后續(xù)使用token來作為支付憑證,無需提供卡號信息,這樣電商也不需要本地保留卡號了。目前主要是銀聯(lián)有提供token接口。

網(wǎng)銀支付

相對來說,網(wǎng)銀支付要安全很多。網(wǎng)銀支付是由銀聯(lián)或者銀行提供支付界面,用戶必須在頁面上輸入卡號,密碼等驗(yàn)證信息才可以執(zhí)行支付。大部分銀行還要求用戶使用U盾或者其它安全硬件。但安全和易用永遠(yuǎn)是個矛盾。網(wǎng)銀使用會打斷用戶體驗(yàn),增加用戶使用難度。對使用硬件加密的支付,不可能天天帶著U盤跑。另外網(wǎng)銀主要用在web端,在手機(jī)端,嵌入網(wǎng)銀頁面,還是比較難看的

支付流程

走一個具體的例子看看吧。比如用戶在電商系統(tǒng)中買了200塊錢的東西,然后通過浦發(fā)銀行卡做結(jié)算,用的是快捷支付。這個過程是:

用戶在交易界面上,提交訂單到交易系統(tǒng)中; 交易系統(tǒng)確認(rèn)訂單無誤后,請求支付系統(tǒng)進(jìn)行結(jié)算。這是在交易系統(tǒng)做的,后面工作就進(jìn)入支付系統(tǒng)。

用戶被引導(dǎo)到收銀臺頁面, 讓用戶確認(rèn)交易金額,選擇支付方式,調(diào)用支付系統(tǒng)接口。

支付系統(tǒng)接收到支付請求,驗(yàn)證請求的各個字段是否有問題,確認(rèn)無誤后,調(diào)用支付網(wǎng)關(guān)執(zhí)行支付。

支付網(wǎng)關(guān)請求浦發(fā)銀行的快捷支付接口執(zhí)行支付。

支付網(wǎng)關(guān)接收到支付結(jié)果報文后,對結(jié)果報文做解析,獲取結(jié)果,并將結(jié)果告知交易系統(tǒng)。這可以通過URL或者RPC調(diào)用來實(shí)現(xiàn)。

商城系統(tǒng)收到支付結(jié)果后,開始執(zhí)行后續(xù)操作。如果是支付成功,則開始準(zhǔn)備出庫。這一步在交易系統(tǒng)中處理,這里不做介紹。

網(wǎng)銀支付,和快捷相比,就在第4步,插入一個步驟,將用戶導(dǎo)航到網(wǎng)銀頁面輸入支付信息,后續(xù)步驟是一樣的。在資金流上也是相同的。 而在第五步獲取返回結(jié)果上,一般銀行就直接同步返回,銀聯(lián)是分為同步和異步返回。同步告知操作成功或者失敗,異步告知扣款成功或者失敗。同步操作和異步操作都需要調(diào)用方提供一個回調(diào)的URL地址,銀聯(lián)會將參數(shù)附加在這個地址上。通過解析這些參數(shù)可以得到執(zhí)行結(jié)果。異步操作一般有2-3秒的延遲,取決于網(wǎng)絡(luò),以及該交易處理的復(fù)雜度。

資金流

上一節(jié)說的是支付的信息流,那資金流應(yīng)該是怎么走的? 在第三步,會觸發(fā)資金流。資金從用戶個人賬戶上轉(zhuǎn)移到電商公司的賬戶。當(dāng)然,銀行也不是活雷鋒,這一筆交易是要收手續(xù)費(fèi)的。資金是實(shí)時到賬的,手續(xù)費(fèi)一般是按月結(jié)算。有按交易筆數(shù)計費(fèi)的,但大部分還是按照交易金額來收費(fèi)。

同行快捷支付是比較簡單的場景,讓我們來逐步增加難度。如果支付系統(tǒng)沒有對接浦發(fā)銀行,那對浦發(fā)卡,就得走其它支付方式:銀聯(lián)或者第三方支付。

先說銀聯(lián)快捷。銀聯(lián)提供的多種接入方式,常說的快捷支付,在銀聯(lián)文檔中叫商戶側(cè)開通token接口。通過這個接口,可以實(shí)現(xiàn)同行和跨行資金結(jié)算。不管收款行是浦發(fā)還是其它行,都可以完成結(jié)算。對本地和用戶來說,體驗(yàn)是一樣的。而在銀聯(lián)側(cè),后臺資金流處理卻不一樣。了解這個資金流,有助于在異常情況下,了解資金到底跑到哪里了。

如果收款行也是浦發(fā)銀行,銀聯(lián)發(fā)報文給浦發(fā),浦發(fā)使用內(nèi)部系統(tǒng)完成兩個賬戶間的轉(zhuǎn)帳,即時完成。

如果收款行是他行,比如工行。銀聯(lián)發(fā)指令給浦發(fā)和工行,分別完成各自賬戶上資金余額的增減,對個人和電商來說,這筆資金算是落地了。但實(shí)際資金流并不是立即發(fā)生。銀聯(lián)會在半夜做清結(jié)算后處理這筆資金。這個過程就是金融機(jī)構(gòu)之間的清結(jié)算了,一般不需要關(guān)注。

如果使用的是第三方支付,對用戶來說,處理的流程和銀聯(lián)一樣。但資金流會不一樣。 第三方支付在浦發(fā)和工行一般都會有落地的托管資金。 發(fā)生交易后,一般來說不會產(chǎn)生跨行資金流動。用戶在浦發(fā)行的錢會被結(jié)算到第三方支付在浦發(fā)行的托管賬戶,而在工行的錢,會由第三方支付在工行的賬戶打到客戶賬戶上。 這就降低了跨行資金流動成本。

目前國內(nèi)主要銀行都提供快捷和直聯(lián)的接口。對電商來說,要對接哪些銀行是個需要考慮的問題。怎么對接銀行,渠道和第三方支付。

銀聯(lián)Token支付

一般來說,大部分銀行都提供直聯(lián)和網(wǎng)銀接口,但不需要直接對接所有銀行。銀聯(lián)和第三方支付也提供直聯(lián)接口,可以直接對接國內(nèi)主要銀行。也不是所有銀行都被銀聯(lián)支持,這和銀聯(lián)簽約的接口有關(guān),需要在對接時咨詢銀聯(lián)。從我們使用情況看, 浦發(fā)借記卡、郵儲銀行卡是不支持的。 另外 交行、平安(含原深發(fā))、上海銀行、浦發(fā)、北京銀行,上述銀行卡需通過 這個地址 開通銀聯(lián)在線支付業(yè)務(wù)。

對接銀行

大部分銀行提供的銀行卡支付接口,借記卡支付和貸記卡支付是不一樣的。但也有幾個好心的銀行,可以用一套接口同時開通借記卡和貸記卡。點(diǎn)名贊一下這些銀行: 宇宙第一大行工商銀行和建設(shè)銀行。其他同學(xué)對接中如果也發(fā)現(xiàn)借記卡和貸記卡用一個接口的,也請及時告知。 作為國內(nèi)最保守的軟件團(tuán)隊(duì),和銀行對接時務(wù)必做好足夠的準(zhǔn)備。在商務(wù)談判完成、拿到銀行的接口文檔后,需要考慮兩個問題:專線問題、加密問題。

專線問題

首先是專線問題。 大部分銀行對接是需要專線的。 與銀行溝通的時候,注意收集如下信息:

  • 專線類型: MSTP類型或者SDH類型。
  • 專線接入點(diǎn):目前國內(nèi)主要是聯(lián)通、電信。
  • 封裝類型: HDLC或者PPP
  • 專線代寬:默認(rèn)是2M

前置機(jī)IP,這個需要在銀行側(cè)和電商側(cè)進(jìn)行配置。 專線其實(shí)是在銀行和電商之間建立一個局域網(wǎng),需要雙方分配通訊IP。 其實(shí)這兩組IP都是NAT后的IP,銀行分配給我們的是電商真實(shí)的前置機(jī)IP經(jīng)過最外端的網(wǎng)絡(luò)防火墻轉(zhuǎn)換后的IP段,后者也是對方的真實(shí)前置機(jī)IP經(jīng)過轉(zhuǎn)換后的IP段。 出于安全考慮,雙方都不會將真實(shí)IP暴露出去,所以要NAT。

接入地址:即電商這邊機(jī)房的地址。

這些專業(yè)名詞,可以自己檢索,太專業(yè)了,其實(shí)我也不懂。從可靠性角度考慮,一般建議從聯(lián)通、電信各拉一條線路出來。一旦有一個線路出問題了,也不會導(dǎo)致所有交易被終止了。不需要專線的銀行接口有:浦發(fā)、工行、交行信用卡等。 需要專線的有中行、農(nóng)行、建行等。一般專線需要1個月左右的時間,包括銀行側(cè)的申請、施工時間。

加密問題

其次是加密問題。部分銀行,如中行,前置要求使用加密機(jī)。此處加密機(jī)的常用功能有三方面:

  • MAC加密(完整性);
  • 支付會話\密碼加密(安全性);
  • 密鑰交換加密(防截?。?/li>

對開發(fā)來說,加密機(jī)的主要作用,是讓黑客都無法從內(nèi)存中看到密碼。 不是做廣告,國內(nèi)對接銀行一般就用江南天安的加密機(jī)了

對接銀聯(lián)

對接銀聯(lián)比對接銀行簡單, 不需要專線,不需要加密機(jī)。 不過需要獲取ADSS認(rèn)證。 銀聯(lián)最近在推Token接口,有兩套接口,一套是銀聯(lián)側(cè)開通,一套是商戶側(cè)開通。前者類似網(wǎng)銀支付,后者類似快捷支付。 務(wù)必要求接入后者接口啊?;旧献x完接口文檔就知道怎么寫代碼了。

接下來,這里將分別介紹如何對接第三方支付、應(yīng)用內(nèi)支付等內(nèi)容。敬請關(guān)注。

相關(guān)閱讀

支付系統(tǒng)設(shè)計:支付系統(tǒng)的賬戶模型(一)

支付系統(tǒng)設(shè)計:對賬處理(二)

 

作者:鳳凰牌老熊,程序員 & 架構(gòu)師,來自中科大的本科,研究生在軟件所學(xué)習(xí)。先后在中科輔龍、三星(中國)研究院和國內(nèi)一些大型的互聯(lián)網(wǎng)公司呆過。在中科輔龍公司負(fù)責(zé)電子政務(wù)內(nèi)容管理系統(tǒng)建設(shè),負(fù)責(zé)研發(fā)龍馭系列產(chǎn)品的研發(fā),這款產(chǎn)品最終實(shí)施到2000多個電子政務(wù)網(wǎng)站上,期間也參與了一些支付反洗錢以及支付系統(tǒng)的建設(shè)。之后在三星中國研究院,負(fù)責(zé)自然語言處理(NLP)以及智能家居相關(guān)項(xiàng)目。智能家居項(xiàng)目在2014CES消費(fèi)電子展上作為三星重點(diǎn)項(xiàng)目推介。2014年開始加入愛奇藝公司,負(fù)責(zé)數(shù)據(jù)倉庫和支付系統(tǒng)的建設(shè)。

本文由@鳳凰牌老熊(微信公眾號:shamphone) 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理 。未經(jīng)許可,禁止轉(zhuǎn)載。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 2c問題不大,2b未夠。企業(yè)級支付的場景更復(fù)雜,托管、大額小額、賬期、票據(jù)、聚合、直付、金融代收付。。。單一個對賬能搞死人。

    回復(fù)
  2. 作者的寫的文章很有深度!~
    一看就是有研發(fā) 和 產(chǎn)品 + 其他領(lǐng)域的 老司機(jī);
    順便問下:支付流程啥的 第一步、第二步 能否標(biāo)出來,或者有個時序圖啥的。??粗X袋疼。。。

    來自上海 回復(fù)
  3. 信息量好大受教了,樓主辛苦

    回復(fù)
  4. 如果使用的是第三方支付,對用戶來說,處理的流程和銀聯(lián)一樣。但資金流會不一樣。 第三方支付在浦發(fā)和工行一般都會有落地的托管資金。 發(fā)生交易后,一般來說不會產(chǎn)生跨行資金流動。用戶在浦發(fā)行的錢會被結(jié)算到第三方支付在浦發(fā)行的托管賬戶,而在工行的錢,會由第三方支付在工行的賬戶打到客戶賬戶上。 這就降低了跨行資金流動成本。
    —— 這個有點(diǎn)迷惑,如果第三方在浦發(fā)跟工行都有資金賬戶,那在使用第三方支付的時候,根據(jù)支付銀行選擇相應(yīng)的收款行做資金結(jié)算?只有這樣才不會有跨行資金流動,那這樣浦發(fā)支付的資金到浦發(fā)托管賬戶很好理解,為什么最后還會有一步,工行的錢打到客戶賬戶,不是已經(jīng)選用浦發(fā)做結(jié)算銀行了?

    來自廣東 回復(fù)
    1. 我也這段沒看懂

      來自上海 回復(fù)
    2. 如果我沒看錯的話,應(yīng)該是當(dāng)用戶的付款賬戶是“浦發(fā)”,收款賬戶是“工行”時。當(dāng)使用的是第三方支付渠道時,該第三方支付對接了浦發(fā)和工行,在這兩個地方都有資金賬戶,當(dāng)用戶發(fā)起付款或收款操作時,對于第三方來說資金是直接在不同行的資金賬戶中先流轉(zhuǎn),而后再跟不同行進(jìn)行結(jié)算平賬。【這里的用戶不一定是個人用戶可能是某平臺,平臺的付款和收款賬戶不一致的情況下,發(fā)生的資金流轉(zhuǎn)就會不一樣?!?/p>

      來自浙江 回復(fù)
    3. 一手入金,一手墊付,支付機(jī)構(gòu)內(nèi)部做賬

      回復(fù)
    4. 因?yàn)榘凑毡尘埃脩舻拈_戶行(發(fā)卡行)是浦發(fā)銀行,商戶的開戶行是工行,而第三方支付機(jī)構(gòu)在浦發(fā)銀行和工行都開了戶。

      以下是資金流:
      1. 用戶在浦發(fā)銀行開通的賬戶 -> 第三方支付機(jī)構(gòu)在浦發(fā)銀行開通的托管資金賬戶
      2. 第三方支付機(jī)構(gòu)在工行開通的托管資金賬戶 -> 商家在工行開通的資金賬戶
      因此,免去了從浦發(fā)銀行到工行的跨行資金流動。

      來自廣東 回復(fù)
  5. 資金是實(shí)時到賬的,手續(xù)費(fèi)一般是按月結(jié)算?—資金是實(shí)時到達(dá)商家賬戶的么?從清結(jié)算那幾篇文章看,中間應(yīng)該還有個清結(jié)算的過程,一般不是T+1結(jié)算的么?

    來自廣東 回復(fù)
    1. 這里說的資金到賬是說的持卡人賬戶的錢是實(shí)時的,商戶賬戶的收入是等夜里等銀聯(lián)清算完第二天才入賬,銀聯(lián)要扣除手續(xù)費(fèi),是月結(jié)。我是這么理解的。

      來自北京 回復(fù)
  6. 您好,我能加下你微信嗎?,我想更好的向您學(xué)習(xí)。我微信號是chenjie85691699

    來自上海 回復(fù)
  7. 加油

    來自上海 回復(fù)
  8. 不錯,學(xué)習(xí)了

    來自上海 回復(fù)
  9. 熊哥一看就是老司機(jī)。

    來自廣東 回復(fù)
  10. LZ能否談下第三方支付,感覺接觸過很多創(chuàng)業(yè)公司,剛開始的時候根本用不上這么多支付路由,前期流水也不高,量也不大。對接銀行的支付系統(tǒng)的話,還要專人去跑,流程復(fù)雜。相反現(xiàn)在第三方支付做的比較成熟,支付場景和安全性都有提高,部署更快。

    來自廣東 回復(fù)
    1. 近期會出一個,謝謝關(guān)注。

      來自北京 回復(fù)
专题
14947人已学习12篇文章
本专题的文章分享了SaaS平台产品架构设计。
专题
53297人已学习15篇文章
无论是个人运营体系还是公司运营体系的构建,你都能在这里找到。
专题
14135人已学习12篇文章
4P指产品(Product)、定价(Price)、渠道(Place)、宣传(Promotion)。本专题的文章分享了解读4P营销理论。
专题
16744人已学习12篇文章
供应链管理系统是最早期面向企业的软件解决方案之一,供应商管理又是供应链链条中的上游部分。本专题的文章分享了供应商管理设计指南以及供应链的基础知识。
专题
31200人已学习11篇文章
来看看别人家是怎么做产品优化的。
专题
39899人已学习11篇文章
你说你会SEO/SEM,我信!但是肯定做的不够好,不服看看别人的。