支付系統(tǒng)設(shè)計(jì):綁卡、簽約和身份驗(yàn)證(四)

20 評(píng)論 72459 瀏覽 381 收藏 15 分鐘

在上一篇 支付系統(tǒng)之銀行卡支付中,挖了個(gè)坑,就是關(guān)于綁卡的坑。 在用戶使用銀行卡做支付之前,首先需要完成綁卡的操作。怎么實(shí)現(xiàn)綁卡,怎么驗(yàn)證用戶綁的是自己的而不是隔壁老王的卡,這就是本期的重點(diǎn)。

為什么要求用戶綁卡?這和快捷支付有關(guān)。參見上一篇文章的分析,綁卡是將用戶卡信息提供給電商,以后電商就用這個(gè)信息去銀行完成支付。綁卡實(shí)際上是一個(gè)授權(quán),讓用戶允許商家自動(dòng)從他的賬戶上扣除資金。所以綁卡也叫簽約,用戶和銀行,商家的三方簽訂的支付合約。 但我們知道,綁卡對(duì)用戶和商戶來(lái)說(shuō)都存在巨大風(fēng)險(xiǎn)。

如果說(shuō)用戶綁卡是圖省事,那商戶為什么要做這個(gè)事?首先當(dāng)然是提升用戶體驗(yàn)了,讓用戶花錢更容易。其次,提升支付成功率。使用網(wǎng)銀支付成功率在20%左右,銀聯(lián)直聯(lián)成功率一般在50%左右,銀行卡直聯(lián)可以提升到70%左右。這是相當(dāng)可觀的數(shù)據(jù)。所以,當(dāng)你看到綁卡送洗衣粉之類做法時(shí),不需要擔(dān)心商家會(huì)不會(huì)賠本。

怎么綁卡?我們知道對(duì)接銀行有兩種途徑,直接對(duì)接銀行接口和通過銀聯(lián)來(lái)間接對(duì)接。這兩種情況下綁卡處理也不同。

綁卡場(chǎng)景

直觀的,電商網(wǎng)站會(huì)在用戶后臺(tái)提供一個(gè)綁卡的入口,讓用戶直接綁卡。以支付寶綁卡流程為例,我們可以體驗(yàn)下:

alipay-1

這里有如下要點(diǎn):

  • 只能綁自己的卡,這主要從安全角度考慮。
  • 需要用戶在銀行側(cè)預(yù)留的手機(jī)號(hào)進(jìn)行短信驗(yàn)證。但不是所有銀行都需要。這個(gè)時(shí)候,為了統(tǒng)一處理,可以考慮自己發(fā)驗(yàn)證短信。

對(duì)這個(gè)入口不要指望太多,更多的用戶是在支付中綁卡。也就是提交訂單后,發(fā)現(xiàn)沒有銀行卡了,就開始綁卡。 和純綁卡流程不同的是,最后一步,綁卡成功后,一般都同時(shí)完成支付。有些渠道會(huì)提供綁卡并支付的接口,減少交互次數(shù)。

綁卡流程

先介紹比較簡(jiǎn)單的銀聯(lián)直聯(lián)綁卡。為了保證卡的安全,綁卡有這些前置需求:

  1. 用戶必須已經(jīng)綁定了手機(jī)號(hào)。該手機(jī)號(hào)用于修改支付密碼;
  2. 用戶需設(shè)置了支付密碼。支付密碼不同于登錄密碼。

針對(duì)用戶不同狀態(tài),綁卡流程上有區(qū)別。當(dāng)然,綁卡是安全操作,要求用戶必須登錄到系統(tǒng)中。為了避免和服務(wù)器端的交互被劫持,所有操作必須在安全鏈接中進(jìn)行,即使用https。當(dāng)用戶開始綁卡時(shí),執(zhí)行如下流程:

  1. 檢查用戶是否有手機(jī)號(hào)。沒有則進(jìn)入設(shè)置手機(jī)號(hào)流程。
  2. 檢查用戶是否設(shè)置支付密碼。如果已經(jīng)設(shè)置,則需要用戶輸入密碼。確認(rèn)后開始綁卡。否則,也是先進(jìn)去綁卡后設(shè)置密碼。
  3. 用戶輸入卡號(hào),系統(tǒng)根據(jù)卡號(hào)判斷卡的發(fā)卡行,并顯示給用戶。有些實(shí)現(xiàn),如微信支付,會(huì)提供掃卡識(shí)碼功能。
  4. 用戶輸入銀行預(yù)留手機(jī)。對(duì)于沒有綁過卡的用戶,需要用戶提供真實(shí)姓名和身份證號(hào)。對(duì)于信用卡,還需要輸入cv碼和有效期。這一步,卡的信息都收集全了。
  5. 調(diào)用銀行綁卡驗(yàn)證接口進(jìn)行綁卡。這里有一個(gè)四要素驗(yàn)證的概念。由于國(guó)內(nèi)要求實(shí)名制,所有銀行卡都是實(shí)名辦理的,所以銀行可以驗(yàn)證姓名,身份證號(hào),銀行卡號(hào)和手機(jī)號(hào)是不是一致的,如果沒問題,則會(huì)發(fā)短信到手機(jī)上。
  6. 用戶輸入短信驗(yàn)證碼并確認(rèn)綁卡,服務(wù)器端將用戶實(shí)名信息以及短信驗(yàn)證碼組合形成報(bào)文,發(fā)送給銀行,執(zhí)行簽約操作。銀行側(cè)簽約成功后,返回簽約號(hào)給商戶。

