本API适用于序列号开头为W767的设备,appid和appsecret请到 https://wdev.wmj.com.cn 填写手机号或邮箱登录获取。

点击下面的序号展开
1.注册设备

简要描述

将设备和appid、appsecret绑定

请求URL

https://wdev.wmj.com.cn/deviceApi/register

请求方式

POST

请求格式

json

请求参数

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}"
}
参数名 必选 类型 说明
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": "{{device_sn}}",
    "data": {
        "cmd_type": "open",
        "info": {
            "sn": "W7671234567",
            "cmd_id": "order_20260127_001",
            "user_id": "user123"
        }
    }
}
参数名 必选 类型 说明
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.cmd_id string 业务系统命令ID,回调时原样返回,用于业务追踪(v67.0.09+
data.info.user_id string 操作用户ID,回调时原样返回,用于记录开门人(v67.0.09+

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "open",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}

返回参数说明

参数名 类型 说明
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": "{{device_sn}}",
    "data": {
        "cmd_type": "set_nonc",
        "info": {
            "type": 0
        }
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令标识set_nonc
data.info.nonc_type int 0=常闭,1=常开

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "set_nonc",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}

返回参数说明

参数名 类型 说明
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": "{{device_sn}}",
    "data": {
        "cmd_type": "set_relay",
        "info": {
            "relay1": 1500
        }
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令标识set_relay
data.info.relay1 int 继电器触发时长(毫秒),默认1500

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "set_relay",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}

返回参数说明

参数名 类型 说明
code int 调用接口错误码,0成功其他异常
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": "{{device_sn}}",
    "data": {
        "cmd_type": "set_device_sound",
        "info": {
            "device_sound": 1
        }
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令标识set_device_sound
data.info.device_sound int 0=禁用蜂鸣器,1=启用蜂鸣器

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "set_device_sound",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}

返回参数说明

参数名 类型 说明
code int 调用接口错误码,0成功其他异常
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息

备注

禁用蜂鸣器后,所有需要蜂鸣器提示的操作将静音执行

6.远程配置WiFi

简要描述

远程配置设备WiFi连接信息

请求URL

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

请求方式

POST

请求格式

json

请求参数

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}",
    "data": {
        "cmd_type": "set_wifi",
        "info": {
            "ssid": "WiFi_Name",
            "passwd": "WiFi_Password"
        }
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令标识set_wifi
data.info.ssid string WiFi名称
data.info.password string WiFi密码(开放WiFi可不传)

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "set_wifi",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}

返回参数说明

参数名 类型 说明
code int 调用接口错误码,0成功其他异常
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息

备注

配置成功后设备将自动重启并连接新WiFi

7.修改密码

简要描述

修改设备Web端管理密码和开门密码

请求URL

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

请求方式

POST

请求格式

json

请求参数

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}",
    "data": {
        "cmd_type": "set_pwd",
        "info": {
            "device_pwd": "12345678",
            "admin_pwd": "admin123"
        }
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令标识set_pwd
data.info.device_pwd string 设备Web端应急开门密码
data.info.admin_pwd string 设备Web端配网管理密码

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "set_pwd",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}

返回参数说明

参数名 类型 说明
code int 调用接口错误码,0成功其他异常
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息
8.获取设备信息

简要描述

获取设备当前配置信息

请求URL

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

请求方式

POST

请求格式

json

请求参数

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}",
    "data": {
        "cmd_type": "getdevinfo",
        "info": {}
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令标识getdevinfo

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "getdevinfo",
        "info": {
            "sn": "W7671234567",
            "sw_ver": "67.0.06",
            "hw_ver": "1.0",
            "device_pwd": "12345687",
            "admin_pwd": "admin",
            "sta_ssid": "WiFi_Name",
            "sta_pwd": "WiFi_Password",
            "project": "W767",
            "net_type": "wifi",
            "iccid": "WiFi_Name",
            "imei": "AA:BB:CC:DD:EE:FF",
            "nonc": 0,
            "rssi": -45,
            "doorstate": 0,
            "relay1": 1500,
            "device_sound": 1,
            "code": 0,
            "msg": "OK"
        }
    }
}

返回参数说明

