这里咱们使用腾讯云的人脸核身来给你们作一个基础的介绍和使用java

1、基本介绍

1.概述

人脸核身:通常是对一组对用户身份信息真实性进行验证审核的服务套件提供各种认证功能模块,包含证件 OCR 识别、活体检测、人脸1 : 1对比等能力,以解决行业内大量对用户身份信息核实的需求。web

2.功能特色

OCR 识别

支持识别身份证正反面,一次扫描便可返回身份证号、姓名、有效时间等全部字段,数字识别准确率达到 99.9% 以*上,在多个字段上处于领先水平。处理倾斜、暗光、曝光、阴影等异常状况稳定性好,自适应判别纠正技术大大提升识别准确率。算法

活体检测

活体检测, 主要针对高安全性要求的人脸核身验证而研发的一种技术, 防止照片、视频、静态3D建模等各类不一样类型的攻击; 目前支持唇语读数、动做、静默等多种活体模式,适用于多类验证场景。spring

1:1人脸比对

人脸比对,根据面部特征,计算两张人脸的类似度,自动进行身份鉴别。立足于腾讯社交数据大平台收集的海量人脸训练集,结合高维 LBP、PCA、LDA 联合贝叶斯、度量学习、迁移学习、深度神经网络,2017年 LFW 测评准确度为 99.80%。并支持多场景下的识别验证,对年龄、姿态及光强均有较好的支持度。api

3.使用场景

综合政务服务、公安微警务、工商企业注册、养老金领取生存验证等

银行开户、保险验证

各大运营提供的在线申请号码、购买手机卡、预装宽带等 网吧上网实名登记、酒店住宿实名登记等

机场安检登机、铁路安检购票、长途客运购票、边检口岸通关等

2、术语概述

咱们主要是使用其中的两个接口,DetectAuth(实名核身鉴权)、GetDetectInfo(获取实名核身结果信息)。这两个功能基本能够实现咱们的的人脸核身这个功能需求。安全

基础参数说明

参数名称

类型

必选

描述

Action

String

操做的接口名称。取值参考接口文档中输入参数公共参数 Action 的说明。例如云服务器的查询实例列表接口,取值为 DescribeInstances。

ruleid

String

用于调用配置的业务流程,可在 人脸核身控制台-自助接入 建立业务流程,流程审核经过后,系统会自动建立流程并分配业务 ID(ruleid),建立 ruleid 的过程当中,须要肯定如下问题:

Region

String

地域参数,用来标识但愿操做哪一个地域的数据。接口接受的地域取值参考接口文档中输入参数公共参数 Region 的说明。注意:某些接口不须要传递该参数,接口文档中会对此特别说明,此时即便传递该参数也不会生效。

Timestamp

Integer

当前 UNIX 时间戳,可记录发起 API 请求的时间。例如1529223702,若是与当前时间相差过大,会引发签名过时错误。

Nonce

Integer

随机正整数,与 Timestamp 联合起来,用于防止重放攻击。

SecretId

String

在云API密钥上申请的标识身份的 SecretId,一个 SecretId 对应惟一的 SecretKey ,而 SecretKey 会用来生成请求签名 Signature。

Signature

String

请求签名,用来验证这次请求的合法性,须要用户根据实际的输入参数计算得出。具体计算方法参见接口鉴权文档。

Version

String

操做的 API 的版本。取值参考接口文档中入参公共参数 Version 的说明。例如云服务器的版本 2017-03-12。

SignatureMethod

String

签名方式,目前支持 HmacSHA256 和 HmacSHA1。只有指定此参数为 HmacSHA256 时,才使用 HmacSHA256 算法验证签名,其余状况均使用 HmacSHA1 验证签名。

Token

String

临时证书所用的 Token ,须要结合临时密钥一块儿使用。临时密钥和 Token 须要到访问管理服务调用接口获取。长期密钥不须要 Token 。

DetectAuth(实名核身鉴权)

在使用人脸核身以前须要:先调用本接口获取BizToken,用来串联核身流程,在验证完成后,用于获取验证结果信息。服务器

GetDetectInfo(获取实名核身结果信息)

为了获取用户的验证信息,是否经过。若是经过能够指定拉取的结果信息,取值(0:所有;1:文本类;2:身份证正反面;3:视频最佳截图照片;4:视频)微信

3、基本接口说明使用

DetectAuth(实名核身鉴权)

输入参数网络

这里咱们就只要一些基础信息就能够完成集成,若是有其它需求请根据参数再传递便可。app

这里咱们就只用一些它的必传参数,还有一个回调地址便可。

