协议

使用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 参数数据部分,不同接口有不同的约定

签名规则

  1. 将请求参数 按照固定顺序app_id、biz、id、sn、time进行拼接得到:app_id=appIdTest&biz=register&id=123&sn=sn123&time=1662024496
  2. 直接拼接分配的app_secret,得到:app_id=appIdTest&biz=register&id=123&sn=sn123&time=1662024496appSecretTest
  3. 进行md5加密,计算出签名 sign = F220FB5491C5B6BFF21EAA7EAD8B241D
  1. {
  2. "app_id": "appIdTest",
  3. "biz": "register",
  4. "id": 123,
  5. "sn": "sn123",
  6. "time": "1662024496",
  7. "sign": "F220FB5491C5B6BFF21EAA7EAD8B241D",
  8. "type": "3568",
  9. }

公共响应参数及示例

参数 数据类型 是否必填 说明
code int 响应码,0表示处理成功,
非0表示处理失败,参考错误码解释
msg string 响应描述
biz string 业务编码
data object/array 响应数据包内容
time int 服务器当前时间戳,可用于做设备时间校准
  1. {
  2. "code": 0,
  3. "message": "ok",
  4. "biz": "test",
  5. "data": [],
  6. "time": 1662024496
  7. }

通用接口

所有http上报接口均通过该接口, 不同业务通过biz区分

接口地址 {api_url}/api/v2/device/cmd�
请求方法 POST

设备注册

设备在建立MQTT连接前,需要动态获取MQTT连接信息,设备在开机联网后可以调用该注册接口获取连接信息。

:::info biz: register

:::

请求参数及示例

参数 数据类型 是否必填 说明
app_version� string 版本号
  1. {
  2. "app_id": "appIdTest",
  3. "biz": "register",
  4. "id": 123,
  5. "sn": "sn123",
  6. "time": "1662024496",
  7. "sign": "F220FB5491C5B6BFF21EAA7EAD8B241D",
  8. "type": "3568",
  9. "data": {
  10. "app_version": "1.0.0"
  11. }
  12. }

响应参数及示例

参数 子参数 数据类型 是否必填 说明
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连接保活间隔
  1. {
  2. "biz": "register",
  3. "id": "1683532553840",
  4. "time": 1683532553,
  5. "sn": "1234",
  6. "app_id": "1234",
  7. "sign": "bd39a514daead4c524a003afe9aa6cb3",
  8. "type": "1234",
  9. "data": {
  10. "mqtt": {
  11. "host": "iot.ganlin.com",
  12. "port": 1883,
  13. "username": "1234",
  14. "password": "1234",
  15. "client_id": "1234",
  16. "down_topic": "gl-ad-down/1234",
  17. "up_topic": "gl-ad-up/1234",
  18. "keepalive": 60
  19. }
  20. },
  21. "code": 0,
  22. "msg": "success"
  23. }

在线二维码核验

:::info biz: qrcode

:::

请求参数及示例

参数 数据类型 是否必填 说明
type string 核验的数据类型,
qrcode:二维码
content string 核验内容,如二维码内容
  1. {
  2. "app_id": "appIdTest",
  3. "biz": "qrcode",
  4. "id": 123,
  5. "sn": "sn123",
  6. "time": "1662024496",
  7. "sign": "F220FB5491C5B6BFF21EAA7EAD8B241D",
  8. "type": "3568",
  9. "data": {
  10. "type": "qrcode",
  11. "content": "GL_2hJgj6vBW+UUFu2AYbjIp9x7KQ8hqcIk/pY2d7o38xk="
  12. }
  13. }

响应参数及示例

参数 数据类型 是否必填 说明
result int 核验结果
person_id string 人员ID
check_msg string 核验描述
  1. {
  2. "biz": "qrcode",
  3. "id": "1683532553840",
  4. "time": 1683532553,
  5. "sn": "1234",
  6. "app_id": "1234",
  7. "sign": "bd39a514daead4c524a003afe9aa6cb3",
  8. "type": "1234",
  9. "data": {
  10. "result": 0,
  11. "person_id": "160xxxxx",
  12. "check_msg": "通过"
  13. },
  14. "code": 0,
  15. "msg": "success"
  16. }

错误码

Code 说明 备注
100001 App ID不存在
100002 签名不正确
100004 App Id和签名不能为空
100005 该设备型号未注册

设备日志上报

:::info biz: log

:::

请求参数及示例

以 form-data的格式上传

参数 数据类型 是否必填 说明
file_content� string 日志内容 (application/octet-stream)

响应参数及示例

  1. {
  2. "biz": "log",
  3. "id": "1683532553840",
  4. "time": 1683532553,
  5. "sn": "1234",
  6. "app_id": "1234",
  7. "sign": "bd39a514daead4c524a003afe9aa6cb3",
  8. "type": "1234",
  9. "code": 0,
  10. "msg": "success"
  11. }