【轉】快捷支付詳解--比較詳細

 

現代支付系統設計相關的博客地址算法

http://blog.lixf.cn/安全

 

 

快捷支付指用戶在電商網站上執行支付時,不須要輸入卡信息,僅根據短信或者其餘的驗證方式確認身份後,就能夠執行扣款的支付方式。 這是目前電商網站採用的主要支付方式。 快捷支付分爲首次支付和非首次支付,他們的流程是不同的,區別就在於首次支付的時候,用戶須要綁卡。而非首次支付則是直接使用已經綁定的卡來執行扣款,僅需作身份驗證就行。注意,這裏介紹的是電商網站爲業務提供的快捷支付接口,而不是銀行或者其餘渠道提供給電商的快捷支付接口。服務器

1、支付場景

快捷支付第一步是要求用戶作綁卡操做。綁卡是將用戶的銀行卡信息提供給電商,之後電商就用這個信息去銀行完成支付。綁卡其實是一個受權,讓用戶容許商家自動從他的帳戶上扣除資金。因此綁卡也叫簽約,用戶和銀行,商家的三方簽定的支付合約。 但咱們知道,綁卡對用戶和商戶來講都存在巨大風險。若是說用戶綁卡是圖省事,那商戶爲何要作這個事?快捷支付在支付場景上的優點在以下幾個方面:微信

1. 提高支付成功率
網銀支付須要用戶去銀行開通網銀,而對快捷支付來講,這並非必須的。 這樣使得可使用快捷支付的用戶羣體獲得擴展。 使用網銀支付成功率在20%左右,銀聯直聯成功率通常在50%左右,銀行卡直聯能夠提高到70%左右。這是至關可觀的數據。因此,當你看到綁卡送洗衣粉之類作法時,不須要擔憂商家會不會賠本。網絡

2. 提高支付安全性
網銀是須要用戶本身來保證支付環境的安全。在支付寶推出快捷支付和卡通支付以前,網銀仍是主要的支付方式,這致使各類的木馬,釣魚病毒肆虐,目標之一就爲竊取用戶的銀行卡信息。銀行發放U盤U盾,各類的證書,都是爲了保證網銀支付的安全,這也帶來了各類支付的不便。 哪天忘了帶了,就沒法完成支付。而快捷支付是由商家來保證支付信息的安全,可靠性獲得保障。固然,至於商家如何保證這些信息安全,還有待商榷。總的來講,這也比我的本身抵禦黑客黑產要靠譜多了。併發

3. 提高用戶體驗
想一想網銀支付的流程,用戶在跳轉到銀行頁面後,還得插入U盾,各類的核對。產品經理應該知道,每增長一個操做,都會帶來必定的掉單率。 而快捷支付僅需在第一步完成綁卡後,之後的扣款,最多一個短信就搞定了,敗家更方便。 在快捷支付中,綁卡和支付都不須要和渠道打交道,都是經過服務器來中轉。並且在綁卡成功後,操做都在服務器上進行。這使得這種支付方式能夠跨平臺使用。手機,PC均可以。甚至在其餘終端完成綁卡後,能夠在電視,嵌入式設備上作支付。異步

4. 獲取可靠支付數據
快捷支付還有一個很好的反作用, 那就是獲得真實用戶信息,特別是身份證信息、銀行卡號、手機號、驗證方式、真實姓名等。再結合用戶的訂單信息,你們就能夠知道爲何淘寶、京東等這些電商網站如今的商品推薦會這麼精準了。post

2、綁卡流程

怎麼綁卡?咱們知道對接銀行有兩種途徑,直接對接銀行接口和經過銀聯來間接對接。這兩種狀況下綁卡處理也不一樣。 直觀的,電商網站會在用戶後臺提供一個綁卡的入口,讓用戶直接綁卡。以支付寶綁卡流程爲例,咱們能夠體驗下:alipay-1微信支付

這裏有以下要點:網站

  • 只能綁本身的卡,這主要從安全角度考慮。做爲本身的卡,指銀行卡在銀行預留的姓名和身份證與網站預留的一致。
  • 須要用戶在銀行側預留的手機號進行短信驗證。但不是全部銀行都須要。這個時候,爲了統一處理,能夠考慮本身發驗證短信。

對這個入口不要期望太多,更多的用戶是在支付中綁卡。也就是提交訂單後,發現沒有銀行卡了,就開始綁卡。 和純綁卡流程不一樣的是,最後一步,綁卡成功後,通常都同時完成支付。有些渠道會提供綁卡並支付的接口,減小交互次數。