参数名 类型 说明
code int 调用接口错误码,0成功其他异常
data.info.sn string 设备序列号
data.info.sw_ver string 软件版本号
data.info → hw_ver string 硬件版本号
data.info.device_pwd string 设备开门密码
data.info.admin_pwd string Web管理密码
data.info.sta_ssid string WiFi名称
data.info.sta_pwd string WiFi密码
data.info.project string 项目型号
data.info.net_type string 网络类型(wifi)
data.info.iccid string SIM卡ICCID(WiFi模式下与sta_ssid相同)
data.info.imei string 设备MAC地址
data.info.nonc int 常开常闭模式(0=常闭,1=常开)
data.info.rssi int WiFi信号强度(dBm)
data.info.doorstate int 门状态(0=关闭,1=打开)
data.info.relay1 int 继电器触发时长(毫秒)
data.info.device_sound int 蜂鸣器开关(0=禁用,1=启用)
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息
9.获取门状态

简要描述

获取门当前开关状态

请求URL

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

请求方式

POST

请求格式

json

请求参数

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}",
    "data": {
        "cmd_type": "getdoorstate",
        "info": {}
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令标识getdoorstate

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "getdoorstate",
        "info": {
            "door_state": 0,
            "code": 0,
            "msg": "OK"
        }
    }
}

返回参数说明

参数名 类型 说明
code int 调用接口错误码,0成功其他异常
data.info.door_state int 门状态(0=关闭,1=打开)
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息
10.配置回调地址

ℹ️ 版本要求:固件版本 v67.0.09 及以上

简要描述

配置开门成功后的HTTP回调地址,设备开门成功后会自动向该地址POST通知

请求URL

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

请求方式

POST

请求格式

json

请求参数

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}",
    "data": {
        "cmd_type": "set_callback",
        "info": {
            "enabled": 1,
            "url": "https://your-server.com/door_callback"
        }
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令标识set_callback
data.info.enabled int 0=禁用回调,1=启用回调
data.info.url string 回调地址(支持HTTP/HTTPS)

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "set_callback",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}

返回参数说明

参数名 类型 说明
code int 调用接口错误码,0成功其他异常
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息

备注

  • 回调地址需保证可访问,设备会自动重试直到成功
  • 最多保存100条未成功的回调记录,设备重启后继续重试
  • 推荐使用HTTPS地址

查询回调配置

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}",
    "data": {
        "cmd_type": "get_callback",
        "info": {}
    }
}

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "get_callback",
        "info": {
            "enabled": 1,
            "url": "https://your-server.com/door_callback",
            "pending_count": 0,
            "success_total": 15,
            "fail_total": 0,
            "code": 0,
            "msg": "OK"
        }
    }
}
10.1 开门回调通知

ℹ️ 版本要求:固件版本 v67.0.09 及以上

简要描述

设备开门成功后,自动向配置的回调地址POST通知

请求URL

由业务方配置的回调地址(通过set_callback设置)

请求方式

POST

请求格式

json

回调内容

{
    "device_sn": "{{device_sn}}",
    "msg_id": 124,
    "event": "door_opened",
    "open_type": "mqtt",
    "timestamp": 1706345678,
    "rssi": -56,
    "cmd_id": "order_20260127_001",
    "user_id": "user123",
    "extra": {
        "delaytime": 1000
    },
    "callback_id": 4
}
参数名 类型 说明
device_sn string 设备序列号
msg_id int 硬件云消息ID
event string 事件类型,固定为door_opened
open_type string 开门方式(mqtt/ble等)
timestamp int 设备运行时间戳(秒)
rssi int WiFi信号强度(dBm)
cmd_id string 业务系统命令ID(开门时传入,用于业务追踪)
user_id string 操作用户ID(开门时传入)
extra object 其他额外信息
callback_id int 回调任务ID(用于去重)

业务方响应要求

业务方接收到回调后,需返回HTTP状态码 200,设备才认为回调成功。

开门时传递业务参数

在开门接口中传入cmd_iduser_id,回调时会原样返回:

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}",
    "data": {
        "cmd_type": "open",
        "info": {
            "cmd_id": "order_20260127_001",
            "user_id": "user123"
        }
    }
}
参数名 必选 类型 说明
data.info.cmd_id string 业务系统命令ID,回调时原样返回
data.info.user_id string 操作用户ID,回调时原样返回

备注

  • 回调失败会自动重试,最多保存100条待回调记录
  • 设备重启后会继续重试未成功的回调
  • 建议业务方通过cmd_id做幂等处理,避免重复处理