卡bin

這里有個(gè)問題,如何根據(jù)卡號(hào)判斷發(fā)卡行?這就需要卡bin。 BIN號(hào)即銀行標(biāo)識(shí)代碼的英文縮寫。BIN由6位數(shù)字表示,出現(xiàn)在卡號(hào)的前6位,由國(guó)際標(biāo)準(zhǔn)化組織(ISO)分配給各從事跨行轉(zhuǎn)接交換的銀行卡組織。銀行卡的卡號(hào)是標(biāo)識(shí)發(fā)卡機(jī)構(gòu)和持卡人信息的號(hào)碼,由以下三部分組成:發(fā)卡行標(biāo)識(shí)代碼(BIN號(hào))、發(fā)卡行自定義位、校驗(yàn)碼。

目前,國(guó)內(nèi)的 銀行卡 按照數(shù)字打頭的不同分別歸屬于不同的銀行卡組織,其中以BIN號(hào)“4”字打頭的銀行卡屬于VISA卡組織,以“5”字打頭的屬于MASTERCARD卡組織,以“9”字和“62”、“60”打頭的屬于中國(guó)銀聯(lián),而“62”、“60”打頭的銀聯(lián)卡是符合國(guó)際標(biāo)準(zhǔn)的銀聯(lián) 標(biāo)準(zhǔn)卡 ,可以在國(guó)外使用,這也是中國(guó)銀聯(lián)近幾年來(lái)主要發(fā)行的銀行卡片。 大部分銀行卡號(hào)前6位即可確定發(fā)卡行和卡類型,但也有非標(biāo)卡需要6-10位才可以判斷出來(lái)。需要維護(hù)一個(gè)卡bin庫(kù)。附件是一個(gè)比較完整的卡bin庫(kù), csv格式的。

短信和身份驗(yàn)證

一般綁卡操作第五步需要銀行下發(fā)短信驗(yàn)證碼。 短信驗(yàn)證的接口,不同銀行還不一樣。有些銀行是短信和身份驗(yàn)證一起做了;有些銀行是可以配置身份驗(yàn)證是否同時(shí)發(fā)短信。還有些比較奇葩的機(jī)構(gòu),比如某聯(lián),接口中讓你傳身份信息,但實(shí)際上沒傳也是可以的,也不驗(yàn)證身份信息到底對(duì)不對(duì)。這在對(duì)接渠道時(shí)需要特別注意。

此類接口一般包含如下內(nèi)容:

  • 版本號(hào):當(dāng)前接口的版本號(hào);
  • 編碼方式: 默認(rèn)都是UTF-8,指?jìng)鬏數(shù)膬?nèi)容的編碼方式;
  • 簽名和簽名方法: 生成報(bào)文的簽名。 不是所有的字段都需要放到簽名中,文檔中會(huì)說(shuō)明哪些字段需要簽名;
  • 簽名算法:生成簽名的算法,RSA, RSA128, MD5等。
  • 商戶代碼:在渠道側(cè)注冊(cè)的商戶號(hào)。
  • 商戶訂單號(hào):即發(fā)送給渠道的訂單號(hào);
  • 發(fā)送時(shí)間:該請(qǐng)求送出的時(shí)間。
  • 賬號(hào)和賬號(hào)類型: 銀行卡、存折、IC卡等支持的賬號(hào)類型以及對(duì)應(yīng)的賬號(hào);
  • 卡的加密信息:如信用卡的CVN2,有效期等。
  • 開戶行信息:開戶行所在地以及名稱;大部分是不需要的。
  • 身份證件類型和身份證號(hào): 可以用于實(shí)名驗(yàn)證的證件,指 身份證、軍官證、護(hù)照、回鄉(xiāng)證、臺(tái)胞證、警官證、士兵證等。不同銀行可以支持的證件類型不一樣,這也不是問題。大部分就是身份證了。
  • 姓名:真實(shí)姓名,必須和身份證一致;
  • 手機(jī)號(hào):在所在銀行注冊(cè)的手機(jī)號(hào)。

