智慧硬件开发
智慧硬件开发
硬件直连接入
设备接入
接口调用
设备登录二维码
设备登录二维码
最后更新:2023/02/01

对于通用硬件设备,可以通过展示二维码的方式供企业微信成员扫码登录。扫码成功后,云端会给设备推送用户扫码事件

登录二维码分为静态二维码、动态二维码两种形态。我们建议有屏幕有计算能力的设备尽量都使用安全级别更高的动态二维码。

动态二维码:
二维码内容格式如下:
https://open.work.weixin.qq.com/connect/hardware?sn=%s&timestamp=%u&nonce=%u&signature=%s&type=dynamic_login&state=%s

参数说明:

参数名是否必须类型描述
snString设备SN(全局唯一)
stateString需要用户扫码后透传给设备的参数
timestampUint32unix时间戳,单位为秒。动态二维码过期时间为30min即1800s ,当扫码时间戳(UTC/GMT+08:00)与timestamp差值大于1800时,此动态二维码过期
nonceUint64随机数
typestring此处固定为dynamic_login
signaturestring(40)设备签名,sha1(sort(sn、SecretNo、timestamp、nonce, type、state))。sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串。SecretNo是由企业微信为每个设备生成的密钥,供应商可将其固化到设备上。如果设备生产线不方便分别烧录SecretNo,可以统一烧录seedSecretNo,首次联网时通过换取SecretNo接口获取。
注意:部分设备与服务器可能存在时间差,建议每15min刷新动态二维码。

静态二维码:
在设备每次绑定激活后,都可以请求云端获取一个二维码的二进制数据。此二维码仅在换绑企业后会失效。

请求包体:

{
	"cmd":"gen_login_qrcode",
	"headers":
	{
		"req_id":"xxxxx"
	},
	"body":
	{
		"state": "Matchine_01",
		"format_version":1
	}
}

参数说明:

参数名是否必须类型描述
req_idString请求的id,自行保证不会重复即可
stateString需要用户扫码后透传给设备的参数
format_versionUint32表示回包的格式,目前版本为1

返回结果:

4Bytes4Bytesreq_id_len Bytes4BytesData_len Bytes
format_versionreq_id_lenreq_iddata_lenbinary
以上所有字段均为直接拼接,没有任何分隔符,解析时先解析出字段长度,再继续解析字段内容。
字段含义如下:
format_version数据格式的版本号,目前为1
req_id_lenreq_id的长度
req_id请求的id,此处企业微信透传上行的req_id
data_len文件的二进制长度
binary文件的二进制
上一篇上传日志文件
下一篇上报设备异常事件
    本节内容
硬件直连接入
更新日志
联系我们