W76C 开发者API文档

概述

本文档描述了 W76C 智能门禁控制系统的云端 API 接口,开发者可通过这些接口实现设备注册、远程开门、设备控制等功能。

API基础地址: https://wdev.wmj.com.cn


错误码说明

错误码 说明
0 成功
1001 网络超时
1002 设备不在线
1003 参数错误
1004 设备未注册
1005 设备已注册
1006 认证失败

点击下面的序号展开
1.注册设备
  • 将设备和appid、appsecret绑定
请求URL
  • https://wdev.wmj.com.cn/deviceApi/register
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "app_secret": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
    "device_sn": "W76C1234567"
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
返回示例
{
    "code": 0,
    "msg": "注册成功"
}
{
    "code": 1005,
    "msg": "设备已注册"
}
返回参数说明
参数名 类型 说明
code int 错误码 0成功其他异常
msg string 描述
备注
  • 更多返回错误代码请看首页的错误代码描述
2.开门
  • 触发继电器开门
请求URL
  • https://wdev.wmj.com.cn/deviceApi/send
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "app_secret": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
    "device_sn": "W76C0998927",
    "type": 1,
    "data": {
        "cmd_type": "open",
        "info": {
            "delay": 1200
        }
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令类型:open
data.info.sn string 一旦传入sn,设备将校验传入sn是否与设备本身sn一致,校验成功才能开门
data.info.delay int 延迟上锁时间(毫秒)
返回示例
//成功
{
    "code": 0,
    "data": {
        "device_sn": "W76C0998927",
        "msg_id": 172,
        "type": 1,
        "cmd": "",
        "app_id": "",
        "cmd_type": "open",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}
//失败
{
    "code": 1002,
    "msg": "设备不在线"
}
返回参数说明
参数名 类型 说明
code int 调用接口错误码 0成功其他异常
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息
3.重启设备
  • 远程重启设备
请求URL
  • https://wdev.wmj.com.cn/deviceApi/send
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "app_secret": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
    "device_sn": "W76C0998927",
    "data": {
        "cmd_type": "restart",
        "info": {}
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令类型:restart
data.info object 暂未使用
返回示例
//成功
{
    "code": 0,
    "data": {
        "cmd_type": "restart",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}
//失败
{
    "code": 1001,
    "msg": "网络超时"
}
返回参数说明
参数名 类型 说明
code int 调用接口错误码 0成功其他异常
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息
4.获取设备信息
  • 获取设备详细信息
请求URL
  • https://wdev.wmj.com.cn/deviceApi/send
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "app_secret": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
    "device_sn": "W76C0998927",
    "data": {
        "cmd_type": "getdevinfo",
        "info": {}
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令类型:getdevinfo
data.info object 暂未使用
返回示例
//成功
{
    "code": 0,
    "data": {
        "device_sn": "W76C0998927",
        "msg_id": 175,
        "type": 1,
        "cmd_type": "getdevinfo",
        "info": {
            "sn": "W76C0998927",
            "model": "W76C",
            "hw": "1.0.0",
            "sw": "0.0.43",
            "fwVer": "0.0.43",
            "rssi": -65,
            "doorstate": 0,
            "nonc": 0,
            "relayStatus": 0,
            "ext_button_enabled": 1,
            "code": 0,
            "msg": "OK"
        }
    }
}
//失败
{
    "code": 1002,
    "msg": "设备不在线"
}
返回参数说明
参数名 类型 说明
code int 调用接口错误码 0成功其他异常
data.info.sn string 设备序列号
data.info.model string 设备型号
data.info.hw string 硬件版本
data.info.sw string 软件版本
data.info.fwVer string 固件版本
data.info.rssi int 信号强度(dBm)
data.info.doorstate int 门状态:0=关闭,1=打开
data.info.nonc int 常开常闭模式:0=常闭,1=常开
data.info.relayStatus int 继电器持久模式:0=常闭,1=常开
data.info.ext_button_enabled int 开门按钮:0=停用,1=启用
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息
5.获取门状态
  • 获取当前门磁状态
请求URL
  • https://wdev.wmj.com.cn/deviceApi/send
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "app_secret": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
    "device_sn": "W76C0998927",
    "data": {
        "cmd_type": "getdoorstate",
        "info": {}
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令类型:getdoorstate
data.info object 暂未使用
返回示例
//成功
{
    "code": 0,
    "data": {
        "device_sn": "W76C0998927",
        "msg_id": 176,
        "type": 1,
        "cmd_type": "getdoorstate",
        "info": {
            "doorstate": 0,
            "code": 0,
            "msg": "OK"
        }
    }
}
//失败
{
    "code": 1002,
    "msg": "设备不在线"
}
返回参数说明
参数名 类型 说明
code int 调用接口错误码 0成功其他异常
data.info.doorstate int 门状态:0=关闭,1=打开
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息
6.设置常开常闭模式
  • 控制继电器常开或常闭模式
请求URL
  • https://wdev.wmj.com.cn/deviceApi/send
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "app_secret": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
    "device_sn": "W76C0998927",
    "data": {
        "cmd_type": "set_nonc",
        "info": {
            "type": 1
        }
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令类型:set_nonc
data.info.type int 模式设置:0=常闭模式,1=常开模式
返回示例
//成功
{
    "code": 0,
    "data": {
        "device_sn": "W76C0998927",
        "msg_id": 181,
        "type": 1,
        "cmd_type": "set_nonc",
        "info": {
            "nonc": 1,
            "code": 0,
            "msg": "OK"
        }
    }
}
//失败
{
    "code": 1001,
    "msg": "网络超时"
}
返回参数说明
参数名 类型 说明
code int 调用接口错误码 0成功其他异常
data.info.nonc int 当前模式:0=常闭,1=常开
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息
7.设置开门按钮
  • 启用或停用开门按钮
  • 该配置持久保存,设备重启或断电后仍然有效
  • W76C 固件 0.0.43 起提供;以 getdevinfo 回读到目标版本及 ext_button_enabled 字段为可用依据
请求URL
  • https://wdev.wmj.com.cn/deviceApi/send
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}",
    "type": 1,
    "data": {
        "cmd_type": "set_ext_button",
        "info": {
            "enable": 0
        }
    }
}
参数名 必选 类型 说明
app_id string 用户 app_id
app_secret string 用户 app_secret
device_sn string 设备序列号
data.cmd_type string 固定为 set_ext_button
data.info.enable int 0=停用,1=启用;只接受数字 0 或 1
返回示例
{
    "code": 0,
    "data": {
        "device_sn": "{{device_sn}}",
        "type": 1,
        "cmd_type": "set_ext_button",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}
行为说明
  • 默认值为 1
  • enable=0 后,开门按钮的按下、单击、长按和释放均不驱动继电器,也不上报 ext_button 事件。
  • enable=1 后,恢复开门按钮控制和事件上报。
  • 该配置不影响板载按钮,不主动改变设置命令执行前的继电器状态。
  • 设备仅在配置成功持久化后返回成功;重复设置当前值不会重复写入 Flash。
8.OTA固件升级
  • 远程升级设备固件
请求URL
  • https://wdev.wmj.com.cn/deviceApi/send
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "app_secret": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
    "device_sn": "W76C0998927",
    "data": {
        "cmd_type": "set_ota",
        "info": {
            "url": "http://ota.example.com/W76C_v0.0.5.bin"
        }
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令类型:set_ota
data.info.url string 固件下载地址,联系客服获取
返回示例
//成功
{
    "code": 0,
    "data": {
        "device_sn": "W76C0998927",
        "msg_id": 182,
        "type": 1,
        "cmd_type": "set_ota",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}
//失败
{
    "code": 1002,
    "msg": "设备不在线"
}
返回参数说明
参数名 类型 说明
code int 调用接口错误码 0成功其他异常
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息
备注
  • 固件URL必须是可公网访问的HTTP/HTTPS地址
  • 升级过程中设备会自动重启
  • 建议在设备空闲时执行升级操作
9.回调通知

通知数据将发送到用户注册的回调地址上

a. 门状态变化通知

当门磁状态发生变化时,设备会主动上报:

{
    "cmd_type": "door_state_notify",
    "device_sn": "W76Cxxxxxxxx",
    "info": {
        "doorstate": 0
    }
}
参数 类型 说明
cmd_type string door_state_notify:门状态变化通知
device_sn string 设备序列号
info.doorstate int 门状态
0:关门状态
1:开门状态

b. 串口数据通知

当设备收到串口数据时,会上报到回调地址:

{
    "cmd_type": "uart_data",
    "device_sn": "W76Cxxxxxxxx",
    "info": {
        "data": "AABBCCDDEEFF"
    }
}
参数 类型 说明
cmd_type string uart_data:串口数据通知
device_sn string 设备序列号
info.data string 串口数据(HEX字符串格式)

c. 设备上线通知

当设备连接到服务器时,会发送上线通知:

{
    "cmd_type": "online",
    "device_sn": "W76Cxxxxxxxx",
    "info": {
        "model": "W76C",
        "sw": "0.0.4",
        "rssi": -65
    }
}
参数 类型 说明
cmd_type string online:设备上线通知
device_sn string 设备序列号
info.model string 设备型号
info.sw string 软件版本
info.rssi int 信号强度(dBm)

d. 开门按钮通知

开门按钮启用且经过防抖确认按下后,设备以 type=2 主动上报一次:

{
    "device_sn": "{{device_sn}}",
    "type": 2,
    "cmd_type": "ext_button",
    "info": {
        "event": "press",
        "state": 1,
        "uptime_ms": 123456,
        "event_uid": "{{device_sn}}-2-123456-1"
    }
}
参数 类型 说明
type int 固定为 2,表示设备主动事件
cmd_type string 固定为 ext_button
info.event string 固定为 press
info.state int 固定为 1
info.uptime_ms int 本次启动后的运行毫秒数
info.event_uid string 事件唯一标识,业务服务可用于幂等去重
  • 每次物理按压只上报一次,长按和释放不重复上报。
  • ext_button_enabled=0 时不执行开门动作,也不上报该事件。
  • MQTT 离线时无法即时回调,但设备会将失败原因写入持久诊断日志。
10.查询在线状态
  • 查询设备是否联网在线
请求URL
  • https://wdev.wmj.com.cn/deviceApi/getOnLine
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "app_secret": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
    "device_sn": "W76C0998927"
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
返回示例
//成功
{
    "code": 0,
    "data": {
        "on_line": 1
    },
    "msg": "查询成功"
}
返回参数说明
参数名 类型 说明
code int 错误码 0成功其他异常
data.on_line int 在线状态:0=离线,1=在线
msg string 描述信息
11.解绑设备
  • 解绑设备,将设备和appid解除绑定关系
请求URL
  • https://wdev.wmj.com.cn/deviceApi/logout
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
    "app_secret": "kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk",
    "device_sn": "W76C1234567"
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
返回示例
//成功
{
    "code": 0,
    "msg": "解绑成功"
}
//失败
{
    "code": 1004,
    "msg": "设备未注册"
}
返回参数说明
参数名 类型 说明
code int 错误码 0成功其他异常
msg string 描述信息

+++


附录

设备序列号规则

W76C 设备序列号格式为:W76C + 7位数字

示例:W76C0998927

支持的命令类型汇总

cmd_type 说明
open 开门/触发继电器
restart 重启设备
getdevinfo 获取设备信息
getdoorstate 获取门状态
set_nonc 设置常开/常闭模式
set_ext_button 启用或停用开门按钮
set_ota OTA固件升级,请勿随意操作

回调通知类型汇总

cmd_type 说明
door_state_notify 门状态变化通知
uart_data 串口数据通知
online 设备上线通知
ext_button 开门按钮按下通知(type=2

更新日志
日期 内容
2026-08-22 【W76C 0.0.43】增加开门按钮 type=2 事件;增加 set_ext_button 启停配置和 getdevinfo.ext_button_enabled 状态回读;配置持久保存,停用后不执行开门动作或事件上报。
2025-12-16 初始版本。
作者:李汪  创建时间:2025-12-15 14:26
最后编辑:极客师傅  更新时间:2026-08-22 15:42