系統(tǒng)會(huì)返回上述數(shù)據(jù)的驗(yàn)證結(jié)果。如果驗(yàn)證通過,則會(huì)發(fā)短信。但這不是所有的渠道都是這樣。哪些字段會(huì)參與驗(yàn)證、需不需要發(fā)短信,需要注意看接口文檔。

綁卡接口

綁卡接口和發(fā)短信接口類似,還需要將用戶的卡號(hào),身份證等信息傳遞過去。在綁卡成功后,會(huì)返回一個(gè)簽約號(hào)。這個(gè)簽約號(hào)是后續(xù)調(diào)用支付,解約等接口所必須的。 這里有個(gè)問題,已經(jīng)綁卡的用戶,調(diào)用綁卡簽約接口再綁一次,會(huì)出現(xiàn)什么情況?這個(gè)和銀行實(shí)現(xiàn)有關(guān)。 大部分銀行,如農(nóng)業(yè)、浦發(fā)、建行等,對(duì)綁卡簽約接口調(diào)用,會(huì)首先驗(yàn)證身份信息,如果驗(yàn)證不通過,則不執(zhí)行后續(xù)操作。驗(yàn)證通過后,再檢查這個(gè)卡在該商戶下是否已經(jīng)綁過了, 如果沒有綁過,則執(zhí)行綁卡,否則會(huì)提示卡已經(jīng)綁定過了,不能重復(fù)簽約。 但工行的實(shí)現(xiàn)不一樣,他是首先驗(yàn)證這個(gè)卡是不是已經(jīng)綁過了,如果已經(jīng)綁卡,則不繼續(xù)驗(yàn)證身份信息。 總之,銀行都不支持重復(fù)綁卡。

銀聯(lián)綁卡

銀聯(lián)直聯(lián)綁卡和銀行綁卡類似,但是得注意驗(yàn)證接口,僅驗(yàn)證卡號(hào)和姓名,不驗(yàn)證身份證號(hào)和手機(jī)號(hào)。這導(dǎo)致第5步無(wú)法正常進(jìn)行。銀聯(lián)只有到第六步執(zhí)行綁卡時(shí)才做身份驗(yàn)證。 所以在處理上,還需要做一些調(diào)整,來(lái)確保和銀行的流程的一致。 一種處理方法是,對(duì)銀聯(lián),在第五步就開始調(diào)用銀聯(lián)接口執(zhí)行綁卡操作,但是在本地標(biāo)記為預(yù)綁卡狀態(tài);商戶側(cè)發(fā)送短信驗(yàn)證碼,驗(yàn)證通過后,才將狀態(tài)設(shè)置為綁卡成功。

銀聯(lián)網(wǎng)銀綁卡處理起來(lái)比較麻煩。用戶在電商頁(yè)面上輸入卡號(hào),然后被導(dǎo)航到銀聯(lián)頁(yè)面上去完成綁卡操作,成功后,銀聯(lián)返回一個(gè)token作為簽約號(hào),用于支持后續(xù)操作。這問題就來(lái)了,用戶可以在銀聯(lián)頁(yè)面上綁定一個(gè)別人的卡,而電商側(cè)是無(wú)法知道這個(gè)卡的情況的。所以這種方式盡量不要用。

實(shí)名認(rèn)證

綁卡操作有個(gè)不錯(cuò)的副產(chǎn)品,就是實(shí)名認(rèn)證。常說(shuō)的二要素,三要素,四要素認(rèn)證,可以通過這個(gè)操作完成。 二要素指姓名和身份證號(hào),三要素加上銀行卡號(hào),四要素則加上手機(jī)號(hào)??雌饋?lái),似乎銀行都應(yīng)該支持四要素驗(yàn)證,但大部分銀行接口僅支持三要素,畢竟手機(jī)號(hào)還是非常容易變。 當(dāng)然,實(shí)名認(rèn)證,也就是二要素認(rèn)證,是應(yīng)用最多的認(rèn)證了。國(guó)內(nèi)唯一的庫(kù)是在公安部這,由NCIIC負(fù)責(zé)對(duì)外提供接口??梢蕴峁┤缦鹿δ埽?/p>

  • 簡(jiǎn)項(xiàng)核查:返回“一致”“不一致”“庫(kù)中無(wú)此號(hào)”
  • 返照核查:返回“一致+網(wǎng)紋照片”“不一致”“庫(kù)中無(wú)此號(hào)”
  • 人像核查:返回“同一人”“不同人”“庫(kù)中無(wú)此號(hào)”

