W76C 开发者API文档

概述

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

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


硬件与当前固件版本

硬件版本 固件系列 当前说明
1.0.0 0.0.x 旧硬件,不能使用 102.x.x 固件。
1.0.2 102.x.x 当前量产版本为 102.0.7;102.0.6 已撤下。开门鸣叫约 1 秒,上电静音。

两种硬件的固件不兼容,升级前必须确认设备硬件版本,不可仅按版本号大小选择固件。

错误码说明

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

点击下面的序号展开
1.注册设备
  • 将设备和appid、appsecret绑定
请求URL
  • https://wdev.wmj.com.cn/deviceApi/register
请求方式
  • POST
请求格式
  • json
参数
{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "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": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "W76C1234567",
    "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": "W76C1234567",
        "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": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "W76C1234567",
    "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": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "W76C1234567",
    "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": "W76C1234567",
        "msg_id": 175,
        "type": 1,
        "cmd_type": "getdevinfo",
        "info": {
            "sn": "W76C1234567",
            "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 设备型号
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": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "W76C1234567",
    "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": "W76C1234567",
        "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": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "W76C1234567",
    "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": "W76C1234567",
        "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固件升级

适用于 W76C 硬件 1.0.2,目标量产版本 102.0.7。102.0.6 已撤下,请使用 102.0.7 对应的 OTA 文件或 USB 整包。

仅升级当前版本低于 102.0.7 的同硬件设备。旧硬件应使用其对应的 0.0.x 固件,不能跨硬件升级。

请求URL

POST https://wdev.wmj.com.cn/deviceApi/send

请求示例
{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "set_ota",
    "info": {
      "hw_ver": "1.0.2",
      "sw_ver": "102.0.7",
      "url": "http://fm.wmj.com.cn/ota/W76C/HW1.0.2/W76C_HW1.0.2_V102.0.7_ota.bin"
    }
  }
}
参数 必选 类型 说明
app_id string 开发者 app_id
app_secret string 开发者 app_secret
device_sn string 已确认硬件版本的设备序列号
type number 固定为 1
data.cmd_type string 固定为 set_ota
info 中的 hw_ver 见下文 string 硬件版本,固定为 1.0.2
data.info.sw_ver 见下文 string 本次目标版本固定为 102.0.7,须高于设备当前 102.x.x 版本
data.info.url string 与硬件及目标版本匹配的上述固件下载地址

版本兼容说明:设备当前为 102.0.2 至 102.0.6 时,必须保留示例中的 hw_versw_ver。设备升级至 102.0.7 后,后续升级兼容仅提供 url,目标版本从下载地址中识别;若提供硬件或版本字段,仍须与实际目标一致。两种方式均要求使用硬件专用下载地址,且目标版本高于当前版本。

返回示例
{"code":0,"data":{"cmd_type":"set_ota","info":{"code":0,"msg":"OK"}}}

code 为接口结果,data.info.code 为设备命令结果。命令受理不代表升级完成;升级重启后须重新调用 getdevinfo,确认型号 W76C、硬件 1.0.2、固件版本已达到目标,并检查所需功能。

注意事项
  • 当前版本已达到或高于目标版本时,不重复升级或降级。
  • 保持供电和网络稳定,安排在设备空闲时升级;升级期间设备会重启。
  • 此文件为 OTA 固件,不用于 USB 整包烧录。
  • 使用对应版本发布时提供的文件大小和 SHA-256 核验文件,不使用已撤下的 OTA 文件。
  • 102.0.7 OTA 大小:669796 字节;SHA-256:218E1754F8AFE6120885B0630C991F48EF896DFE056EAB0A457723B10F9D0FCA
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": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "W76C1234567"
}
参数名 必选 类型 说明
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": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "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位数字

示例:W76C1234567

支持的命令类型汇总

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-09-10 【W76C HW1.0.2 / 102.0.7】发布量产固件,修复 OTA 升级兼容性;后续升级兼容仅传下载地址,保留硬件与目标版本校验。撤下 102.0.6 量产入口。
2026-09-10 【W76C HW1.0.2 / 102.0.6 撤下说明】先撤下该版本 OTA 文件及下载示例,随后由 102.0.7 替代量产烧录版本。请勿继续使用已撤下版本。
2026-09-10 【W76C HW1.0.2 / 102.0.6】发布新硬件量产固件及 OTA(OTA 随后撤下,见上条);改善启动、重启后联网和诊断记录稳定性;保留开门鸣叫约 1 秒、上电静音。旧硬件 0.0.x 固件保持独立。
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-09-11 17:30