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"}复制代码
相关文章
相关标签/搜索