本篇仅介绍基础版核身SDK Android端的调用流程,涉及需合作方服务端开发的接口请参考另一篇文章人脸核身APP接入-服务端Python demo。
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
基础版人脸核身Android SDK的初始化主要是对参数的初始化,主要分为两方面的参数,一方面是合作方业务配置参数,这部分参数都被封装在WbCloudFaceVerifySdk.InputData 对象中, 它是一个 Serializable 对象,相关参数字段说明可参考下方表格。另一方面是SDK界面定制和功能配置参数,可通过SDK提供的相关字段进行配置。
1、初始化WbCloudFaceVerifySdk.InputData参数:
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、设置个性化界面和功能配置参数:
效果图如下:
3、初始化SDK:
调用初始化方法代码:
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:
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 删除。