向SpeedFace-H5L设备上传ZK人脸字符串模板返回-103错误问题咨询
问题根因与修复方案
-103错误的本质是上传的人脸模板算法版本与设备当前支持的算法版本不匹配,结合你提供的信息,具体修复步骤如下:
1. 修正非法人脸索引参数
你代码中写死的iFaceIndex = 50是非法值,SpeedFace-H5L设备单用户最多支持10个人脸模板,合法索引范围为0~9,首次录入人脸填0即可,调整对应参数即可。
2. 匹配人脸算法版本
你当前设备的人脸算法版本为58,若你待上传的sTmpData人脸模板是从低于58版本的旧设备导出的,直接上传会触发版本校验失败。必须保证上传的模板是由版本58的同系列算法生成:
- 若模板来自其他设备,需确认源设备的
ZKFaceVersion也为58 - 若为离线生成的模板,需使用对应58版本的人脸算法SDK生成
3. 提前协商人脸版本
调用SetUserFaceStr前先主动设置SDK侧的人脸版本,确保和设备对齐,添加代码如下:
// 上传人脸前先设置SDK匹配设备的人脸版本 axCZKEM1.SetSysOption(iMachineNumber, "ZKFaceVersion", "58");
4. 校验模板长度参数
确认你传入的iLength是人脸模板的字节长度,而非字符串字符长度:
- 若
sTmpData是Base64编码的模板,需先解码为字节数组再取字节长度传入接口 - 保证上传时的
iLength和你调用GetUserFaceStr获取模板时返回的长度完全一致
内容的提问来源于stack exchange,提问作者Denzel Ovando
相关产品推荐
相关产品推荐

