设备联网后调用,发起注册请求。
请求包体:
{
"cmd":"register",
"headers":
{
"req_id":"xxxxx"
},
"body":
{
"device_signature":"xxxxx",
"nonce":123451,
"timestamp":1231231,
"sn":"xxxxx",
"net_info":
{
"wifi_name":"wifi111",
"mac_address":"08:00:20:0A:8C:6D"
}
}
}
参数说明:
参数名 | 是否必须 | 类型 | 描述 |
---|---|---|---|
req_id | 是 | String | 请求的id,自行保证不会重复即可 |
device_signature | 是 | String(40) | 设备签名,sha1(sort(sn、SecretNo、timestamp、nonce, “register”))。sort的含义是将参数值按照字母字典排序,然后从小到大拼接成一个字符串。SecretNo是由企业微信为每个设备生成的密钥,供应商可将其固化到设备上。如果设备生产线不方便分别烧录SecretNo,可以统一烧录seedSecretNo,首次联网时通过换取SecretNo接口获取。本接口计算签名时,需要把字符串常量”register”参与到计算之中,区别二维码的签名。 |
sn | 是 | String | 设备序列号 |
timestamp | 是 | Uint32 | 时间戳, 5分钟有效期 |
nonce | 是 | Uint64 | 随机数 |
net_info | 否 | msg | wifi_name, mac_address |
返回结果:
{
"headers": {
"req_id" : "xxxx"
},
"body":
{
"active_code":"xxxxxx"
},
"errcode": 0,
"errmsg": "ok"
}
参数说明:
参数名 | 描述 |
---|---|
req_id | 透传请求的req_id |
errcode | 错误码 |
errmsg | 错误码描述 |
active_code | 激活码,长期有效 |