参数名称

必选

类型

描述

Action

String

公共参数,本接口取值:DetectAuth。

Version

String

公共参数,本接口取值:2018-03-01。

Region

String

公共参数,详见产品支持的 地域列表。

RuleId

String

用于细分客户使用场景,申请开通服务后,能够在腾讯云慧眼人脸核身控制台(https://console.cloud.tencent.com/faceid) 自助接入里面建立,审核经过后便可调用。若有疑问,请加慧眼小助手微信(faceid001)进行咨询。

TerminalType

String

本接口不须要传递此参数。

IdCard

String

身份标识(未使用OCR服务时,必须传入)。 规则:a-zA-Z0-9组合。最长长度32位。

Name

String

姓名。(未使用OCR服务时,必须传入)最长长度32位。中文请使用UTF-8编码。

RedirectUrl

String

认证结束后重定向的回调连接地址。最长长度1024位。

Extra

String

透传字段,在获取验证结果时返回。

ImageBase64

String

用于人脸比对的照片,图片的BASE64值; BASE64编码后的图片数据大小不超过3M,仅支持jpg、png格式。

输出参数

参数名称

类型

描述

Url

String

用于发起核身流程的URL,仅微信H5场景使用。

BizToken

String

一次核身流程的标识,有效时间为7,200秒; 完成核身后,可用该标识获取验证结果信息。

RequestId

String

惟一请求 ID,每次请求都会返回。定位问题时须要提供该次请求的 RequestId。

GetDetectInfo(获取实名核身结果信息)

输入参数

如下请求参数列表仅列出了接口请求参数和部分公共参数,完整公共参数列表见 公共请求参数。

参数名称

必选

类型

描述

Action

String

公共参数,本接口取值:GetDetectInfo。

Version

String

公共参数,本接口取值:2018-03-01。

Region

String

公共参数,详见产品支持的 地域列表。

BizToken

String

人脸核身流程的标识,调用DetectAuth接口时生成。

RuleId

String

用于细分客户使用场景,申请开通服务后,能够在腾讯云慧眼人脸核身控制台(https://console.cloud.tencent.com/faceid) 自助接入里面建立,审核经过后便可调用。若有疑问,请加慧眼小助手微信(faceid001)进行咨询。

InfoType

String

指定拉取的结果信息,取值(0:所有;1:文本类;2:身份证正反面;3:视频最佳截图照片;4:视频)。 如 134表示拉取文本类、视频最佳截图照片、视频。 默认值:0

输出参数

参数名称

类型

描述

DetectInfo

String

JSON字符串。 { // 文本类信息 “Text”: { “ErrCode”: null, // 本次核身最终结果。0为成功 “ErrMsg”: null, // 本次核身最终结果信息描述。 “IdCard”: “”, // 本次核身最终得到的身份证号。 “Name”: “”, // 本次核身最终得到的姓名。 “OcrNation”: null, // ocr阶段获取的民族 “OcrAddress”: null, // ocr阶段获取的地址 “OcrBirth”: null, // ocr阶段获取的出生信息 “OcrAuthority”: null, // ocr阶段获取的证件签发机关 “OcrValidDate”: null, // ocr阶段获取的证件有效期 “OcrName”: null, // ocr阶段获取的姓名 “OcrIdCard”: null, // ocr阶段获取的身份证号 “OcrGender”: null, // ocr阶段获取的性别 “LiveStatus”: null, // 活体检测阶段的错误码。0为成功 “LiveMsg”: null, // 活体检测阶段的错误信息 “Comparestatus”: null,// 一比一阶段的错误码。0为成功 “Comparemsg”: null, // 一比一阶段的错误信息 “Location”: null, // 地理位置信息 “Extra”: “”, // DetectAuth结果传进来的Extra信息 “Detail”: { // 活体一比一信息详情 “LivenessData”: [] } }, // 身份证正反面照片Base64 “IdCardData”: { “OcrFront”: null, “OcrBack”: null }, // 视频最佳帧截图Base64 “BestFrame”: { “BestFrame”: null }, // 活体视频Base64 “VideoData”: { “LivenessVideo”: null } }

RequestId

String

惟一请求 ID,每次请求都会返回。定位问题时须要提供该次请求的 RequestId。

4、开发工具类

maven导包

com.tencentcloudapi

tencentcloud-sdk-java

3.0.112

常量管理

/**

* 人脸核身相关参数

*/

public static final String FACEKERNEL_SECRETID = "标识身份的 SecretId |";

public static final String FACEKERNEL_SECRETKEY = "标识身份的SecretKey ,SecretKey 会用来生成请求签名 Signature。 ";

public static final Object FACEKERNEL_RULEID = "用于调用配置的业务流程";

代码

import com.jeesite.common.collect.MapUtils;

import com.jeesite.common.mapper.JsonMapper;

import com.jeespring.common.constant.TencentFaceConstant;

import com.tencentcloudapi.common.Credential;

import com.tencentcloudapi.common.exception.TencentCloudSDKException;

import com.tencentcloudapi.common.profile.ClientProfile;

import com.tencentcloudapi.common.profile.HttpProfile;

import com.tencentcloudapi.faceid.v20180301.FaceidClient;

import com.tencentcloudapi.faceid.v20180301.models.DetectAuthRequest;

import com.tencentcloudapi.faceid.v20180301.models.DetectAuthResponse;

import com.tencentcloudapi.faceid.v20180301.models.GetDetectInfoRequest;

import com.tencentcloudapi.faceid.v20180301.models.GetDetectInfoResponse;

import java.util.Map;

/**

* 人脸识别工具类

*/

public class RealNameAuthUtils {

/**

* 获取实名核身鉴权结果

* @param redirectUrl 认证结束后重定向的回调连接地址。最长长度1024位

* @return

*/

public static String getDetectAuthResult(String redirectUrl){

String result = "";

try{

//用户验证 id和对应密钥

Credential cred = new Credential(TencentFaceConstant.FACEKERNEL_SECRETID, TencentFaceConstant.FACEKERNEL_SECRETKEY);

HttpProfile httpProfile = new HttpProfile();

httpProfile.setEndpoint("faceid.ap-chengdu.tencentcloudapi.com");

ClientProfile clientProfile = new ClientProfile();

clientProfile.setHttpProfile(httpProfile);

//设置前置信息,如用户验证信息,地域信息(越近越快),请求域名地址

FaceidClient client = new FaceidClient(cred, "ap-chengdu", clientProfile);

Map paramMap = MapUtils.newHashMap();

//paramMap.put("RedirectUrl",Constant.FACEKERNEL_REDIRECTURL);

//设置了一个回调地址连接

paramMap.put("RedirectUrl",redirectUrl);

paramMap.put("RuleId", TencentFaceConstant.FACEKERNEL_RULEID);

String params = JsonMapper.toJson(paramMap);

DetectAuthRequest req = DetectAuthRequest.fromJsonString(params, DetectAuthRequest.class);

DetectAuthResponse resp = client.DetectAuth(req);

result = DetectAuthRequest.toJsonString(resp);

System.out.println(result);

} catch (TencentCloudSDKException e) {

System.out.println(e.toString());

result = "error";

}

return result;

}

/**

* 获取实名核身结果信息

* @param bizToken

* @return

*/

public static String getDetectInfo(String bizToken){

String result = "";

try{

Credential cred = new Credential(TencentFaceConstant.FACEKERNEL_SECRETID, TencentFaceConstant.FACEKERNEL_SECRETKEY);

HttpProfile httpProfile = new HttpProfile();

httpProfile.setEndpoint("faceid.ap-chengdu.tencentcloudapi.com");

ClientProfile clientProfile = new ClientProfile();

clientProfile.setHttpProfile(httpProfile);

FaceidClient client = new FaceidClient(cred, "ap-chengdu", clientProfile);

Map paramMap = MapUtils.newHashMap();

paramMap.put("BizToken",bizToken);

paramMap.put("RuleId", TencentFaceConstant.FACEKERNEL_RULEID);

String params =JsonMapper.toJson(paramMap);

GetDetectInfoRequest req = GetDetectInfoRequest.fromJsonString(params, GetDetectInfoRequest.class);

GetDetectInfoResponse resp = client.GetDetectInfo(req);

result = GetDetectInfoRequest.toJsonString(resp);

System.out.println(result);

} catch (TencentCloudSDKException e) {

System.out.println(e.toString());

result = "error";

}

return result;

}

}

人脸核身 微信h5_微信小程序人脸核身---快速入门到实战(附开发工具类,复制即用)...相关推荐

  1. 微信小程序人脸核身---快速入门到实战(附开发工具类,复制即用)

    文章目录 一.基本介绍 1.概述 2.功能特点 3.使用场景 二.术语概述 基础参数说明 DetectAuth(实名核身鉴权) GetDetectInfo(获取实名核身结果信息) 三.基本接口说明使用 ...

  2. JAVA 调用微信API 生成小程序跳转地址 亲测有效 【附效果图】

    JAVA 调用微信API 生成小程序跳转地址 JAVA 调用微信API 生成小程序跳转地址 由于工作需要,需要在后台生成自己公司的小程序分享地址以供前端工作人员使用,在开发当前功能时因为遇到一些问题导 ...

  3. (一)微信小程序从入门到实战之开发工具安装

    俗话说工欲善其事,必先利其器,作为一名程序员,开发软件和开发环境是我们进行软件开发的必要条件.但是对于很多新入门的朋友来说,安装开发环境和配置环境变量,通常把大多数人拦在门外,所以这篇博客,咱们先来介 ...

  4. 首份小程序广告投放价值榜单发布:游戏、工具类小程序占主导地位

    2018年3月小程序广告正式开放内测,所有类目小程序均可进行广告投放.随后众多品牌小程序纷纷开放小程序广告,近日第三方小程序开发工具即速应用和 精硕科技集团 赋能智慧商业的数据智能技术提供商nEqua ...

  5. 微信小程序(1)——注册开发者账号、安装开发工具

    注册开发者账号 1.需要先注册一个微信公众号,注册入口为:https://mp.weixin.qq.com 2.进入公众号找到左侧最下方的开发-基本配置,申请开通开发者 3.开通后可以看到开发者ID ...

  6. 基于云开发的微信答题活动小程序v1.0搭建部署帮助文档

    11月是全国"119"消防宣传月,不少企事业单位都会举办消防安全知识竞答活动,因此我基于云开发搭建了消防安全知识答题活动小程序. 接着,还写完了初阶的手把手教你搭建答题活动小程序系 ...

  7. newduba首页怎么去掉_京喜小程序首页瘦身实践

    前言 在 web 开发场景,减少代码体积虽然是性能优化的一个方向,还没到锱铢必较的程度.但是在小程序场景,由于代码包上传阶段限制了主包 2M 和总包 16M(近期微信官方正在内测将总包上限调整至 20 ...

  8. (上)小程序从0快速入门到实战项目打造个性简历,让你轻松脱颖而出吸引面试官眼球(附源码)

    前言 分享之前我们先来认识一下小程序,官方定义的微信小程序是一种新的开放能力,开发者可以快速地开发一个小程序.更是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体 ...

  9. 小程序TOP100榜单:零售、泛娱乐、内容类潜力大丨智能科技

    原标题:小程序TOP100榜单:零售.泛娱乐.内容类潜力大丨智能科技 新媒体管家 探寻商业本质 预见商业未来 品途解读:阿拉丁首次发布了2017年8月全网小程序TOP100榜单排名及榜单分析.本月榜单 ...

最新文章

  1. R语言abline函数为图像添加竖线、横线、斜线、回归线实战
  2. 清华大学张悠慧:超越冯·诺依曼模型,实现软硬件去耦合的类脑计算(附视频)
  3. vue-router2路由参数注意问题
  4. Linux中的echo简介(自我总结)(44)
  5. mac mysql启动问题
  6. 智能物流给力零售业跨越式发展
  7. Geoserver之切片
  8. 产品能力提升|《点石成金·访客至上的Web和移动可用性设计秘籍》
  9. python下载互联网上的的图片
  10. android悬浮窗服务卡死,Android 悬浮窗兼容问题谈
  11. matlab空间光调制器,空间光调制器原理与应用
  12. 第二次数学建模训练题
  13. luogu 4234 最小差值生成树 LCT
  14. 聊天室系统测试用例设计及报告
  15. c语言日历时钟编程,基于DS1302的日历时钟(1602液晶显示DS1302时钟)C语言程序设计...
  16. Android简单计算器实现
  17. template模板
  18. 大数据领域就业和发展指南
  19. Java中值得你小心的事(一)——继承
  20. steam在matlab是什么,什么是STEAM,和STEM有何区别?

热门文章

  1. 在我的世界中用 python 编程
  2. 【视频教程免费领取】聚焦Python分布式爬虫必学框架Scrapy 打造搜索引擎
  3. 留良乡投资理财只需做到这五点
  4. Oracle学习XII —— Oracle集合运算
  5. 计算机专业看能力还是学校,浅谈中职学校计算机专业教学探究
  6. 前端工作越来越难找,是不是已经饱和了?
  7. WPF中使用InteractiveDataDisplay控件画图
  8. VIEWGOOD(远古)P2P流媒体直播系统的设计与实现
  9. 手工编程是指利用计算机完成,CAD CAM考试复习题答案(1)
  10. 深圳荣耀Java后端一面