支付寶小程序:身份驗證

小編:啊南 368閱讀 2020.12.28

產品介紹 產品特色

  • 金融級安全防控:多年金融行業實名認證積累使得本產品具有精準識別身份冒用等風險防控能力。r

  • 流暢的用戶體驗:提供不同驗證方式的智能組合接入,可以方便商戶快速接入。身份認證過程流暢自然,體驗良好,正常用戶通過率高。r

  • 港澳臺同胞身份驗證:支持通過港澳臺同胞來往內地通行證、居住證進行身份驗證。

應用場景

支付寶身份核驗適用于各類需要驗證用戶本人真實身份場景, 例如:

認證方案

認證場景碼(biz_code)

功能描述

場景特征

多因子人臉認證

FACE

通過 API 喚起支付寶客戶端,進行人臉識別、姓名和身份證號驗證相結合的多因子實人認證。

對安全性要求高的線上實人開戶、轉帳、取現等場景。

多因子證照和人臉認證

CERT_PHOTO_FACE

通過 API?喚起支付寶客戶端對身份證拍照,進行人臉識別、證照識別、姓名和身份證號驗證相結合的多因子實人認證。

對安全性要求高,并對身份證照片有強制留存要求的互金線上實人開戶、應用市場開發者認證等場景。

多因子證照認證

CERT_PHOTO

通過 API?喚起支付寶客戶端對身份證拍照,進行證照識別、姓名和身份證號驗證相結合的多因子實人認證。

對身份證照片有強制留存要求的場景。

多因子快捷認證

SMART_FACE

通過 API?喚起支付寶客戶端,綜合可信設備驗證、環境驗證等驗證結果,智能決策是否直接通過,或者追加人臉識別、證照識別等驗證方式的多因子實人認證。

對用戶體驗和通過率要求高的實人賬號注冊、登錄、簽到等場景。

應用案例

支付寶身份核驗的交互流程如下圖所示:

準入條件
  • 該能力僅對企業支付寶賬戶開放(除金融行業)。

  • 賬戶必須完成實名制認證。?

計費模式

支付寶身份驗證產品采用“差額累進”的方式計費,具體計費規則如下表所示。

調用次數

0 < 調用量?≤ 1000

1000?< 調用量?≤ 1萬

1萬 < 調用量?≤ 10萬

10萬?< 調用量?≤ 20萬

20萬以上

區間費率

1 元/次

0.8?元/次

0.7?元/次

0.6?元/次

0.4?元/次

調用次數:即協議期內成功調用支付寶身份驗證服務的總次數。協議期限指合約有限期,一般為一年。

計費方式:支付寶身份驗證產品采用“差額累進”的計費方式,即按照調用次數劃分費率區間,根據不同區間費率分別計算價格,相加之和為最終收費總額。各區間計費規則如上表所示。

示例說明

在合約有效期內,商家將用戶的身份信息發給支付寶進行身份驗證,無論發送多少次,收費都按實際成功驗證次數實時扣取。

  • 如果驗證成功900次,則費用金額=900次x1元/次=900元。

  • 2. 如果驗證成功1100次,則費用金額=1000次x1元/次+100次x0.8元/次=1080元。

  • 3. 如果驗證成功15000次,則費用金額=1000次x1元/次+9000次x0.8元/次+5000次x0.7元/次=11700元。

接入指引第一步:創建小程序

要在您的小程序內使用 支付寶身份驗證功能,您需要首先完成 開發者入駐 并 創建小程序。

第二步:添加能力

小程序創建完成后,開發者登錄?開放平臺控制臺?>?找到已創建的小程序?>?點擊進入小程序管理后臺?>?版本管理 頁面的?能力列表?部分點擊添加能力 >?勾選?身份認證?能力并點擊 確定 完成能力添加。

開放平臺服務端 SDK,包含 JAVA、PHP、NodeJS、Python 和 .NET 五種語言,封裝了簽名 & 驗簽、HTTP 接口請求等基礎功能。請先下載對應語言版本的 SDK 并引入您的開發工程。

請額外引入下列三個 jar 包:

  • ?bcprov-jdk15on-1.62.jar?r

  • rfastjson-1.2.50.jar?r

  • rcommons-logging-1.1.1.jar

接口調用配置

在 SDK 調用前需要進行初始化,以 JAVA 代碼為例:




AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,APP_PRIVATE_KEY,FORMAT,CHARSET,ALIPAY_PUBLIC_KEY,SIGN_TYPE);




關鍵參數說明