11.重启设备

简要描述

远程重启设备

请求URL

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

请求方式

POST

请求格式

json

请求参数

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}",
    "data": {
        "cmd_type": "restart",
        "info": {}
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令标识restart

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "restart",
        "info": {
            "code": 0,
            "msg": "OK"
        }
    }
}

返回参数说明

参数名 类型 说明
code int 调用接口错误码,0成功其他异常
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息

备注

设备收到命令后将在3秒内重启

12.OTA固件升级

简要描述

远程升级设备固件

请求URL

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

请求方式

POST

请求格式

json

请求参数

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}",
    "data": {
        "cmd_type": "set_ota",
        "info": {
            "url": "http://fm.wmj.com.cn/ota/W767/W767_67.0.09.bin",
            "hw_ver": "1.0.0",
            "sw_ver": "67.0.09"
        }
    }
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号
data.cmd_type string 命令标识set_ota
data.info.url string 固件下载URL地址(HTTP/HTTPS)
data.info.sw_ver string 目标软件版本号
data.info → hw_ver string 硬件版本号

返回示例

{
    "code": 0,
    "data": {
        "cmd_type": "set_ota",
        "info": {
            "code": 0,
            "msg": "开始升级"
        }
    }
}

返回参数说明

参数名 类型 说明
code int 调用接口错误码,0成功其他异常
data.info.code int 业务错误码,0成功其他异常
data.info.msg string 业务错误信息

备注

  • 升级过程中设备将自动重启
  • 请确保固件URL可访问且固件文件正确
  • 建议使用HTTPS链接确保固件安全
13.解绑设备

简要描述

删除解绑,将设备从当前appid解绑

请求URL

https://wdev.wmj.com.cn/deviceApi/logout

请求方式

POST

请求格式

json

请求参数

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}"
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号

返回示例

{
    "code": 0,
    "msg": "解绑成功"
}

返回参数说明

参数名 类型 说明
code int 错误码,0成功其他异常
msg string 描述信息
14.蓝牙开门接口

(1) 获取临时密码

通过云端API获取蓝牙开门所需的临时密码

请求URL

https://wdev.wmj.com.cn/deviceApi/TPassword

请求方式

POST

请求格式

json

请求参数

{
    "app_id": "{{wmjv2appid}}",
    "app_secret": "{{wmjv2appsecret}}",
    "device_sn": "{{device_sn}}"
}
参数名 必选 类型 说明
app_id string 用户app_id
app_secret string 用户app_secret
device_sn string 设备序列号

返回示例

{
    "code": 0,
    "data": {
        "pwd": "03057414",
        "roll_code": 26
    }
}

返回参数说明

参数名 类型 说明
code int 错误码,0成功其他异常
data.pwd string 临时开门密码(用于蓝牙开门)
data.roll_code int 当前滚动码值(0-999循环)

备注

  • 临时密码一次性有效,开门成功后自动失效
  • 后获取的密码开门成功后,之前获取的密码将失效
  • 开门记录会回调到配置的回调URL

(2) 蓝牙开门操作

使用获取到的临时密码通过蓝牙开门

服务UUID

  • 开锁服务: FEE0
  • 写特性: FEE1 (接收开门命令)
  • 通知特性: FEE2 (返回执行结果)

请求格式

通过蓝牙向特性 FEE1 写入JSON格式数据:

{
    "cmd_type": "ble_pwd_open_lock",
    "info": {
        "data": "03057414"
    }
}
参数名 必选 类型 说明
cmd_type string 命令类型,固定为ble_pwd_open_lock
info.data string 临时密码(从云端API获取的pwd字段)

返回格式

设备通过特性 FEE2 的通知返回结果:

{
    "state": 1,
    "info": {
        "code": 0,
        "msg": "Unlock success"
    }
}
参数名 类型 说明
state int 开门状态(0=失败,1=成功)
info.code int 业务错误码(0=成功,-1=失败)
info.msg string 执行结果描述

(3) 自行开发小程序的接入顺序

蓝牙开门与配网、硬件配置使用不同的服务和特征值。不要选择发现列表中的第一个可写特征,也不要复用配网流程中的服务及特征值。

用途 服务 UUID 特征 UUID 操作
开门指令 FEE0 FEE1 Write
开门结果 FEE0 FEE2 Notify
硬件配置(不是开门) 0D38 33FF 不用于普通开门接入