爲了保證卡的安全,綁卡有這些前置需求:

  1. 用戶必須已經綁定了手機號。該手機號用於修改支付密碼。
  2. 用戶需設置了支付密碼。支付密碼不一樣於登陸密碼。

針對用戶不一樣狀態,綁卡流程上有區別。固然,綁卡是安全操做,要求用戶必須登陸到系統中。爲了不和服務器端的交互被劫持,全部操做必須在安全協議中進行,即便用https。

fast-bind

1. 輸入卡號
用戶輸入卡號,系統對卡號執行初步驗證。 驗證的依據是卡bin和LUHN算法。參見支付系統之銀行卡支付。 固然,還有些系統會提供掃卡識碼的功能,好比微信支付。 掃碼識別的準確率能夠達到99%,有些卡的卡號顏色和背景色一致的,就會識別出錯。 若是用戶沒細看,進入下一步,就會報告錯誤了,這種錯誤還比較難發現。自動識別卡號,還須要考慮在識別錯誤時如何圓過去的問題。

2. 獲取卡信息
首次綁卡須要提供卡信息。借記卡須要卡號,用戶真實姓名和身份證,這個全部銀行都同樣。(有不同的,留言告知,謝謝) 信用卡就複雜點。大部分信用卡還需提供CV碼和有效期。可是若是和銀行關係好,拿到合適的接口,把這兩個因素都免了,也是有可能的。

3. 要素驗證
首先在服務器端作驗證。主要是驗證卡是否已經被綁過。 若是一個用戶有多個帳戶,系統還須要考慮是否支持這些帳戶都綁到一個卡上。 接着調用銀行綁卡驗證接口進行綁卡。這裏有一個四要素驗證的概念。因爲國內要求實名制,全部銀行卡都是實名辦理的,因此銀行能夠驗證姓名,身份證號,銀行卡號和手機號是否是一致的。若是沒問題,則會發短信到手機上。
這裏還有幾個注意點:
1.關於手機號。你們都知道,銀行預留的手機號通常都是辦卡的時候留的,過了幾年,換手機了,不少人就忘了同步到銀行。因此不少銀行就不驗證手機號。 2.關於驗證短信,手機號都不是必須的,那短信就可能都不發了。這在流程設計時須要統一處理。銀行不發短信就的本身發。
3.重複綁卡問題。若是系統支持多帳戶,那不可避免的出現一我的綁卡到多個帳號上。渠道側綁卡,有接口支持重複綁卡,有些是不支持的。因此若是須要重複綁卡,還得在服務器端處理。

4. 執行綁卡
用戶輸入短信驗證碼並確認綁卡,服務器端將用戶實名信息以及短信驗證碼組合造成報文,發送給銀行,執行簽約操做。銀行側簽約成功後,返回簽約號給商戶。 這一個處理邏輯放在支付渠道側介紹。銀行會返回以下結果:

  1. 簽約成功:這意味着能夠創建簽約關係。而簽約關係在支付系統中則經過虛擬帳戶來表示。 具體的帳戶設計參見帳戶模型
  2. 重複簽約: 按照業務考慮是否支持重複簽約。 通常針對一個銀行卡僅保留一個簽約關係,創建一個虛擬帳戶。
  3. 簽約失敗: 須要提示具體失敗緣由。

3、扣款流程

在完成簽約後,支付處理就相對簡單很多。扣款流程以下:fast-pay-1

流程要點:

  1. 訂單系統生成訂單後,請求支付系統執行支付;
  2. 支付服務器生成支付記錄,請求渠道執行支付。若是該渠道須要短信支持,請求渠道發送短信。
  3. 服務器端在生成支付記錄後,請求渠道執行支付。對於須要短信驗證或者其餘身份驗證方式的支付行爲,還須要首先請求渠道發送短信,以後讓用戶輸入短信驗證碼。以後將訂單、短信驗證碼、支付金額送到渠道側,執行支付。

這裏須要關注以下問題:

1. 訂單有效期
用戶必須在訂單有效期內完成支付。支付時,必須爲每一個訂單設置有效期。這個有效期不能太長,通常不會超過一天。有效期能夠從下單開始算,避免使用相對日期。 在執行支付時,須要驗證下訂單是否還在有效期內。

2. 同步和異步處理
銀聯提供的商戶側開通快捷支付接口,不一樣步返回最終扣款結果,而是經過異步通知的方式來返回。 異步通知會屢次調用回調接口, 直到調用成功。 因此,一個訂單支付成功的通知,有可能會收到屢次回調。

4、解約流程