配置參數 示例值解釋 獲取方式/示例值
URL 支付寶網關(固定)。 ?https://openapi.alipay.com/gateway.do?
APPID APPID 即創建應用后生成。 獲取見創建應用
APP_PRIVATE_KEY 開發者私鑰,由開發者自己生成。 獲取見配置密鑰
FORMAT 參數返回格式,只支持 json。 json(固定)
CHARSET 編碼集,支持 GBK/UTF-8。 開發者根據實際工程編碼配置
ALIPAY_PUBLIC_KEY 支付寶公鑰,由支付寶生成。 獲取詳見配置密鑰
SIGN_TYPE 商戶生成簽名字符串所使用的簽名算法類型,目前支持 RSA2 和 RSA,推薦使用 RSA2。 RSA2

接下來,就可以用 alipayClient 來調用具體的 API 了。alipayClient 只需要初始化一次,后續調用不同的 API 都可以使用同一個 alipayClient 對象。

第五步:調用接口支付寶身份驗證調用接口流程
初始化身份認證單據號

準備接口必要參數,通過?alipay.user.certify.open.initialize?接口調用身份認證初始化服務,示例代碼如下:




AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do","app_id","your private_key","json","GBK","alipay_public_key","RSA2");rAlipayUserCertifyOpenInitializeRequest request = new AlipayUserCertifyOpenInitializeRequest();rrequest.setBizContent("{" +r""outer_order_no":"ZGYD201809132323000001234"," +r""biz_code":"FACE"," +r""identity_param":{"identity_type":"CERT_INFO","cert_type":"HOME_VISIT_PERMIT_HK_MC","cert_name":"支小寶","cert_no":"08510702"}," +r""merchant_config":{"return_url":"xxx"}," +r""face_contrast_picture":"xydasf=="" +r"}");rAlipayUserCertifyOpenInitializeResponse response = alipayClient.execute(request);rif(response.isSuccess()){rSystem.out.println("調用成功");r} else {rSystem.out.println("調用失敗");r}r




重要入參說明
  • identity_param:需要驗證的身份信息參數,格式為 json。

    • identity_type:身份信息參數類型,必填,必須傳入 CERT_INFO 。

    • cert_type:證件類型,必填,當前支持:

      • IDENTITY_CARD:身份證。

      • HOME_VISIT_PERMIT_HK_MC:港澳居民來往內地通行證。

      • HOME_VISIT_PERMIT_TAIWAN:臺灣居民來往內地通行證。

      • RESIDENCE_PERMIT_HK_MC:港澳居民居住證。

      • RESIDENCE_PERMIT_TAIWAN:臺灣居民居住證。

    • cert_name:真實姓名,必填,填寫需要驗證的真實姓名,與證件類型對應。

    • cert_no:證件號碼,必填,填寫需要驗證的證件號碼,與證件類型對應。

  • bizCode:認證場景碼。入參支持的認證場景碼和商戶簽約的認證場景相關,取值如下:

    • FACE:多因子人臉認證

    • CERT_PHOTO:多因子證照認證

    • CERT_PHOTO_FACE :多因子證照和人臉認證

    • SMART_FACE:多因子快捷認證

更多參數詳情參見?alipay.user.certify.open.initialize?(身份認證初始化服務)接口文檔。

生成認證服務請求地址

將生成的 certify_id 作為入參,調用身份認證開始認證服務接口?alipay.user.certify.open.certify,示例代碼如下:

生成認證請求URL




//參考代碼如下://獲取alipay clientAlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", APP_ID, APP_PRIVATE_KEY, "json", CHARSET, ALIPAY_PUBLIC_KEY, "RSA2");AlipayUserCertifyOpenCertifyRequest request = new AlipayUserCertifyOpenCertifyRequest();//設置certifyIdJSONObject bizContentObj = new JSONObject();bizContentObj.put("certify_id", "2109b5e671aa3ff2eb4851816c65828f");request.setBizContent(bizContentObj.toString());//生成請求鏈接,這里一定要使用GET模式AlipayUserCertifyOpenCertifyResponse response = alipayClient.pageExecute(request, "GET");if(response.isSuccess()){  System.out.println("開始認證服務調用成功");  String certifyUrl = response.getBody();  //執行后續流程...} else {  System.out.println("調用失敗");}




生成如下的認證 URL 樣例

https://openapi.alipay.com/gateway.do?alipay_sdk=alipay-sdk-java-dynamicVersionNo&app_id=2015111100758155&biz_content=%7B%22certify_id%22%3A%22ZM201611253000000121200404215172%22%7D&charset=GBK&format=json&method=alipay.user.certify.open.certify&sign=MhtfosO8AKbwctDgfGitzLvhbcvi%2FMv3iBES7fRnIXn%2BHcdwq9UWltTs6mEvjk2UoHdLoFrvcSJipiE3sL8kdJMd51t87vcwPCfk7BA5KPwa4%2B1IYzYaK6WwbqOoQB%2FqiJVfni602HiE%2BZAomW7WA3Tjhjy3D%2B9xrLFCipiroDQ%3D&sign_type=RSA2&timestamp=2016-11-25+15%3A00%3A59&version=1.0&sign=MhtfosO8AKbwctDgfGitzLvhbcvi%2FMv3iBES7fRnIXn%2BHcdwq9UWltTs6mEvjk2UoHdLoFrvcSJipiE3sL8kdJMd51t87vcwPCfk7BA5KPwa4%2B1IYzYaK6WwbqOoQB%2FqiJVfni602HiE%2BZAomW7WA3Tjhjy3D%2B9xrLFCipiroDQ%3D

