2020-12-25 百度云第三方接口实名认证
百度云官方接口文档
对接百度云实名认证接口工具类:
package com.guomo.app.utils;import java.util.*;/*** 身份验证*/
public class PersonVerify {public static String personVerify(String neme , String id_card_number) {// 请求url接口地址String url = "https://aip.baidubce.com/rest/2.0/face/v3/person/********";try {Map<String, Object> map = new HashMap<>();map.put("image", "sfasq35sadvsvqwr5q...");map.put("liveness_control", "HIGH");map.put("name", neme);//姓名map.put("id_card_number", id_card_number);//身份证号map.put("image_type", "BASE64");map.put("quality_control", "LOW");String param = GsonUtils.toJson(map);// 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
// String accessToken = "[调用鉴权接口获取的token]";String accessToken = AuthService.getAuth(); //这里我每次都调用了token类String result = HttpUtil.post(url, accessToken, "application/json", param);System.out.println(result);return result;} catch (Exception e) {e.printStackTrace();}return null;}public static void main(String[] args) {PersonVerify.personVerify();}
}
返回参数:
{"error_code": 0,"error_msg": "SUCCESS","log_id": 123,"timestamp": 123,"cached": 0,"result":{"score": 20.1}
}
返回错误码表
还需要一个获取token的工具类:
package com.guomo.app.utils;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 更新为你注册的
// 百度云应用的AKString clientId = "百度云应用的AK";// 官网获取的 Secret Key 更新为你注册的//百度云应用的SKString clientSecret = "百度云应用的SK";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;}}
我的接口:
//完善资料——实名认证20201205@PostMapping(value = “自己项目的接口地址”)@ApiOperation(value = "实名认证", notes="实名认证", httpMethod = "POST")public Result UpdateCertification(CertificationQo certificationQo, HttpServletRequest request ){AuthService authService = new AuthService();MessageCode code = MessageCode.error;try {//调用第三方身份验证JSONObject jsonObject=JSONObject.parseObject( PersonVerify.personVerify(certificationQo.getRealName(),certificationQo.getIdNo()));//对传过来的值做一个判断0为符合其他请看状态码if (jsonObject.getInteger("error_code")==0){int back =userActionService.UpdateCertification(certificationQo);if (back==1)code = MessageCode.success;}else {code = MessageCode.verify_no;}}catch (Exception e){log.error("系统出现异常:{}",e);}return Result.success(code);}
关于工具类项目踩的坑:
原项目缺少依赖:不够的自己在网上找
<!--添加fastjson依赖--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.7</version></dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.5</version></dependency><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.4.5</version></dependency>
还有所需要的工具类:
下载地址
2020-12-25 百度云第三方接口实名认证相关推荐
- 2020.12.25十六进制转八进制
2020.12.25十六进制转八进制 题目描述 输入一个十六进制数,字母全为大写,要转为八进制,要求:开头不为0. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行 ...
- python使用百度云API接口图片卡通化
python使用百度云API接口图片卡通化: import requests import base64class AnimeDemo:def __init__(self,AK,SK):self.AK ...
- C#调用百度云存储接口上传文件
因前几日见园子里有人说可以把网站静态文件放在百度上,于是去百度开放平台看了看,发现之前那篇文章不是调的云存储接口啊... 于是自己写了个C#能调百度云存储的例子(百度云开放平台只提供php.java. ...
- Java实现百度云OCR接口识别图片文字信息(也包含身份证,银行卡识别,更新添加通用票据识别)
参考: https://blog.csdn.net/weixin_40165004/article/details/82632229 1.需求背景 因项目需求,需要提取身份证.发票(9/16更新内容) ...
- 如何调用阿里云、百度云API接口
使用阿里云.百度云提供的一些接口,实现一些文本处理的功能,此处以阿里云为例: import json import csv import timefrom aliyunsdkcore.client i ...
- 利用百度云API接口上传照片进行植物识别
第一步还是引库,确定自己安装过这些库了,没有安装的需要自行安装 import requests import base64 import os #os库是下面多张图片进行识别的,如果一次识别一张图片就 ...
- Python3 使用百度云 API 接口实现音频文件转写
注意事项 本文参考链接: http://dy.163.com/v2/article/detail/DKQLR7RK0517ACP7.html. 百度智能云的官方文档是有JAVA SDK文档的,如果你想 ...
- python自动化测试视频百度云-python接口自动化测试视频教程全集
python接口自动化测试视频教程全集 下载地址:https://k.weidian.com/Pfm=DyuI 课程内容: 第一章:接口测试基础 1-1 接口自动化课程简介 1-2 接口测试课程大纲 ...
- 百度云 api java_如何使用百度云API接口
展开全部 http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E ...
最新文章
- debug assertion failed!报错
- 前端跨域问题解决方案汇总
- 1.0 C++远征:数据的封装
- Java:比较两个对象中全部属性值是否相等
- cropper固定宽高裁剪_cropper实现基本的裁剪图片并上传
- mysql select in 排序_MySQL数据库之Mysql select in 按id排序实现方法
- keil 使用教程 编写第一个led灯程序
- 会声会影2022Win64中文版特别版
- stagefright
- 【SIPp】Linux-SIPp3.6.0 测试FreeSwitch
- 怎么录制QQ语音通话 QQ通话录音软件哪个好?
- AD怎么设置相同网络的线宽
- CentOS8离线安装mono
- 中考考试的指令广播_考试语音指令系统
- mcinabox运行库下载_mcinabox运行库 v1.0
- 使地方坐标系BIM模型与CAD严格在LSV内对准
- 成功启动electron-egg项目,electron+vue的傻瓜式搭建
- 用fail2ban阻止ssh暴力破解root密码
- UnityC#接阿里云头像自动分割API
- 比特币铺就通往个体主权之路
热门文章
- android 没有 art模式吗,底层:Android终于默认了提升效率的ART模式
- Wemos D1 Arduino超声波测距原理讲解加代码、超声波驱动SG90电机(垃圾桶感应开关)
- c 语言单位转换编程,《C语言及程序设计》实践参考——单位转换对照表
- 美观实用的文本编辑器-C#源码
- 一个北大人的成长足迹:未名湖是个海洋
- qzezoi 1572 能量收集
- mysql各种查询包括连接查询
- 智能运维监管系统终端_电力智能运维管理系统
- Unity 安卓打包控制台打印manifest targetSdkVersion=24 but library uses target 26
- java isnan_isNaN用法及深入理解