跳转到主要内容

活体检测(生物特征自拍)

带有内嵌活体验证的生物特征自拍采集。SDK 通过 SmartFrames 引导用户直到获取生物特征有效帧,并以 Base64 + JWT(JSON Web Token — 发送给您的后端以调用 REST API 的已签名载荷)格式返回图像。

能力

此采集类型使用 Liveness 能力。有关 Liveness 工作原理的概念性概述,请参阅 Liveness 能力页面

工作原理

SDK 管理完整的采集会话:

  1. 打开带有 SmartFrame 覆盖层的摄像头。
  2. 引导用户将面部定位在框架内。
  3. 验证活体——仅当用户实际在场时会话才会完成。
  4. 返回包含 base64encrypted(JWT)的 ResultCamera 对象。
启动活体采集
步骤 1 — 实现 AcessoBioListener

AcessoBioListener 负责处理 SDK 生命周期回调。请实现以下四个必需方法:

方法调用时机
onErrorAcessoBio(errorBio)SDK 操作过程中发生错误
onUserClosedCameraManually()用户手动关闭了摄像头
onSystemClosedCameraTimeoutSession()已达到会话时间限制 — 请参阅会话限制
onSystemChangedTypeCameraTimeoutFaceInference()已达到人脸推断时间限制 — 切换为手动拍摄 — 请参阅会话限制
val callback = object : AcessoBioListener {
override fun onErrorAcessoBio(errorBio: ErrorBio?) { }
override fun onUserClosedCameraManually() { }
override fun onSystemClosedCameraTimeoutSession() { }
override fun onSystemChangedTypeCameraTimeoutFaceInference() { }
}
步骤 2 — 实现 iAcessoBioSelfie

iAcessoBioSelfie 处理自拍采集结果的回调:

方法描述
onSuccessSelfie(result)采集成功——返回包含 base64(预览)和 encrypted(用于 API 的 JWT)的 ResultCamera
onErrorSelfie(errorBio)采集失败——返回包含代码和描述的 ErrorBio
令牌过期

生成 encrypted 与将其提交至 API 之间的时间间隔不得超过 10 分钟

val selfieListener = object : iAcessoBioSelfie {
override fun onSuccessSelfie(result: ResultCamera?) { }
override fun onErrorSelfie(errorBio: ErrorBio?) { }
}
步骤 3 — 调用 prepareCamera

初始化 unicoCheckCamera 并实现两个监听器后,调用 prepareCamera,传入 SDK 配置(即在初始化中创建的 UnicoConfig)和 SelfieCameraListener

  • onCameraReady — 摄像头已就绪;调用 open 并传入步骤 2 中的 selfieListener
  • onCameraFailed — 摄像头准备失败;处理错误消息。
unicoCheckCamera
.prepareCamera(UnicoConfig(), object : SelfieCameraListener {
override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Selfie?) {
cameraOpener?.open(selfieListener)
}
override fun onCameraFailed(message: String?) { }
})

有关完整的结果处理,请参阅接收结果