前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >人脸核身APP接入-Android端实现

人脸核身APP接入-Android端实现

原创
作者头像
向东平
修改2021-10-26 18:06:44
3.3K0
修改2021-10-26 18:06:44
举报

前言

本篇仅介绍基础版核身SDK Android端的调用流程,涉及需合作方服务端开发的接口请参考另一篇文章人脸核身APP接入-服务端Python demo

SDK文档

android support sdk:https://share.weiyun.com/5VTnQgj,官网文档中有提供该下载地址,内含demo。

androidx sdk:请通过官网在线咨询。

sdk接口文档:https://cloud.tencent.com/document/product/1007/35870

sdk接入示例:https://cloud.tencent.com/document/product/1007/35872

调用流程

调用流程
调用流程

初始化SDK

基础版人脸核身Android SDK的初始化主要是对参数的初始化,主要分为两方面的参数,一方面是合作方业务配置参数,这部分参数都被封装在WbCloudFaceVerifySdk.InputData 对象中, 它是一个 Serializable 对象,相关参数字段说明可参考下方表格。另一方面是SDK界面定制和功能配置参数,可通过SDK提供的相关字段进行配置。

1、初始化WbCloudFaceVerifySdk.InputData参数:

代码语言:javascript
复制
WbCloudFaceVerifySdk.InputData inputData = new WbCloudFaceVerifySdk.InputData(faceId, agreementNo, 
openApiAppId, openApiAppVersion, openApiNonce, openApiUserId, openApiSign, verifyMode, keyLicence);

如果参数字段值有误,便无法正常拉起人脸核身SDK流程。 WbCloudFaceVerifySdk.InputData inputData 参数字段列表:

参数名

参数来源

参数描述

长度

faceId

服务端获取

本次刷脸标识,有效期5分钟,每次进行人脸核身都需要重新获取

-

agreementNo

合作方生成

订单号,字母/数字组成的字符串,由合作方上送,每次唯一,不能超过32位

32

openApiAppId

控制台申请

业务流程唯一标识,即WBappid

8

openApiAppVersion

固定参数

接口版本号,默认填:1.0.0,如果版本号不对会报“SDK登录失败:网络异常”错误

20

openApiNonce

合作方生成

计算签名的32位随机字符串

32

openApiUserId

合作方生成

合作方用户的唯一标识(不能带有特殊字符),不能超过32位

32

openApiSign

合作方生成

本次人脸核身服务的签名信息,由wbappid、userId、version 连同 ticket、nonce 共五个参数进行排序和编码后生成一个40位字符串作为签名

40

FaceVerifyStatus.Mode

固定参数

刷脸类别,默认分级模式 FaceVerifyStatus.Mode.GRADE

-

keyLicence

控制台申请

与包名关联,如果包名不对会报keyLicence不可用,业务申请后包名不可修改,只能重新申请或者新添加一个。

-

2、设置个性化界面和功能配置参数:

  • 界面主体颜色配置,SDK提供了白色和黑色两种主题模式,默认显示白色模式。也支持自定义皮肤和定制刷脸过程中界面各组件元素颜色。
  • 配置是否显示成功和失败页面。
  • 定制化提示语,分短提示语和长提示语,长提示语需合作方发送邮件申请。
  • 主动退出核验界面时定制化二次确认弹框的文字内容,包括标题、提示内容、确认键和取消键文案。
  • 配置比对类型,分权威库数据源比对和自带比对源比对两种类型。
  • 配置是否录制视频存证,如果配置为是,验证结果中就可以获取到对应视频,控制台也会显示。
  • 配置是否播放语音提示,需腾讯云服务端配置对应的活体检测模式。

效果图如下:

黑白主题效果
黑白主题效果

3、初始化SDK:

调用初始化方法代码:

代码语言:javascript
复制
WbCloudFaceVerifySdk.getInstance().initSdk(MainActivity.this, inputBundle, wbLoginListener)

第1、2步中的所有参数都会通过inputBundle传递给SDK。调用初始化后,会通过wbLoginListener对象的回调方法通知初始化登录成功或失败。

拉起核身流程

如果SDK初始化成功,便可以启动核身流程。

如果SDK初始化失败,启动核身流程会提示“初始化SDK异常”。

如果SDK未初始化,启动核身流程,则会报错:

Caused by: java.lang.NullPointerException: Attempt to read from field 'java.lang.String com.webank.facelight.api.WbCloudFaceVerifySdk$InputData.agreementNo' on a null object reference

启动人脸核身流程,调用如下方法拉起人脸核身SDK:

代码语言:javascript
复制
WbCloudFaceVerifySdk.getInstance().startWbFaceVerifySdk(MainActivity.this, wbResultListener)

该启动方法中通过wbResultListener对象的回调返回核验结果成功或失败相关信息。

核验界面中,如果长时间(约30s)未检测到人脸,会自动退出刷脸界面,并会提示“刷脸失败:人脸在框检测超时”。

核验流程结束后,如果配置了展示成功或失败界面,则会跳转到对应页面。

返回核验结果

SDK的核验结果是通过启动核身时传递的WbCloudFaceVerifyResultListener接口对象回调返回的。

1、核验成功:SDK会通过WbFaceVerifyResult对象将核验结果信息返回给APP,见WbFaceVerifyResult对象说明。包括核验是否成功、核验结果的签名、订单号、活体检测分数、人脸比对分数、核身的人脸图片base64编码等。

2、核验失败:SDK会通过WbFaceError对象将核验错误信息返回给APP,见WbFaceError对象说明。包括错误码和错误信息内容等。

后端获取结果

合作方服务端可以生成签名(见合作方后台生成签名)后,通过调用身份认证查询接口查询结果。

注:这里获取结果的签名与初始化SDK时的签名并非同一签名,他们的生成规则不一样。

1、合作方服务端验证结果:合作方服务端先按照规则生成核验签名,然后调用身份认证查询接口获取核验结果。该方式可以获取到包括人脸核身视频在内的更多详细信息。

2、另外,合作方服务端按照规则生成核验签名后,还可以调用人脸认证多张照片查询接口 获取人脸认证结果的多张照片。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • SDK文档
  • 调用流程
  • 初始化SDK
  • 拉起核身流程
  • 返回核验结果
  • 后端获取结果
相关产品与服务
人脸核身
腾讯云慧眼人脸核身是一组对用户身份信息真实性进行验证审核的服务套件,提供人脸核身、身份信息核验、银行卡要素核验和运营商类要素核验等各类实名信息认证能力,以解决行业内大量对用户身份信息核实的需求,广泛应用于金融、运营商、共享出行等领域。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档