设备登录二维码
二维码内容格式如下:
https://open.work.weixin.qq.com/connect/hardware?sn=%s×tamp=%u&nonce=%u&signature=%s&type=dynamic_login&state=%s
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
sn | 是 | String | 请求的id,自行保证不会重复即可 |
state | 是 | String | 需要用户扫码后透传给设备的参数 |
timestamp | 是 | Uint32 | unix时间戳,单位为秒 |
nonce | 是 | Uint64 | 随机数 |
type | 是 | string | 此处固定为dynamic_login |
signature | 是 | string(40) | 设备签名,sha1(sort(sn、SecretNo、timestamp、nonce, type、state))。sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串。SecretNo是由企业微信为每个设备生成的密钥,供应商可将其固化到设备上。如果设备生产线不方便分别烧录SecretNo,可以统一烧录seedSecretNo,首次联网时通过换取SecretNo接口获取。 |
在设备每次绑定激活后,都可以请求云端获取一个二维码的二进制数据。此二维码仅在换绑企业后会失效。
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
req_id | 是 | String | 请求的id,自行保证不会重复即可 |
state | 是 | String | 需要用户扫码后透传给设备的参数 |
format_version | 是 | Uint32 | 表示回包的格式,目前版本为1 |
4Bytes | 4Bytes | req_id_len Bytes | 4Bytes | Data_len Bytes |
---|---|---|---|---|
format_version | req_id_len | req_id | data_len | binary |
以上所有字段均为直接拼接,没有任何分隔符,解析时先解析出字段长度,再继续解析字段内容。
字段含义如下:
format_version | 数据格式的版本号,目前为1 |
---|---|
req_id_len | req_id的长度 |
req_id | 请求的id,此处企业微信透传上行的req_id |
data_len | 文件的二进制长度 |
binary | 文件的二进制 |