轉(zhuǎn)載:http://www.woshipm.com/pd/478366.html
在上一篇支付系統(tǒng)之銀行卡支付中缠导,挖了個坑,就是關(guān)于綁卡的坑溉痢。 在用戶使用銀行卡做支付之前僻造,首先需要完成綁卡的操作。怎么實現(xiàn)綁卡孩饼,怎么驗證用戶綁的是自己的而不是隔壁老王的卡髓削,這就是本期的重點。
為什么要求用戶綁卡镀娶?這和快捷支付有關(guān)立膛。參見上一篇文章的分析,綁卡是將用戶卡信息提供給電商梯码,以后電商就用這個信息去銀行完成支付宝泵。綁卡實際上是一個授權(quán),讓用戶允許商家自動從他的賬戶上扣除資金轩娶。所以綁卡也叫簽約儿奶,用戶和銀行,商家的三方簽訂的支付合約鳄抒。 但我們知道闯捎,綁卡對用戶和商戶來說都存在巨大風(fēng)險。
如果說用戶綁卡是圖省事许溅,那商戶為什么要做這個事瓤鼻?首先當(dāng)然是提升用戶體驗了,讓用戶花錢更容易贤重。其次茬祷,提升支付成功率。使用網(wǎng)銀支付成功率在20%左右并蝗,銀聯(lián)直聯(lián)成功率一般在50%左右牲迫,銀行卡直聯(lián)可以提升到70%左右耐朴。這是相當(dāng)可觀的數(shù)據(jù)。所以盹憎,當(dāng)你看到綁卡送洗衣粉之類做法時筛峭,不需要擔(dān)心商家會不會賠本。
怎么綁卡陪每?我們知道對接銀行有兩種途徑影晓,直接對接銀行接口和通過銀聯(lián)來間接對接。這兩種情況下綁卡處理也不同檩禾。
綁卡場景
直觀的挂签,電商網(wǎng)站會在用戶后臺提供一個綁卡的入口,讓用戶直接綁卡盼产。以支付寶綁卡流程為例饵婆,我們可以體驗下:
這里有如下要點:
只能綁自己的卡,這主要從安全角度考慮戏售。
需要用戶在銀行側(cè)預(yù)留的手機號進行短信驗證侨核。但不是所有銀行都需要。這個時候灌灾,為了統(tǒng)一處理搓译,可以考慮自己發(fā)驗證短信。
對這個入口不要指望太多锋喜,更多的用戶是在支付中綁卡些己。也就是提交訂單后,發(fā)現(xiàn)沒有銀行卡了嘿般,就開始綁卡段标。 和純綁卡流程不同的是,最后一步炉奴,綁卡成功后逼庞,一般都同時完成支付。有些渠道會提供綁卡并支付的接口盆佣,減少交互次數(shù)往堡。
綁卡流程
先介紹比較簡單的銀聯(lián)直聯(lián)綁卡械荷。為了保證卡的安全共耍,綁卡有這些前置需求:
用戶必須已經(jīng)綁定了手機號。該手機號用于修改支付密碼吨瞎;
用戶需設(shè)置了支付密碼痹兜。支付密碼不同于登錄密碼。
針對用戶不同狀態(tài)颤诀,綁卡流程上有區(qū)別字旭。當(dāng)然对湃,綁卡是安全操作,要求用戶必須登錄到系統(tǒng)中遗淳。為了避免和服務(wù)器端的交互被劫持拍柒,所有操作必須在安全鏈接中進行,即使用https屈暗。當(dāng)用戶開始綁卡時拆讯,執(zhí)行如下流程:
檢查用戶是否有手機號。沒有則進入設(shè)置手機號流程养叛。
檢查用戶是否設(shè)置支付密碼种呐。如果已經(jīng)設(shè)置,則需要用戶輸入密碼弃甥。確認后開始綁卡爽室。否則,也是先進去綁卡后設(shè)置密碼淆攻。
用戶輸入卡號阔墩,系統(tǒng)根據(jù)卡號判斷卡的發(fā)卡行,并顯示給用戶卜录。有些實現(xiàn)戈擒,如微信支付,會提供掃卡識碼功能艰毒。
用戶輸入銀行預(yù)留手機筐高。對于沒有綁過卡的用戶,需要用戶提供真實姓名和身份證號丑瞧。對于信用卡柑土,還需要輸入cv碼和有效期。這一步绊汹,卡的信息都收集全了稽屏。
調(diào)用銀行綁卡驗證接口進行綁卡。這里有一個四要素驗證的概念西乖。由于國內(nèi)要求實名制狐榔,所有銀行卡都是實名辦理的,所以銀行可以驗證姓名获雕,身份證號薄腻,銀行卡號和手機號是不是一致的,如果沒問題届案,則會發(fā)短信到手機上庵楷。
用戶輸入短信驗證碼并確認綁卡,服務(wù)器端將用戶實名信息以及短信驗證碼組合形成報文,發(fā)送給銀行尽纽,執(zhí)行簽約操作咐蚯。銀行側(cè)簽約成功后,返回簽約號給商戶弄贿。
卡bin
這里有個問題春锋,如何根據(jù)卡號判斷發(fā)卡行?這就需要卡bin差凹。 BIN號即銀行標識代碼的英文縮寫看疙。BIN由6位數(shù)字表示,出現(xiàn)在卡號的前6位直奋,由國際標準化組織(ISO)分配給各從事跨行轉(zhuǎn)接交換的銀行卡組織能庆。銀行卡的卡號是標識發(fā)卡機構(gòu)和持卡人信息的號碼,由以下三部分組成:發(fā)卡行標識代碼(BIN號)脚线、發(fā)卡行自定義位搁胆、校驗碼。
目前邮绿,國內(nèi)的 銀行卡 按照數(shù)字打頭的不同分別歸屬于不同的銀行卡組織渠旁,其中以BIN號“4”字打頭的銀行卡屬于VISA卡組織,以“5”字打頭的屬于MASTERCARD卡組織船逮,以“9”字和“62”顾腊、“60”打頭的屬于中國銀聯(lián),而“62”挖胃、“60”打頭的銀聯(lián)卡是符合國際標準的銀聯(lián) 標準卡 杂靶,可以在國外使用,這也是中國銀聯(lián)近幾年來主要發(fā)行的銀行卡片酱鸭。 大部分銀行卡號前6位即可確定發(fā)卡行和卡類型吗垮,但也有非標卡需要6-10位才可以判斷出來。需要維護一個卡bin庫凹髓。附件是一個比較完整的卡bin庫烁登, csv格式的。
短信和身份驗證
一般綁卡操作第五步需要銀行下發(fā)短信驗證碼蔚舀。 短信驗證的接口饵沧,不同銀行還不一樣。有些銀行是短信和身份驗證一起做了赌躺;有些銀行是可以配置身份驗證是否同時發(fā)短信狼牺。還有些比較奇葩的機構(gòu),比如某聯(lián)寿谴,接口中讓你傳身份信息锁右,但實際上沒傳也是可以的失受,也不驗證身份信息到底對不對讶泰。這在對接渠道時需要特別注意咏瑟。
此類接口一般包含如下內(nèi)容:
版本號:當(dāng)前接口的版本號;
編碼方式: 默認都是UTF-8痪署,指傳輸?shù)膬?nèi)容的編碼方式码泞;
簽名和簽名方法: 生成報文的簽名。 不是所有的字段都需要放到簽名中狼犯,文檔中會說明哪些字段需要簽名余寥;
簽名算法:生成簽名的算法,RSA, RSA128悯森, MD5等宋舷。
商戶代碼:在渠道側(cè)注冊的商戶號。
商戶訂單號:即發(fā)送給渠道的訂單號瓢姻;
發(fā)送時間:該請求送出的時間祝蝠。
賬號和賬號類型: 銀行卡、存折幻碱、IC卡等支持的賬號類型以及對應(yīng)的賬號绎狭;
卡的加密信息:如信用卡的CVN2,有效期等褥傍。
開戶行信息:開戶行所在地以及名稱儡嘶;大部分是不需要的。
身份證件類型和身份證號: 可以用于實名驗證的證件恍风,指 身份證蹦狂、軍官證、護照朋贬、回鄉(xiāng)證鸥咖、臺胞證、警官證兄世、士兵證等啼辣。不同銀行可以支持的證件類型不一樣,這也不是問題御滩。大部分就是身份證了鸥拧。
姓名:真實姓名,必須和身份證一致;
手機號:在所在銀行注冊的手機號。
系統(tǒng)會返回上述數(shù)據(jù)的驗證結(jié)果萍丐。如果驗證通過铣猩,則會發(fā)短信。但這不是所有的渠道都是這樣饶氏。哪些字段會參與驗證嘹狞、需不需要發(fā)短信赂蠢,需要注意看接口文檔盏缤。
綁卡接口
綁卡接口和發(fā)短信接口類似砰蠢,還需要將用戶的卡號,身份證等信息傳遞過去唉铜。在綁卡成功后台舱,會返回一個簽約號。這個簽約號是后續(xù)調(diào)用支付潭流,解約等接口所必須的竞惋。 這里有個問題,已經(jīng)綁卡的用戶灰嫉,調(diào)用綁卡簽約接口再綁一次拆宛,會出現(xiàn)什么情況?這個和銀行實現(xiàn)有關(guān)讼撒。 大部分銀行胰挑,如農(nóng)業(yè)、浦發(fā)椿肩、建行等瞻颂,對綁卡簽約接口調(diào)用,會首先驗證身份信息郑象,如果驗證不通過贡这,則不執(zhí)行后續(xù)操作。驗證通過后厂榛,再檢查這個卡在該商戶下是否已經(jīng)綁過了盖矫, 如果沒有綁過,則執(zhí)行綁卡击奶,否則會提示卡已經(jīng)綁定過了辈双,不能重復(fù)簽約。 但工行的實現(xiàn)不一樣柜砾,他是首先驗證這個卡是不是已經(jīng)綁過了湃望,如果已經(jīng)綁卡,則不繼續(xù)驗證身份信息痰驱。 總之证芭,銀行都不支持重復(fù)綁卡。
銀聯(lián)綁卡
銀聯(lián)直聯(lián)綁卡和銀行綁卡類似担映,但是得注意驗證接口废士,僅驗證卡號和姓名,不驗證身份證號和手機號蝇完。這導(dǎo)致第5步無法正常進行官硝。銀聯(lián)只有到第六步執(zhí)行綁卡時才做身份驗證矗蕊。 所以在處理上,還需要做一些調(diào)整氢架,來確保和銀行的流程的一致傻咖。 一種處理方法是,對銀聯(lián)达箍,在第五步就開始調(diào)用銀聯(lián)接口執(zhí)行綁卡操作,但是在本地標記為預(yù)綁卡狀態(tài)铺厨;商戶側(cè)發(fā)送短信驗證碼缎玫,驗證通過后,才將狀態(tài)設(shè)置為綁卡成功解滓。
銀聯(lián)網(wǎng)銀綁卡處理起來比較麻煩赃磨。用戶在電商頁面上輸入卡號,然后被導(dǎo)航到銀聯(lián)頁面上去完成綁卡操作洼裤,成功后邻辉,銀聯(lián)返回一個token作為簽約號,用于支持后續(xù)操作腮鞍。這問題就來了值骇,用戶可以在銀聯(lián)頁面上綁定一個別人的卡,而電商側(cè)是無法知道這個卡的情況的移国。所以這種方式盡量不要用吱瘩。
實名認證
綁卡操作有個不錯的副產(chǎn)品,就是實名認證迹缀。常說的二要素使碾,三要素,四要素認證祝懂,可以通過這個操作完成票摇。 二要素指姓名和身份證號,三要素加上銀行卡號砚蓬,四要素則加上手機號矢门。看起來灰蛙,似乎銀行都應(yīng)該支持四要素驗證颅和,但大部分銀行接口僅支持三要素,畢竟手機號還是非常容易變缕允。 當(dāng)然峡扩,實名認證,也就是二要素認證障本,是應(yīng)用最多的認證了教届。國內(nèi)唯一的庫是在公安部這响鹃,由NCIIC負責(zé)對外提供接口“秆担可以提供如下功能:
簡項核查:返回“一致”“不一致”“庫中無此號”
返照核查:返回“一致+網(wǎng)紋照片”“不一致”“庫中無此號”
人像核查:返回“同一人”“不同人”“庫中無此號”
官方接口收費是 5元/條买置。 市面上主要的第三方服務(wù)提供商有國政通(簡項、返照)强霎、諾證通(簡項)忿项、IDface(三接口)等,收費簡項核查: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)該是沒問題的随闺。 有些公司還會額外提供四要素接口,以XX通為例蔓腐,它號稱支持大部分銀行卡的四要素認證板壮。但是實現(xiàn)上有點兒懵,居然是實時請求銀行的接口合住,這就導(dǎo)致接口延遲非常高绰精,1秒以上的占大部分,甚至10秒以上的都不少見透葛,基本無法商用笨使。這種情況下,還不如直接上銀聯(lián)僚害。