官方接口收費(fèi)是 5元/條。 市面上主要的第三方服務(wù)提供商有國(guó)政通(簡(jiǎn)項(xiàng)、返照)、諾證通(簡(jiǎn)項(xiàng))、IDface(三接口)等,收費(fèi)簡(jiǎn)項(xiàng)核查:0.5~2.0元、返照核查為0.8~2.1元、 人像核查2.0~8.0元不等。一般都和訪問量有關(guān),量大從優(yōu)。

當(dāng)然,這里也要注意,涉密人員是沒法查到相關(guān)信息的。 性能上, XX通一般在200ms內(nèi)即可返回結(jié)果,普通商用應(yīng)該是沒問題的。 有些公司還會(huì)額外提供四要素接口,以XX通為例,它號(hào)稱支持大部分銀行卡的四要素認(rèn)證。但是實(shí)現(xiàn)上有點(diǎn)兒懵,居然是實(shí)時(shí)請(qǐng)求銀行的接口,這就導(dǎo)致接口延遲非常高,1秒以上的占大部分,甚至10秒以上的都不少見,基本無(wú)法商用。這種情況下,還不如直接上銀聯(lián)。

相關(guān)閱讀

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

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

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

 

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

本文由@鳳凰牌老熊(微信公眾號(hào):shamphone) 原創(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è)實(shí)名認(rèn)證是按條收費(fèi)的,那怎么防止別人惡意刷次數(shù)造成成本增加呢?

    來(lái)自浙江 回復(fù)
    1. 設(shè)置驗(yàn)證的間隔時(shí)間是一種方法

      回復(fù)
  2. 商戶端

    回復(fù)
  3. 贊~~不過分享的Bin庫(kù)打開亂碼了呢,能否重新分享一下呢~感謝~

    來(lái)自北京 回復(fù)
  4. 大拿 ??

    來(lái)自北京 回復(fù)
  5. 熊老師 感覺內(nèi)容很好但是很多地方寫的度不太明白,主要表現(xiàn)在 1.綁卡的分類 沒看出來(lái)怎么分的 所以讀完了還是沒明白 到底有幾種綁卡 ,2. 每種綁卡的過程不是很清楚,哪些是發(fā)生在客戶側(cè)的,哪些是發(fā)生在商戶側(cè)的,哪些是發(fā)生在銀行側(cè)的等,沒有寫清楚,所以整個(gè)過程讀起來(lái)還是不清楚,謝謝

    來(lái)自上海 回復(fù)
    1. 參看http://blog.lixf.cn/

      來(lái)自北京 回復(fù)
    2. 看到目錄之后 我震驚啦 ,厲害了熊哥

      來(lái)自上海 回復(fù)
    3. 非常感謝您的分享。

      來(lái)自浙江 回復(fù)
    4. 大佬好,這個(gè)鏈接打不開是怎么回事啊qaq

      來(lái)自北京 回復(fù)
  6. 受益匪淺,感謝~請(qǐng)問:使用網(wǎng)銀支付成功率在20%左右,銀聯(lián)直聯(lián)成功率一般在50%左右,銀行卡直聯(lián)可以提升到70%左右。這數(shù)據(jù)指的是用戶支付的成功率么?為何成功率會(huì)那么低?

    來(lái)自湖南 回復(fù)
    1. 從創(chuàng)建訂單開始算,成功率一般不高。當(dāng)然,這和行業(yè)有關(guān)。

      來(lái)自北京 回復(fù)
  7. 鳳凰熊老師你好,請(qǐng)問綁卡只能支持銀聯(lián)或者銀行直連嗎,可以走其他的第三方支付公司綁卡嗎?通常用戶綁卡后的支付行為是屬于認(rèn)證支付還是快捷支付呢?

    回復(fù)
    1. 可以通過第三方支付公司綁卡。 綁卡后,一般是走快捷支付

      來(lái)自北京 回復(fù)
  8. 好專業(yè),大神不打算收徒弟么? ?? 雖然不太明白,還是堅(jiān)持看完這一個(gè)系列的,感覺很有幫助,理清了一些思路

    來(lái)自北京 回復(fù)
  9. 剛好在做支付,卡bin的“附件”打不開啊

    回復(fù)
    1. 是不是dns有問題?我這可以打開。

      來(lái)自北京 回復(fù)
    2. 卡bin的“附件”打開是亂碼呢

      來(lái)自四川 回復(fù)
    3. 我這兒下載下來(lái)也是亂碼

      來(lái)自北京 回復(fù)
    4. 我下載了也是亂碼

      來(lái)自廣東 回復(fù)