完整 UUID 分别为:

  • 服务:0000FEE0-0000-1000-8000-00805F9B34FB
  • 写特征:0000FEE1-0000-1000-8000-00805F9B34FB
  • 通知特征:0000FEE2-0000-1000-8000-00805F9B34FB
  1. 连接目标设备后发现服务及特征,按 UUID 精确匹配;比较时统一大小写及短 UUID/完整 UUID 表示方式,不依赖数组下标。
  2. 先注册通知接收回调,再订阅 FEE0/FEE2;等待订阅成功后才发送开门请求。
  3. 由业务后端鉴权后调用上述临时密码接口,获取当前目标设备的 data.pwd。开发者 app_secret 只保存在后端,不内置到小程序,也不通过蓝牙发送。
  4. 将上述 ble_pwd_open_lock JSON 编码为 UTF-8,写入 FEE0/FEE1info.data 必须是字符串,使用接口实际返回的密码并保留前导零;示例密码不能直接用于真实设备。
  5. 蓝牙报文直接以 cmd_typeinfo 为顶层字段,不要套用云端命令的 app_iddevice_sn、外层 data 等包装。
  6. 仅处理目标设备、目标服务及 FEE2 的结果通知;以 state=1info.code=0 判断设备接受并执行成功。写入 API 成功只代表写入完成,不代表门已打开;物理门状态应另行核验。

报文长度:当前 IDF 固件要求每次写入包含完整 JSON,没有应用层分片拼接。普通 ATT 写入容量受协商 MTU 限制(通常为 MTU 减 3 字节)。发送前确认实际写入容量足以容纳完整 UTF-8 报文;不要把 JSON 拆成多次独立写入。若平台无法提供足够容量,应报告不支持并排查兼容性,不要循环发送残缺报文。

(4) 蓝牙错误排查

以下错误文案适用于返回这些文案的 W767 IDF 固件;旧固件返回内容可能不同。

{"info":{"code":-1,"msg":"Hardware config rejected"},"state":0}

Hardware config rejected 表示硬件配置请求被拒绝,不等同于开门临时密码错误。普通开门流程出现此结果时,优先检查是否误写 0D38/33FF,或把硬件配置通知错误地当作开门通知。

处理方式是修正服务、写特征及通知特征,不是补填硬件配置密钥。普通蓝牙开门不需要提交硬件配置参数。

现象 排查步骤
Hardware config rejected 检查实际写入 UUID 与通知来源;开门必须写 FEE0/FEE1 并监听 FEE0/FEE2
Unlock failed 已进入开门处理;检查目标设备是否对应、临时密码是否正确、JSON 层级及字段类型。仍失败时联系支持排查设备执行状态,不要只归因于密码
Invalid request 检查 UTF-8 编码、完整 JSON、报文长度,是否拆成了多次独立写入
写入成功但没有结果 检查通知订阅是否成功、是否监听目标设备的 FEE2,并设置结果等待超时;不要自动无限重试

若仍不能接入,请提供固件版本、手机系统与机型、实际服务/写特征/通知特征 UUID、发送字节长度及脱敏 JSON。不要提交真实临时密码、开发者密钥或硬件配置密钥。

安全机制: - 滚动码机制确保每次密码唯一 - 密码使用后滚动码自动递增 - 成功使用后获取的密码后,之前的密码可能无法继续使用;每次开门请重新获取临时密码,不缓存复用

+++

设备硬件规格

  • WiFi: 2.4GHz IEEE 802.11 b/g/n
  • 蓝牙: BLE 5.0
  • 继电器: 1路控制
  • 门磁检测: 实时监测门状态
  • 蜂鸣器: 提示音

固件版本

当前固件版本: 67.0.09

技术支持

如有问题请访问: https://wdev.wmj.com.cn


更新日志
日期 内容
2026-09-11 完善蓝牙开门 UUID 对照、小程序接入顺序、通知结果判断及完整报文要求,补充 Hardware config rejected 等错误排查与密钥保护说明,规范接口凭据示例。
2026-01-27 v67.0.09:新增开门回调功能及开门命令追踪参数。
未注明 v67.0.06:初始版本。
作者:极客师傅  创建时间:2025-03-18 23:40
最后编辑:极客师傅  更新时间:2026-09-11 17:30