解約流程通常是由用戶本身發起。固然,存儲在本地的簽約信息只是被設置爲無效,而不是實際刪除。 解約時,還須要注意相關的訂單是否都已經完成。fast-pay-1

5、退款流程

沒有無緣無故的退款。支付都是由交易調起的,那退款就都對應的由退貨發起的。 針對已經扣款成功的交易執行退款。若是交易還在進行中,好比渠道側尚未返回結果,則執行退款會致使狀態不可預知。fast-refund-1

注意,退款的錢並不必定當即到帳。不一樣銀行、不一樣渠道到帳時間不同。

6、接口概述

通常來講,快捷支付須要提供以下接口:

  1. 簽約, 也叫「綁卡簽約」、「開通交易」等,指用戶在商戶網站上開通快捷支付的功能,他須要將銀行卡相關信息提供給電商。
  2. 解約, 也叫「解綁卡」, 指用戶取消在該網站上的快捷支付功能。通常也會刪除該用戶在該網站上的相關的銀行卡信息。
  3. 扣款, 也叫「支付」, 指用戶使用簽約的卡來執行一筆扣款。
  4. 退款, 針對已經扣款成功的交易執行退款操做,通常同時也會把用戶權益或者對應的訂單撤銷。並非全部訂單均可以執行退款。
  5. 查單, 查詢某次交易的處理狀態。
  6. 簽約查詢, 即檢查某個用戶是否已經開通了簽約功能。

7、備份通道

因爲快捷支付是經常使用的一個通道,其帶來的問題是,若是這個通道出問題了,應該怎麼辦?回顧以前的文章,咱們提到過,銀行卡快捷支付不只僅只有髮卡行的通道,銀聯、第三方支付也均可以提供銀行卡快捷支付接口。就髮卡行來講,也不只僅總行通道,不少髮卡行的各省分行,因爲歷史因素,手頭也有通道資源。 這也爲咱們實現通道切換提供了可能。 切換支付通道最大的問題是如何解決簽約。 好比用戶原來使用工行快捷支付接口來完成工行借記卡支付。某一天,工行通知接口要維護,不可用了,這就須要提早把工行接口切到其餘備用通道,好比銀聯接口。 固然,直接切換是不行的,和銀聯還沒簽約呢。 那如何處理備用通道? 關於備用通道的簽約時間。能夠在用戶簽約到主通道時,同時簽約到備用通道,這種狀況要求備用通道必須是無短信驗證的,不然一次簽約發兩條短信,用戶必須會懷疑的。還能夠在第一次支付的時候簽約,這時候將簽約支付短信一併發出,避免影響用戶體驗。 關於通道選擇,參考支付路由設計一文。

8、接口實現

通常來講,快捷支付接口能夠經過封裝以下通道接口來實現:

  1. 固然,首先是銀行本身提供的快捷支付接口;
  2. 銀行的代扣接口;
  3. 銀聯的客戶側開通Token接口。
  4. 第三方支付的代扣接口。

9、安全與合規

和銀行卡對接,特別是快捷支付接口,有三個重要的合規文檔,必須通讀。

  1. 《非銀行支付機構網絡支付業務管理辦法》(中國人民銀行公告〔2015〕第43號公佈)
  2. 中國人民銀行關於進一步增強銀行卡風險管理的通知, 銀髮〔2016〕170號

    嚴禁留存非本機構的支付敏感信息(包括銀行卡磁道或芯片信息、卡片驗證碼、卡片有效期、銀行卡密碼、網絡支付交易密碼等),確有必要留存的應取得客戶本人及帳戶管理機構的受權。

各商業銀行、支付機構應在客戶端軟件與服務器、服務器與服務器之間進行通道加密和雙向認證,對重要信息關鍵字段進行散列或加密存儲,保障信息傳輸、存儲、使用安全。

自2016年12月1日起,各商業銀行、支付機構應使用支付標記化技術( Tokenization),對銀行卡卡號、卡片驗證碼、支付機構支付帳戶等信息進行脫敏處理,並經過設置支付標記的交易次數、交易金額、有效期、支付渠道等域控屬性,從源頭控制信息泄露和欺詐交易風險。

嚴格限制使用初始交易密碼並提示客戶及時修改,創建交易密碼複雜度系統校驗機制,避免交易密碼過於簡單(如「111111」、「123456」等)或與客戶我的信息(如出生日期、證件號碼、手機號碼等)類似度太高。

  1. 網絡支付報文結構及要素技術規範(V1.0版), 銀辦發[2016]222號
相關文章
相關標籤/搜索