H5人臉實名認證-百度雲版

接口參考文檔:java

ai.baidu.com/ai-doc/FACE…json

本文介紹了實名認證方案操做流程。小程序

本方案使用於在微信小程序、公衆號、H5等業務場景實現用戶實名認證,若是您的場景是安卓/IOS系統的app場景,推薦採用app端實名認證方案微信小程序

ai.baidu.com/ai-doc/FACE…微信

接入時序圖

圖片

接入流程

1、首先要建立一個百度雲帳號,在產品服務裏有人臉識別。app

圖片

2、參考人臉實名認證 >>> 方案概覽 >>> H5實名認證,先建立應用,後建立方案。ide

圖片

3、建立應用獲得 AppID、API Key和Secret Key ; 建立方案獲得方案ID.net

圖片

圖片

4、獲取Token,經過H5獲取Token接口發起認證請求,獲取verify_token信息blog

先經過第三步獲得的API Key和Secret Key生成access_tokentoken

生成方法:

向受權服務地址發送請求(推薦使用POST)

aip.baidubce.com/oauth/2.0/t…

grant_type: 必須參數,固定爲client_credentials;

client_id: 必須參數,應用的API Key;

client_secret: 必須參數,應用的Secret Key;

· 經過POST請求URL獲取access_token示例:

https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHlA4Fq5eR3LT0vuXV4&client_secret=0rDSjzQ20XUj5itV6WRtznPQSzr5pVw2&複製代碼

· 經過Java獲取access_token示例代碼示例:

package com.baidu.ai.aip.auth; import org.json.JSONObject; import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.List;import java.util.Map; /** * 獲取token類 */public class AuthService {       /**     * 獲取權限token     * @return 返回示例:     * {     * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",     * "expires_in": 2592000     * }     */    public static String getAuth() {         // 官網獲取的 API Key 更新爲你註冊的        String clientId = "百度雲應用的API Key";         // 官網獲取的 Secret Key 更新爲你註冊的        String clientSecret = "百度雲應用的Secret Key";         return getAuth(clientId, clientSecret);     }       /**     * 獲取API訪問token     * 該token有必定的有效期,須要自行管理,當失效時需從新獲取.     * @param ak - 百度雲官網獲取的 API Key     * @param sk - 百度雲官網獲取的 Securet Key     * @return assess_token 示例:     * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"     */    public static String getAuth(String ak, String sk) {         // 獲取token地址        String authHost = "https://aip.baidubce.com/oauth/2.0/token?";         String getAccessTokenUrl = authHost                 // 1. grant_type爲固定參數                + "grant_type=client_credentials"                 // 2. 官網獲取的 API Key                + "&client_id=" + ak                 // 3. 官網獲取的 Secret Key                + "&client_secret=" + sk;         try {             URL realUrl = new URL(getAccessTokenUrl);             // 打開和URL之間的鏈接            HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();             connection.setRequestMethod("GET");             connection.connect();             // 獲取全部響應頭字段            Map<String, List<String>> map = connection.getHeaderFields();             // 遍歷全部的響應頭字段            for (String key : map.keySet()) {                 System.err.println(key + "--->" + map.get(key));             }             // 定義 BufferedReader輸入流來讀取URL的響應            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));             String result = "";             String line;             while ((line = in.readLine()) != null) {                 result += line;             }             /**             * 返回結果示例             */            System.err.println("result:" + result);             JSONObject jsonObject = new JSONObject(result);             String access_token = jsonObject.getString("access_token");             return access_token;         } catch (Exception e) {             System.err.printf("獲取token失敗!");             e.printStackTrace(System.err);         }         return null; } public static void main(String[] args) {         System.out.println("Access_token: " + getAuth());     } }複製代碼

· 運行結果:獲得Access_token

圖片

經過上述生成的access_token獲取verify_token

· 咱們使用Postman 發送POST請求URL:

https://aip.baidubce.com/rpc/2.0/brain/solution/faceprint/verifyToken/generate?access_token=24.7f478f1f95d581d6f2f4006e0f904a95.2592000.1611283726.282336-23149109複製代碼

URL中的信息填寫以下所示:

(1)access_token:填寫上面生成的access_token

(2)Body中放置請求參數 plan_id,即第三步獲得的 方案ID值

(3)Header:application/json

5、跳轉實名認證H5 URL,用戶進行操做

使用上一步返回的 verify_token 信息請求認證H5頁面,進行用戶端流程操做。

· 認證URL:

https://brain.baidu.com/face/print/?token=xxx&successUrl=https://xxx&failedUrl=https://xxx複製代碼

URL中的信息填寫以下所示:

(1)token:填寫verify_token。

(2)successUrl:請求成功跳轉的網址,網址須要加http/https前綴

(3)failedUrl:請求失敗跳轉的網址,網址須要加http/https前綴

圖片

圖片

圖片

圖片

認證經過後咱們就可使用 verify_token 和第四步生成的 access_token 獲取認證結果及資料,返回用戶認證信息

6、查詢認證結果接口

· 使用Postman 發送POST請求URL:

https://aip.baidubce.com/rpc/2.0/brain/solution/faceprint/result/detail?access_token=24.7f478f1f95d581d6f2f4006e0f904a95.2592000.1611283726.282336-23149109複製代碼

URL中的信息填寫以下所示:

(1)access_token:填寫第四步生成的 access_token

(2)Body中放置請求參數verify_token,即第四步獲取到的 verify_token

(3)Header:application/json

{    "verify_token" : "cIupeyP51sn28XzxGVTfYqoN"}複製代碼

返回參數

· 返回結果

字段

必選

類型

說明

success

boolean

返回請求是否成功信息。若請求成功返回ture;請求失敗則返回fault

result

array

請求結果

+idcard_ocr_result

array

返回採集的用戶人臉信息當人臉實名認證控制檯設置爲使用OCR識別時返回此參數信息

++address

string

地址

++birthday

string

生日

++name

string

姓名

++id_card_number

string

身份證號

++gender

string

性別

++nation

string

民族

++expire_time

string

身份證失效日期

++issue_authority

string

身份證簽發機關

++issue_time

string

身份證生效日期

+verify_result

array

認證返還信息

++liveness_score

string

活體檢測分數

++score

string

人臉實名認證

++spoofing

string

合成圖分數若未進行合成圖檢測,則返回0若進行活體檢測,則返回合成圖檢測分值

+idcard_confirm

array

用戶二次確認的身份證信息

++name

string

姓名

++idcard_number

string

身份證號

· 返回結果

{     "success": true,     "result": {         "idcard_ocr_result": {             "address": "江蘇省淮安市淮陰區XXX",             "birthday": "19691211",             "name": "孫XX",             "id_card_number": "320821XXXXXXX",             "gender": "女",             "nation": "漢",             "expire_time": "XXX",             "issue_authority": "XXX",             "issue_time": "XXX"         },         "verify_result": {             "liveness_score": 0.39,             "score": 11.65885925         },         "idcard_confirm": {             "name": "孫XX",             "idcard_number": "320821XXXXXXX"         }     },     "log_id": "1436111694"}複製代碼
相關文章
相關標籤/搜索