智慧硬件开发 硬件直连接入 考勤/门禁设备 附录 访客二维码校验规则
访客二维码校验规则
最后更新:2022/01/19
可联系渠道经理采购或代理智慧硬件接口已支持设备 联系渠道经理
访客二维码校验规则
最后更新:2022/01/19

二维码扫码后得到一个base64编码后的buffer,按base64解码后的二进制数据定义如下:

1 Byte1 Byte8 Bytes1 Bytestate_len(0~16) Bytes64 Bytes
versiontypeopenvidstate_lenstatesign

参数说明

参数名含义
version数据格式版本号,目前固定是0x01
type签名类型, 0表示是员工, 1表示是访客, 访客二维码固定为 1
openvid成员id,为64位无符号整数, 唯一代表一个访客,设备通过“拉取访客列表”获取访客数据时包含该id
state_lenstate参数的长度, 最长为16字节
state透传参数, 可以由应用方通过获取访客签名指定
sign签名

签名算法暂定用椭圆曲线非对称加密算法(ECDSA),选取的椭圆曲线为NID_X9_62_prime256v1。

包体签名:
Sign = ECDSA(SHA256(join(version,type,openvid,state_len,state)))
私钥由企业微信保管,设备使用公钥(全量拉取用户数据增量拉取用户数据的pub_key)验证即可。

注:
1、 join的含义是将version,type,openvid,state_len,state(如有)对应的数值依次拼接在一起。
2、 SHA256,ECDSA分别是一种哈希算法和非对称加密算法,实现方可以根据自己开发语言找一下现有的成熟算法库。
3、验证签名时,先对签名使用公钥解密,随后计算SHA256摘要是否一致。

上一篇
员工二维码校验规则
下一篇
打印/扫描设备接入指引