喚起身份驗證頁面

要使用小程序接入身份驗證功能,喚起身份驗證示例代碼如下:




/**r  * 喚起認證流程r  * 參數: certifyId、url 需要通過支付寶 openapi 開放平臺網關接口獲取r  * 詳細說明可查看文檔下方的參數說明r **/rmy.startAPVerify({r    rurl: 'https://openapi.alipay.com/gateway.do?alipay_sdk=alipay-sdk-java-4.9.5.ALL&app_id=2019111569179437&biz_content=%7B%22certify_id%22%3A%22a74bXXXXXXb0e4d42b9283bcfXXXXc1%22%7D&charset=UTF-8&format=json&method=alipay.user.certify.open.certify&sign=GPKGQpWQtkGWn98N%2F7HS8LOXli4dw1MH5LdK%2BZmR4k1j1PPvRubHZIq6jj5EQPi9CYtEYVGCUllb1pOGjgymWOGempjCiE9jx4CfyOD2SZ1JdTIw75dvkLQIlotd7Tli0BiaqCkpfv7b36bh2ORqFDGt8Zc50RI8AWqi8EyHDoMtq2ENGk8LXRcBNeeKUL0Fo9htOzgM3JXd5cqg8uPBhBawBAW7%2Bt5yT7dvogZYuMCAfaanUiPnjcWkxyobINxb4dusKybxRBHt0CXnxrLZi97Bdh6PnCqDZ36gYbw99P0TqG%2BJaUFWqLnbmu21OarI1m9aO6k1sFzb6g%3D%3D&sign_type=RSA2&timestamp=2020-05-28+18%3A12%3A04&version=1.0',rcertifyId: "your_certifyId",success: function (res) {r  console.log('success', res)r},rfail: function (res) {r  console.log('fail', res)r},rcomplete: function (res) {r  console.log('complete', res)r}r})




注意:身份驗證功能只支持真機測試,且測試使用的支付寶賬號須與?alipay.user.certify.open.initialize?接口中傳入的用戶保持一致。

驗證本次認證結果入參 options
  • {String} certifyId?- 認證訂單標識符,通過?alipay.user.certify.open.initialize?獲取。

  • {String}?url?- 支付寶開放平臺網關 URL,通過?alipay.user.certify.open.certify?獲取。

回調函數出參

回調函數帶入的參數?verifyResult: { resultStatus: 'xx', ?result: { } }

名稱

類型

描述

resultStatus

string

認證流程結果狀態碼, 詳見以下?ResultStatus?定義。

result.certifyId

string

本次認證流水號 certifyId。

result.errorCode

string

業務異常錯誤碼。

注意:result 對象可能為 null, API 接入者代碼邏輯需要做防御性處理,避免 NPE 異常。

ResultStatus

狀態碼

描述

9000

認證通過

6002

網絡異常

6001

用戶取消了業務流程,主動退出

4000

業務異常

注意:

  • resultStatus = 6001、6002 時,result 對象數據為空,接入者不需要獲取 result 對象數據。

  • resultStatus= 9000?時,業務方需要去支付寶網關接口查詢最終狀態(由于前端數據是可篡改的)。

Status:4000

包含的部分 errorCode 如下表格所示

錯誤碼

描述

UNKNOWN_ERROR

未知異常

SYSTEM_ERROR

系統異常

USER_IS_NOT_CERTIFY

用戶未認證

...

其他

接入注意
  • 此文檔只適用于支付寶客戶端 App 內接入使用。

  • 支付寶版本號獲取。




const matchResult = window.navigator.userAgent.match(/AliApp(AP/([d.]+))/i);const apVersion = (matchResult && matchResult[1]) || ''; // 如: 10.1.58.00000170




  • 版本比較可以使用?versioning?庫。

  • startBizService。

API 列表

此列表包含該產品所涉及的所有接口,點擊接口名可以查看接口的請求參數、返回參數、請求示例以及錯誤碼等信息。

口英文名稱

接口中文名稱

alipay.user.certify.open.query

身份認證記錄查詢

alipay.user.certify.open.initialize

身份認證初始化服務

alipay.user.certify.open.certify

身份認證開始認證



關聯標簽:
狼友av永久网站_丁香五月啪激情青青青视频_色综合视频一区二区