协议
使用HTTP协议进行API调用需要遵循如下协议,以下接口调用信息需要联系平台技术支持提供:
- api_url:平台调用的接口地址
- app_id:请求调用的APP ID,仅用于设备端与云端通讯
- app_secret:该秘钥用于生成签名,请务必安全保存
- type:设备的型号,需与平台确定硬件产品功能,并分配固定的型号编码
数据传输使用JSON格式。
公共请求参数及示例
参数 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
app_id | object | 是 | 请求调用的APP ID,和App Secret一同由平台分配 |
biz | string | 是 | 业务编码 |
id | string | 是 | 业务随机id |
sn | string | 是 | 设备序列号,厂商确保唯一 |
time | int | 是 | 设备当前时间戳(秒) |
type | int | 是 | 设备型号,厂商和平台约定,由平台提供 |
sign | string | 是 | 签名,生成规则如下 |
data | object/array | 否 | 参数数据部分,不同接口有不同的约定 |
签名规则
- 将请求参数 按照固定顺序app_id、biz、id、sn、time进行拼接得到:app_id=appIdTest&biz=register&id=123&sn=sn123&time=1662024496
- 直接拼接分配的app_secret,得到:app_id=appIdTest&biz=register&id=123&sn=sn123&time=1662024496appSecretTest
- 进行md5加密,计算出签名 sign = F220FB5491C5B6BFF21EAA7EAD8B241D
{
"app_id": "appIdTest",
"biz": "register",
"id": 123,
"sn": "sn123",
"time": "1662024496",
"sign": "F220FB5491C5B6BFF21EAA7EAD8B241D",
"type": "3568",
}
公共响应参数及示例
参数 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
code | int | 是 | 响应码,0表示处理成功, 非0表示处理失败,参考错误码解释 |
msg | string | 是 | 响应描述 |
biz | string | 是 | 业务编码 |
data | object/array | 否 | 响应数据包内容 |
time | int | 是 | 服务器当前时间戳,可用于做设备时间校准 |
{
"code": 0,
"message": "ok",
"biz": "test",
"data": [],
"time": 1662024496
}
通用接口
所有http上报接口均通过该接口, 不同业务通过biz区分
接口地址 | {api_url}/api/v2/device/cmd� |
---|---|
请求方法 | POST |
设备注册
设备在建立MQTT连接前,需要动态获取MQTT连接信息,设备在开机联网后可以调用该注册接口获取连接信息。
:::info biz: register
:::
请求参数及示例
参数 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
app_version� | string | 否 | 版本号 |
{
"app_id": "appIdTest",
"biz": "register",
"id": 123,
"sn": "sn123",
"time": "1662024496",
"sign": "F220FB5491C5B6BFF21EAA7EAD8B241D",
"type": "3568",
"data": {
"app_version": "1.0.0"
}
}
响应参数及示例
参数 | 子参数 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|---|
mqtt | object | 是 | MQTT配置 | |
host | string | 是 | 数据包ID | |
port | int | 是 | 数据包内容 | |
username | string | 是 | 设备登录用户名 | |
password | string | 是 | 设备登录密码 | |
client_id | string | 是 | 设备客户端ID | |
down_topic | string | 是 | 设备订阅主题 | |
up_topic | string | 是 | 设备数据上报主题 | |
keepalive | int | 是 | MQTT连接保活间隔 |
{
"biz": "register",
"id": "1683532553840",
"time": 1683532553,
"sn": "1234",
"app_id": "1234",
"sign": "bd39a514daead4c524a003afe9aa6cb3",
"type": "1234",
"data": {
"mqtt": {
"host": "iot.ganlin.com",
"port": 1883,
"username": "1234",
"password": "1234",
"client_id": "1234",
"down_topic": "gl-ad-down/1234",
"up_topic": "gl-ad-up/1234",
"keepalive": 60
}
},
"code": 0,
"msg": "success"
}
在线二维码核验
:::info biz: qrcode
:::
请求参数及示例
参数 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
type | string | 是 | 核验的数据类型, qrcode:二维码 |
content | string | 是 | 核验内容,如二维码内容 |
{
"app_id": "appIdTest",
"biz": "qrcode",
"id": 123,
"sn": "sn123",
"time": "1662024496",
"sign": "F220FB5491C5B6BFF21EAA7EAD8B241D",
"type": "3568",
"data": {
"type": "qrcode",
"content": "GL_2hJgj6vBW+UUFu2AYbjIp9x7KQ8hqcIk/pY2d7o38xk="
}
}
响应参数及示例
参数 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
result | int | 是 | 核验结果 |
person_id | string | 是 | 人员ID |
check_msg | string | 是 | 核验描述 |
{
"biz": "qrcode",
"id": "1683532553840",
"time": 1683532553,
"sn": "1234",
"app_id": "1234",
"sign": "bd39a514daead4c524a003afe9aa6cb3",
"type": "1234",
"data": {
"result": 0,
"person_id": "160xxxxx",
"check_msg": "通过"
},
"code": 0,
"msg": "success"
}
错误码
Code | 说明 | 备注 |
---|---|---|
100001 | App ID不存在 | |
100002 | 签名不正确 | |
100004 | App Id和签名不能为空 | |
100005 | 该设备型号未注册 |
设备日志上报
:::info biz: log
:::
请求参数及示例
以 form-data的格式上传
参数 | 数据类型 | 是否必填 | 说明 |
---|---|---|---|
file_content� | string | 是 | 日志内容 (application/octet-stream) |
响应参数及示例
{
"biz": "log",
"id": "1683532553840",
"time": 1683532553,
"sn": "1234",
"app_id": "1234",
"sign": "bd39a514daead4c524a003afe9aa6cb3",
"type": "1234",
"code": 0,
"msg": "success"
}