W76D(WiFi面板机API)
W76D 设备接口文档
点击下面的序号展开
1.注册设备
- 将设备和appid、appsecret绑定
请求URL
https://wdev.wmj.com.cn/deviceApi/register
请求方式
- POST
请求格式
- json
参数
{
"app_id": "",
"app_secret": "",
"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.开门
- 触发继电器远程开门,可选播报指定文本。启用开门 HTTP 回调后,返回中会同时给出回调排队状态和回调编号。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求方式
POST
请求格式
json
请求示例
{
"app_id":"",
"app_secret":"",
"device_sn":"W76D12345678",
"data":{
"cmd_type":"open",
"info":{
"tts":"欢迎光临",
"volume":80,
"cmd_id":"order-20260825-001",
"user_id":"user-1001"
}
}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| app_id | 是 | string | 用户 app_id |
| app_secret | 是 | string | 用户 app_secret |
| device_sn | 是 | string | 设备序列号 |
| data.cmd_type | 是 | string | 固定为 open |
| data.info.tts | 否 | string | 本次开门需要播报的文本;不传时仅开门,不额外播报 |
| data.info.volume | 否 | integer | 本次播报音量 |
| data.info.volume_percent | 否 | integer | 精确百分比音量,范围 0-100,优先于 volume |
| data.info.cmd_id | 否 | string | 客户业务命令编号;原样带入开门 HTTP 回调,便于关联业务请求 |
| data.info.user_id | 否 | string | 用户或操作员标识;原样带入开门 HTTP 回调 |
返回示例
{
"code":0,
"data":{
"cmd_type":"open",
"info":{
"duration_ms":1500,
"relay_triggered":true,
"callback_queued":true,
"callback_id":1839869521,
"err_code":0,
"code":0,
"msg":"door opened"
}
}
}
| 返回字段 | 类型 | 说明 |
|---|---|---|
| data.info.duration_ms | integer | 继电器动作时间,单位毫秒 |
| data.info.relay_triggered | boolean | 是否实际触发继电器;仅鸣叫模式下可能为 false |
| data.info.callback_queued | boolean | 是否已将本次成功开门加入 HTTP 回调队列;未启用回调时为 false |
| data.info.callback_id | integer | 本次开门回调编号;仅在成功排队时返回,可用于接收端去重 |
3.重启设备
- 重启设备
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求方式
- POST
请求格式
- json
参数
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678",
"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": ""
}
}
}
//失败
{
"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
请求示例
{
"app_id":"",
"app_secret":"",
"device_sn":"W76D12345678",
"data":{
"cmd_type":"set_audio",
"info":{
"pass_tts":"开门成功",
"no_pass_tts":"开门失败",
"launch_tts":"服务器已连接",
"boot_tts":"系统启动",
"card_success_tts":"刷卡成功",
"card_fail_tts":"无效卡片",
"password_success_tts":"密码正确",
"password_fail_tts":"密码错误",
"network_connected_tts":"网络已连接",
"network_failed_tts":"网络连接失败",
"volume":7
}
}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| data.cmd_type | 是 | string | 固定为 set_audio |
| data.info.pass_tts | 否 | string | 开门成功提示 |
| data.info.no_pass_tts | 否 | string | 开门失败提示 |
| data.info.launch_tts | 否 | string | 服务器连接成功提示 |
| data.info.boot_tts | 否 | string | 启动提示 |
| data.info.card_success_tts / card_fail_tts | 否 | string | 刷卡成功/失败提示 |
| data.info.password_success_tts / password_fail_tts | 否 | string | 密码成功/失败提示 |
| data.info.network_connected_tts / network_failed_tts | 否 | string | 网络连接成功/失败提示 |
| data.info.volume | 否 | integer | 1-7 按七级音量映射;其他 0-100 数值按百分比处理 |
返回示例
{
"code":0,
"data":{
"cmd_type":"set_audio",
"info":{"updated":10,"err_code":0,"code":0,"msg":""}
}
}
updated 表示本次成功更新的提示语数量。
5.控制继电器常通常断
- 设置继电器保持状态。该状态会保存,设备重启后继续生效。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求示例
{
"app_id":"",
"app_secret":"",
"device_sn":"W76D12345678",
"data":{"cmd_type":"on_off","info":{"status":1}}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| data.cmd_type | 是 | string | 固定为 on_off |
| data.info.status | 是 | integer | 1:继电器保持动作;0:取消保持并恢复当前常开/常闭配置对应的空闲状态 |
返回示例
{
"code":0,
"data":{"cmd_type":"on_off","info":{"err_code":0,"code":0,"msg":""}}
}
6.获取设备信息
- 获取设备身份、门禁配置、资源状态、网络恢复统计及升级状态。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求示例
{
"app_id":"",
"app_secret":"",
"device_sn":"W76D12345678",
"data":{"cmd_type":"getdevinfo","info":{}}
}
返回示例
{
"code":0,
"data":{
"device_sn":"W76D12345678",
"cmd_type":"getdevinfo",
"info":{
"sw_ver":"760.1.4",
"hw_ver":"2.0.0",
"project":"W76D",
"net_type":"wifi",
"iccid":"MyWiFi",
"imei":"20:6E:F1:12:34:56",
"volume_percent":50,
"device_pwd":"********",
"admin_pwd":"********",
"switch_status":0,
"doorstate":1,
"door_state":1,
"card_sum":0,
"card_max":1000,
"pwd_sum":0,
"pwd_max":1000,
"access_db_healthy":true,
"nonc_type":0,
"workmode":0,
"es_status":1,
"relay1":1500,
"free_heap":8320000,
"min_free_heap":8290000,
"internal_heap_free":78000,
"internal_heap_largest":31000,
"uptime_seconds":3600,
"wifi_total_disconnects":3,
"wifi_total_driver_resets":0,
"time_synced":true,
"fw_ota_in_progress":false,
"err_code":0,
"code":0,
"msg":""
}
}
}
主要返回字段
| 字段 | 类型 | 说明 |
|---|---|---|
| sw_ver / hw_ver / project | string | 软件版本、硬件版本、项目标识 |
| net_type | string | 网络类型,W76D 当前为 wifi |
| iccid | string | 兼容字段,WiFi 设备返回当前 SSID |
| imei | string | 兼容字段,WiFi 设备返回 MAC 地址 |
| volume / volume_percent | integer | 兼容音量值及精确百分比音量 |
| device_pwd / admin_pwd | string | 设备密码和管理密码,属于敏感信息,请妥善保护 API 凭据 |
| switch_status / doorstate / door_state | integer | 继电器保持状态和门状态 |
| card_sum / card_max | integer | 当前卡片数量和最大容量 |
| pwd_sum / pwd_max | integer | 当前密码数量和最大容量 |
| access_db_healthy | boolean | 门禁数据库是否健康;为 false 时应停止新增并检查设备 |
| nonc_type / workmode / es_status / relay1 | integer | 常开常闭、工作模式、出门开关和继电器动作时间 |
| free_heap / min_free_heap | integer | 总可用内存及启动后的最低可用内存 |
| internal_heap_free / internal_heap_largest | integer | 内部内存可用量和最大连续块 |
| uptime_seconds / reset_reason | integer | 运行时间和最近重启原因 |
| wifi_* | integer | WiFi 重连、断线和驱动恢复统计 |
| audio* / schedule* / fwota* | 多种 | 音频、定时任务和固件升级状态 |
设备信息字段会随固件能力增加;客户端应忽略无法识别的扩展字段。
7.二维码设置
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求示例
{
"app_id":"",
"app_secret":"",
"device_sn":"W76D12345678",
"data":{
"cmd_type":"set_qrcode",
"info":{"qrcode":"https://www.wmj.com.cn","mode":"passive"}
}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| data.cmd_type | 是 | string | 固定为 set_qrcode |
| data.info.qrcode | 条件必选 | string | 二维码内容,最多 256 字节;兼容字段名 qrcode_data |
| data.info.mode | 条件必选 | string/integer | active/0、passive/1、both/2;内容和模式至少传一个 |
返回示例
{
"code":0,
"data":{"cmd_type":"set_qrcode","info":{"err_code":0,"code":0,"msg":""}}
}
8.卡管理
- 支持添加、删除、修改、查询、清空及获取卡片总数。
card_add重复添加相同卡号时幂等成功,不覆盖原有效期;修改有效期请使用card_edit。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求示例
// 添加卡片
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"card_add","info":{"card_id":"27598FAF","start_time":0,"end_time":2147483647}}
}
// 修改卡片有效期
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"card_edit","info":{"card_id":"27598FAF","start_time":1676904446,"end_time":1710662359}}
}
// 删除卡片
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"card_del","info":{"card_id":"27598FAF"}}
}
// 获取总数
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"card_sum","info":{}}
}
// 查询单卡
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"card_find","info":{"card_id":"27598FAF"}}
}
// 分页查询
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"card_find","info":{"page":0,"page_size":50}}
}
// 清空所有卡片
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"card_clr","info":{}}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| data.cmd_type | 是 | string | card_add、card_edit、card_del、card_find、card_sum、card_clr |
| data.info.card_id | 按命令 | string | 卡号,推荐使用 8 位十六进制字符串 |
| data.info.start_time / end_time | 否 | integer | Unix 时间戳,默认 0 / 2147483647 |
| data.info.page / page_size | 分页查询时 | integer | 页码从 0 开始;每页默认 50,最大 100 |
添加返回示例
{
"code":0,
"data":{"cmd_type":"card_add","info":{"already_exists":false,"card_sum":1,"err_code":0,"code":0,"msg":""}}
}
already_exists=true 表示卡号原本已存在;此时返回成功且原有效期保持不变。查询返回字段为 card 或分页字段 cards/total/page/page_size;总数接口返回 card_sum/card_max。
9.设备发卡模式
- 开启后,设备会把现场刷到的卡片加入本地卡库;超时后自动退出,也可主动关闭。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求示例
{
"app_id":"",
"app_secret":"",
"device_sn":"W76D12345678",
"data":{"cmd_type":"device_add_card","info":{"enable":1,"timeout":60,"start_time":0,"end_time":2147483647}}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| data.info.enable | 是 | integer | 1 开启,0 关闭;兼容字段 state |
| data.info.timeout | 否 | integer | 超时秒数,设备限制为 10-300,默认 60 |
| data.info.start_time / end_time | 否 | integer | 新卡默认有效期 |
返回示例
{
"code":0,
"data":{"cmd_type":"device_add_card","info":{"state":1,"timeout":60,"err_code":0,"code":0,"msg":""}}
}
发卡成功后会上报 add_card_notify,见第 18 节。
10.密码管理
- 密码管理:
添加、删除、修改、查询、清空、获取密码总数 pwd_add仅用于新增密码。相同密码已存在时按幂等成功返回,不会覆盖原有效期;需要修改有效期时请使用pwd_edit。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求方式
POST
请求格式
json
请求示例
// 添加密码
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678",
"data": {
"cmd_type": "pwd_add",
"info": {
"pwd": "123456",
"start_time": 1676904446,
"end_time": 1710662359
}
}
}
// 修改已有密码的有效期
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678",
"data": {
"cmd_type": "pwd_edit",
"info": {
"pwd": "123456",
"start_time": 0,
"end_time": 2147483647
}
}
}
// 删除密码
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678",
"data": {
"cmd_type": "pwd_del",
"info": {
"pwd": "123456"
}
}
}
// 清空所有密码
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678",
"data": {
"cmd_type": "pwd_clr",
"info": {}
}
}
// 获取密码总数
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678",
"data": {
"cmd_type": "pwd_sum",
"info": {}
}
}
// 查询单个密码
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678",
"data": {
"cmd_type": "pwd_find",
"info": {
"pwd": "123456"
}
}
}
// 查询所有密码(分页)
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678",
"data": {
"cmd_type": "pwd_find",
"info": {
"page": 0,
"page_size": 50
}
}
}
参数说明
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| app_id | 是 | string | 接口参数:用户 app_id |
| app_secret | 是 | string | 接口参数:用户 app_secret |
| device_sn | 是 | string | 接口参数:设备序列号 |
| data.cmd_type | 是 | string | 命令类型:pwd_add 新增、pwd_del 删除、pwd_edit 修改、pwd_clr 清空、pwd_sum 获取总数、pwd_find 查询 |
| data.info.pwd | 新增、删除、修改、单个查询时必选 | string | 4-8 位数字密码 |
| data.info.start_time | 否 | integer | 启用时间(Unix 时间戳),默认 0 |
| data.info.end_time | 否 | integer | 停用时间(Unix 时间戳),默认 2147483647 |
| data.info.page | 分页查询时可选 | integer | 页码,从 0 开始 |
| data.info.page_size | 分页查询时可选 | integer | 每页数量,默认 50,最大 100 |
返回示例
// 新增密码成功
{
"code": 0,
"data": {
"cmd_type": "pwd_add",
"info": {
"already_exists": false,
"pwd_sum": 1,
"err_code": 0,
"code": 0,
"msg": ""
}
}
}
// 重复新增同一密码:幂等成功,原有效期保持不变
{
"code": 0,
"data": {
"cmd_type": "pwd_add",
"info": {
"already_exists": true,
"pwd_sum": 1,
"err_code": 0,
"code": 0,
"msg": ""
}
}
}
// 查询单个密码成功
{
"code": 0,
"data": {
"cmd_type": "pwd_find",
"info": {
"code": 0,
"msg": "",
"pwd": {
"pwd": "123456",
"start_time": 1676904446,
"end_time": 1710662359
}
}
}
}
// 分页查询成功
{
"code": 0,
"data": {
"cmd_type": "pwd_find",
"info": {
"code": 0,
"msg": "",
"total": 2,
"page": 0,
"page_size": 50,
"pwds": [
{
"pwd": "123456",
"start_time": 1676904446,
"end_time": 1710662359
},
{
"pwd": "654321",
"start_time": 0,
"end_time": 2147483647
}
]
}
}
}
// 接口调用失败
{
"code": 1001,
"msg": "网络超时"
}
返回参数说明
| 参数名 | 必有 | 类型 | 说明 |
|---|---|---|---|
| code | 是 | int | 接口错误码,0 表示成功,其他值表示异常 |
| data.info.code | 是 | int | 业务错误码,0 表示成功,其他值表示失败 |
| data.info.err_code | 否 | int | 与业务错误码一致 |
| data.info.msg | 是 | string | 业务结果说明 |
| data.info.already_exists | pwd_add 返回 | boolean | 是否为已存在密码;为 true 时原有效期不变 |
| data.info.pwd_sum | 否 | int | 当前密码总数 |
| data.info.pwd_max | 否 | int | 最大密码数 |
| data.info.pwd | 否 | object | 单密码查询结果 |
| data.info.total | 否 | int | 分页查询的总密码数 |
| data.info.page | 否 | int | 当前页码 |
| data.info.page_size | 否 | int | 每页数量 |
| data.info.pwds | 否 | array | 分页密码列表 |
11.继电器设置
- 设置每次开门时继电器动作持续时间。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求示例
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"set_relay","info":{"relay_time":3000}}
}
relay_time 必选,单位毫秒,有效范围 100-60000。
返回示例
{
"code":0,
"data":{"cmd_type":"set_relay","info":{"relay_time":3000,"err_code":0,"code":0,"msg":""}}
}
12.出门开关设置
- 启用或关闭出门开关检测。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求示例
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"set_es","info":{"es_status":1}}
}
es_status 必选:1 开启,0 关闭。
返回示例
{
"code":0,
"data":{"cmd_type":"set_es","info":{"es_status":1,"err_code":0,"code":0,"msg":""}}
}
13.音量设置
- 设置设备全局音量。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求示例
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"set_volume","info":{"volume_percent":80}}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| data.info.volume_percent | 二选一 | integer | 推荐字段,精确百分比音量 0-100 |
| data.info.volume | 二选一 | integer | 兼容字段:0-10 映射为 0%-100%,11-100 按百分比处理 |
返回示例
{
"code":0,
"data":{"cmd_type":"set_volume","info":{"volume_percent":80,"err_code":0,"code":0,"msg":""}}
}
14.WiFi配置
- 保存新的 WiFi 配置,设备回复成功后约 1.2 秒自动重启并连接新网络。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求示例
{
"app_id":"","app_secret":"","device_sn":"W76D12345678",
"data":{"cmd_type":"set_wifi","info":{"ssid":"MyWiFi","password":"12345678"}}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| data.info.ssid | 是 | string | WiFi SSID,UTF-8 编码后 1-32 字节;兼容字段 wifi_name |
| data.info.password | 否 | string | WiFi 密码,最多 63 字节;开放网络可传空字符串;兼容字段 wifi_pwd |
返回示例
{
"code":0,
"data":{"cmd_type":"set_wifi","info":{"ssid":"MyWiFi","ssid_len":6,"err_code":0,"code":0,"msg":"wifi saved, restarting"}}
}
错误的 WiFi 配置可能导致设备离线,请先确认 SSID 和密码正确。
15.OTA升级
- OTA 指令成功仅表示设备接受升级任务;最终应在设备重启并重新上线后,通过
getdevinfo核对目标版本。
请求URL
https://wdev.wmj.com.cn/deviceApi/send
完整请求示例
{
"app_id":"",
"app_secret":"",
"device_sn":"W76D12345678",
"type":1,
"data":{
"cmd_type":"set_ota",
"info":{
"hw_ver":"2.0.0",
"sw_ver":"760.1.4",
"url":"http://fm.wmj.com.cn/ota/W76D/firmware_760.1.4.bin"
}
}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| type | 是 | integer | 固定为 1 |
| hw_ver(位于 data.info) | 是 | string | 必须与设备硬件版本一致 |
| data.info.sw_ver | 是 | string | 目标软件版本,必须高于当前版本 |
| data.info.url | 是 | string | 可直接下载的应用 OTA 文件地址 |
设备会拒绝同版本、降级、硬件版本不匹配、空 URL,以及文件名包含 _full.bin、_factory_4MB.bin、_4MB_complete.bin 的完整镜像。
返回示例
{
"code":0,
"data":{"cmd_type":"set_ota","info":{"err_code":0,"code":0,"msg":""}}
}
16.重置设备
- 设备重置,恢复出厂设置
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求方式
- POST
请求格式
- json
参数
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678",
"data": {
"cmd_type": "reset",
"info": {}
}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| app_id | 是 | string | 用户app_id |
| app_secret | 是 | string | 用户app_secret |
| device_sn | 是 | string | 设备序列号 |
| data.cmd_type | 是 | string | 重置命令reset |
| data.info | 是 | object | 空对象 |
返回示例
//成功
{
"code": 0,
"data": {
"cmd_type": "reset",
"info": {
"code": 0,
"msg": ""
}
}
}
//失败
{
"code": 1001,
"msg": "网络超时"
}
返回参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 调用接口错误码 0成功其他异常 |
| data.info.code | int | 业务错误码,0成功其他异常 |
| data.info.msg | string | 业务错误信息 |
备注
- 重置操作会清空所有卡片、密码、WiFi配置等
- 设备会恢复到出厂默认设置
- 操作完成后设备自动重启
17.获取门状态
- 获取当前门磁状态
请求URL
https://wdev.wmj.com.cn/deviceApi/send
请求方式
- POST
请求格式
- json
参数
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678",
"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": {
"code": 0,
"msg": "",
"doorstate": 0,
"door_state": 0
}
}
}
//失败
{
"code": 1001,
"msg": "网络超时"
}
返回参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 调用接口错误码 0成功其他异常 |
| data.info.code | int | 业务错误码,0成功其他异常 |
| data.info.msg | string | 业务错误信息 |
| data.info.doorstate | int | 门状态(0=关闭, 1=打开) |
| data.info.door_state | int | 门状态(兼容字段) |
18.设备主动通知
设备会通过设备消息通道主动上报门状态、出门开关、设备发卡以及刷卡、键盘、蓝牙访问事件。本节描述的是设备消息,不是设备直接发送到客户服务器的 HTTP 回调;开门 HTTP 回调请参见第 19、20 节。
a. 门状态变化
{
"cmd_type":"door_state_notify",
"type":2,
"device_sn":"W76D12345678",
"info":{"state":0}
}
info.state:0 关闭,1 打开。
b. 出门开关触发
{
"cmd_type":"exitopened",
"type":2,
"device_sn":"W76D12345678",
"info":{"status":1}
}
c. 刷卡访问事件
{
"type":"card",
"uid":"27598FAF",
"status":"success"
}
失败时 status 为 failed,并带 reason:not_registered、not_started、expired 或 relay_error。
d. 键盘或蓝牙密码访问事件
{
"type":"keypad",
"status":"failed",
"reason":"invalid_password"
}
type 可为 keypad 或 ble;成功时 status=success,失败原因包括 invalid_password、invalid_temporary_password 或 relay_error。
e. 设备发卡成功
{
"cmd_type":"add_card_notify",
"type":2,
"device_sn":"W76D12345678",
"info":{"card_id":"B6DC7FA0","start_time":0,"end_time":2147483647}
}
刷卡、键盘和蓝牙访问事件的上述 JSON 为设备上报体;平台向客户服务器转发时的最终结构,以平台回调配置为准。
19.开门回调配置
- 配置设备直连的开门 HTTP/HTTPS 回调地址。配置保存在设备中,重启后继续生效。
- 仅成功开门会生成回调,包括远程、键盘、刷卡、蓝牙、AP 应急开门和出门开关。
设置回调
{
"app_id":"",
"app_secret":"",
"device_sn":"W76D12345678",
"data":{
"cmd_type":"set_callback",
"info":{
"url":"https://example.com/device/open-callback",
"enabled":true
}
}
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| data.cmd_type | 是 | string | 固定为 set_callback |
| data.info.url | 启用时是 | string | 接收回调的完整 HTTP 或 HTTPS 地址,最长 255 字节 |
| data.info.enabled | 是 | boolean | true 启用,false 停用 |
兼容字段:callback_url 等同于 url,callback_enabled 等同于 enabled。停用时可将地址留空;已保存但尚未发送成功的任务会暂停,重新启用后继续发送。
查询回调
{
"app_id":"",
"app_secret":"",
"device_sn":"W76D12345678",
"data":{
"cmd_type":"get_callback",
"info":{}
}
}
查询返回示例
{
"code":0,
"data":{
"cmd_type":"get_callback",
"info":{
"url":"https://example.com/device/open-callback",
"enabled":true,
"pending":0,
"success_total":12,
"fail_total":1,
"dropped_total":0,
"storage_healthy":true,
"code":0,
"err_code":0,
"msg":"ok"
}
}
}
| 返回字段 | 类型 | 说明 |
|---|---|---|
| data.info.pending | integer | 等待发送或重试的回调数量 |
| data.info.success_total | integer | 累计发送成功数量 |
| data.info.fail_total | integer | 累计发送失败次数;同一条回调重试失败会重复计数 |
| data.info.dropped_total | integer | 因队列容量等原因未能保存的累计数量 |
| data.info.storage_healthy | boolean | 回调持久化存储是否正常 |
20.开门HTTP回调通知
设备成功开门后,向已配置地址发送 POST 请求,Content-Type 为 application/json。
请求头
| 请求头 | 说明 |
|---|---|
| X-Device-Callback | 固定为 W76D |
| X-Callback-Id | 本次回调编号,与请求体 callback_id 一致 |
请求体示例
{
"device_sn":"W76D12345678",
"msg_id":50,
"event":"door_opened",
"open_type":"mqtt",
"timestamp":1787643900,
"uptime_seconds":62,
"rssi":-61,
"cmd_id":"order-20260825-001",
"user_id":"user-1001",
"extra":{"delaytime":1500},
"callback_id":1839869521
}
| 字段 | 类型 | 说明 |
|---|---|---|
| device_sn | string | 设备序列号 |
| msg_id | integer | 设备消息序号 |
| event | string | 固定为 door_opened |
| open_type | string | 开门来源:mqtt、keypad、card、ble、ap 或 exit_button |
| timestamp | integer | 设备当前 Unix 时间戳;设备尚未完成校时时可能为 0 |
| uptime_seconds | integer | 设备本次启动后的运行秒数 |
| rssi | integer | 当前 WiFi 信号强度,单位 dBm |
| cmd_id | string | 远程开门请求传入的业务命令编号;其它开门来源可能没有此字段 |
| user_id | string | 远程开门请求传入的用户标识;其它开门来源可能没有此字段 |
| extra | object | 与开门来源相关的附加信息 |
| callback_id | integer | 稳定的回调编号,重试时保持不变;接收端应按此字段幂等去重 |
客户服务器返回任意 2xx 状态码视为成功。连接失败、超时或非 2xx 时,设备按指数退避重试,最长间隔 1 小时;任务会持久保存,设备重启后继续重试。接收端应尽快响应并使用 callback_id 去重。
21.解绑设备
- 解绑设备,将设备和appid解除绑定关系
请求URL
https://wdev.wmj.com.cn/deviceApi/logout
请求方式
- POST
请求格式
- json
参数
{
"app_id":"",
"app_secret":"",
"device_sn": "W76D12345678"
}
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| app_id | 是 | string | 用户app_id |
| app_secret | 是 | string | 用户app_secret |
| device_sn | 是 | string | 设备序列号 |
返回示例
{
"code": 0,
"msg": "解绑成功"
}
返回参数说明
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | int | 错误码 0成功其他异常 |
| msg | string | 描述信息 |
更新日志
| 日期 | 内容 |
|---|---|
| 2026-08-25 | 【760.1.6】修正回调完成标记异常时成功统计可能重复的问题;完成从 760.1.5 到 760.1.6 的真实 OTA、自动回连和 HTTP 204 回调复测。 |
| 2026-08-25 | 【760.1.5】新增成功开门 HTTP/HTTPS 回调:覆盖远程、键盘、刷卡、蓝牙、AP 应急开门和出门开关,支持持久化队列、失败退避重试、重启续传及 callback_id 幂等去重。 |
| 2026-08-15 | 【文档】完成 W76D 760.1.4 接口审计与真机回归:修正开门和设备信息返回字段、卡片完整操作示例、音量映射、继电器范围、WiFi 重启行为、二维码模式、OTA 拒绝条件及回调结构。 |
| 2026-08-14 | 【760.1.4】优化键盘密码验证结果显示:开门成功后保留绿色成功提示,验证失败时保留醒目的错误提示,避免确认键松开后结果立即消失。 |
| 2026-08-14 | 【760.1.3】重构 AP 配网与应急开门页面,支持中英文切换和配网页面自动弹出;局域网管理密码或应急开门密码连续错误 5 次后冷却 1 小时;密码和卡片重复新增改为幂等成功,不覆盖原有效期。 |
| 2026-07-16 | 【760.1.1】支持通过键盘输入 *#*# 进入配网模式,增加“已进入配网模式”语音提示及提示音降级方案;优化重复按键识别和配网页面自动弹出稳定性。 |
| 2026-07-14 | 【760.1.0】发布 760.1 系列首个完整功能版本,兼容 760.0 系列设备远程升级;覆盖门禁密码、卡片、二维码、键盘、显示、语音、配网、蓝牙、应急开门、远程指令及 OTA 等主要功能。 |
+++
最后编辑:极客师傅 更新时间:2026-08-25 15:56