W76R(4G UHF RFID电瓶车门禁控制器)API

概述

W76R 用于电瓶车停车场、车棚和出入口门禁。设备读取车辆标签的 EPC 与芯片 TID,在本地授权库内完成判断,授权通过后输出约 1 秒开门信号。

项目 说明
设备序列号 W76R 开头,以设备标签为准
接口域名 https://wdev.wmj.com.cn
请求格式 application/json
本地标签容量 每台最多 4096 张
通行判定 本地完成,正常通行不依赖当次云端往返
防复制校验 同时校验只读 TID 与 EPC
重复识别 同一 EPC 持续停留时,每 3 秒可重新触发

API 凭据请在微门禁开放平台申请。示例中的 {{wmjv2appid}}{{wmjv2appsecret}}{{device_sn}} 均为环境变量占位符,请勿把正式密钥写入客户端、日志或公开代码仓库。

接入流程

  1. 注册 W76R,将设备绑定到客户账号。
  2. 查询设备在线状态。
  3. 在天线读区内只放置一张待发标签,读取 EPC 和 TID。
  4. 可选:改写 EPC,再次读取并确认。
  5. 把 TID、EPC 和有效期写入需要放行的 W76R。
  6. 车辆进入读区后,设备本地判断权限并输出开门信号。

写标签和授权通行是两个独立操作。任意一台已注册、在线且 RFID 功能正常的 W76R 都可以作为写标签设备,请用 device_sn 指定实际执行设备。标签需要通过几台 W76R,就必须向这几台设备分别下发同一条 TID 与 EPC 授权记录。

设备命令公共规则

本文所有设备命令均复用硬件云 APIv2 通用接口:

  • 请求 URL:https://wdev.wmj.com.cn/deviceApi/send
  • 请求方式:POST
  • 请求格式:application/json
  • type 固定为 1
  • 命令名放在 data.cmd_type
  • 命令参数放在 data.info
{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}",
  "type": 1,
  "data": {
    "cmd_type": "命令名称",
    "info": {}
  }
}

平台同步等待设备响应,默认最长约 15 秒。顶层 code 表示硬件云处理结果;data.info.code 表示设备执行结果。两层 code 都为 0 才表示命令真正成功。

1.注册设备

请求URL

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

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}"
}
参数名 必填 类型 说明
app_id string APIv2 应用 ID
app_secret string APIv2 应用密钥
device_sn string W76R 设备序列号

返回示例

{
  "code": 0,
  "msg": "注册成功"
}
2.查询设备在线状态

简要描述

查询设备是否连接硬件云。本接口只读取平台在线记录,不向设备发送命令。

请求URL

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

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}"
}

返回示例

{
  "code": 0,
  "msg": "查询成功",
  "data": {
    "on_line": 1
  }
}
返回字段 类型 说明
code number 0 表示查询成功
data.on_line number 1 在线,0 离线
3.查询设备信息

简要描述

查询型号、软硬件版本、4G 信号和门禁输入输出状态。设备必须在线。

请求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": "getdevinfo",
    "info": {}
  }
}

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "cmd_type": "getdevinfo",
    "info": {
      "code": 0,
      "msg": "OK",
      "model": "W76R",
      "hw": "1.0.0",
      "sw": "0.1.8",
      "fwVer": "0.1.8",
      "rssi": -55,
      "csq": 24,
      "ber": 0,
      "doorstate": 0,
      "relayStatus": 0
    }
  }
}
返回字段 类型 说明
data.info.model string 产品型号
data / info / hw string 硬件版本
data.info.sw / fwVer string 固件版本
data.info.rssi number 4G 接收信号强度,单位 dBm
data.info.csq number 蜂窝网络信号质量
data.info.ber number 蜂窝网络误码率指标
data.info.doorstate number 门磁输入状态
data.info.relayStatus number 开门输出状态

响应可能同时包含设备和 SIM 网络标识字段。客户系统应按最小必要原则保存,不应公开这些标识。

4.读取现场标签

简要描述

获取设备最近一次成功读取的 EPC、芯片 TID 和本地授权数量。该接口不会自动注册标签,也不会主动开门。发卡时请确保天线有效读区内只有一张待发标签。

请求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": "rfid_tag_get",
    "info": {}
  }
}

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "cmd_type": "rfid_tag_get",
    "info": {
      "code": 0,
      "msg": "OK",
      "epc": "{{tag_epc}}",
      "tid": "{{tag_tid}}",
      "card_count": 1250
    }
  }
}
返回字段 类型 说明
data.info.epc string 标签 EPC,十六进制字符串
data.info.tid string 标签芯片只读 TID,十六进制字符串
data.info.card_count number 当前设备本地授权记录数量
  • 尚未成功读到标签时,epctid 为空字符串。
  • EPC、TID 不带 0x、空格或分隔符。
  • 返回的是最近一次成功读取结果,发卡软件应提示操作员核对当前标签。
5.改写标签 EPC(可选)

简要描述

按当前 EPC 选中读区内标签并改写 EPC 存储区。多数项目可直接使用标签出厂 EPC,无需改写。

改写 EPC 不会改变 TID,也不会自动授权。写入后必须回读确认,再用原 TID 与新 EPC 调用“新增或更新车辆标签”。

请求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": "rfid_tag_epc_write",
    "info": {
      "current_epc": "{{current_tag_epc}}",
      "new_epc": "{{new_tag_epc}}",
      "access_password": 0
    }
  }
}
参数名 必填 类型 说明
data.info.current_epc string 当前 EPC,2~16 字节
data.info.new_epc string 新 EPC,必须与当前 EPC 等长
data.info.access_password number 标签访问密码的十进制无符号 32 位数,默认 0

EPC 必须为偶数字节长度的十六进制字符串。写入时读区内只能有一张目标标签。本接口不开放标签锁定、销毁或修改 TID。

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "cmd_type": "rfid_tag_epc_write",
    "info": {
      "code": 0,
      "msg": "OK"
    }
  }
}
6.新增或更新车辆标签

简要描述

以芯片 TID 为唯一键,在目标 W76R 本地新增或更新授权记录。相同请求可以安全重试。

请求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": "rfid_card_upsert",
    "info": {
      "card_id": "EV-000001",
      "tid": "{{tag_tid}}",
      "epc": "{{tag_epc}}",
      "enabled": 1,
      "valid_from": 0,
      "valid_until": 0
    }
  }
}
参数名 必填 类型 说明
data.info.card_id string 客户业务卡号,最长 19 个字符
data.info.tid string 标签 TID,最长 16 字节
data.info.epc string 标签当前 EPC,最长 16 字节
data.info.enabled number / boolean 1 / true 启用,0 / false 停用;默认启用
data.info.valid_from number 生效时间,Unix 秒;0 表示不限制
data.info.valid_until number 失效时间,Unix 秒;0 表示不限制

valid_fromvalid_until 同时非零时,开始时间不得晚于结束时间。同一 EPC 不能绑定到另一个 TID。

返回示例

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

多设备部署时,本地授权库不会自动互相复制。客户平台应保存“标签—设备”关系,并向所有允许通行的 W76R 分别下发授权。

7.分页查询车辆标签

简要描述

分页查询目标 W76R 的本地授权记录,用于发卡结果确认、设备迁移和数据核对。

请求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": "rfid_card_list",
    "info": {
      "offset": 0,
      "limit": 5
    }
  }
}
参数名 必填 类型 说明
data.info.offset number 起始位置,默认 0
data.info.limit number 返回数量,默认 5,最大 5

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "cmd_type": "rfid_card_list",
    "info": {
      "code": 0,
      "msg": "OK",
      "total": 1,
      "offset": 0,
      "limit": 5,
      "cards": [
        {
          "card_id": "EV-000001",
          "tid": "{{tag_tid}}",
          "epc": "{{tag_epc}}",
          "enabled": 1,
          "valid_from": 0,
          "valid_until": 0
        }
      ]
    }
  }
}
返回字段 类型 说明
data.info.total number 本地授权记录总数
data.info.offset number 本页起始位置
data.info.limit number 本页请求数量
data.info.cards array 授权记录数组

offsetlimit 超出范围、不是整数时,设备返回 data.info.code=-1 和明确的参数错误说明,不会静默改用默认值。此行为要求固件 0.1.8 或更高版本。

8.启用或停用车辆标签

简要描述

按 TID 修改一条授权记录的启用状态,不删除车辆信息。

请求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": "rfid_card_enable",
    "info": {
      "tid": "{{tag_tid}}",
      "enabled": 0
    }
  }
}
参数名 必填 类型 说明
data.info.tid string 标签只读 TID
data.info.enabled number 1 启用,0 停用

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "cmd_type": "rfid_card_enable",
    "info": {
      "code": 0,
      "msg": "OK"
    }
  }
}
9.删除车辆标签

简要描述

按 TID 删除目标 W76R 中的一条本地授权记录。删除后该标签在该设备上立即失去通行权限。

请求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": "rfid_card_delete",
    "info": {
      "tid": "{{tag_tid}}"
    }
  }
}

返回示例

{
  "code": 0,
  "data": {
    "device_sn": "{{device_sn}}",
    "cmd_type": "rfid_card_delete",
    "info": {
      "code": 0,
      "msg": "OK"
    }
  }
}
10.本地鉴权和开门逻辑

W76R 识别标签后依次检查:

  1. TID 是否存在于本地授权库;
  2. 当前 EPC 是否与该 TID 保存的 EPC 一致;
  3. 授权记录是否启用;
  4. 当前时间是否处于有效期;
  5. 授权库是否可以正常读取。

全部通过后,设备输出约 1 秒开门信号。未注册、已停用、未生效、已过期、TID/EPC 不一致或定时授权无法取得有效时间时,均不输出开门信号。

标签识别语音只表示设备发现标签,不表示鉴权成功。当前版本不主动上报每一次允许或拒绝记录;如项目需要云端通行流水,应另行约定上报接口。

11.安全和多设备部署
  • TID 通常由标签芯片提供且不可改写,EPC 可以改写。W76R 同时校验 TID 和 EPC,降低只复制 EPC 获得权限的风险。
  • EPC 改写后,仍保存旧 EPC 的设备会拒绝通行,必须重新下发授权。
  • RFID 管理命令应通过本文 HTTPS 接口发送,不支持客户直接向设备发送明文管理命令。
  • 发卡区应限制射频覆盖范围,并确保一次只有一张标签。
  • 客户平台应保存原始 TID、当前 EPC、业务卡号、授权设备和有效期,设备更换或恢复时据此重新下发。
  • 3000 张以上标签建议使用后台任务队列逐台、逐条下发,保存每条命令的双层返回,并在完成后分页核对总数与抽样数据。
12.错误处理和常见问题

平台层常见返回

code 说明 建议处理
0 平台处理成功 设备命令继续检查 data.info.code
1000 无权操作设备 先注册设备并核对账号归属
1001 参数错误、发布失败或等待超时 检查请求;超时前不要重复并发下发
1002 设备不在线 等待设备上线后重试
1003 设备尚未激活或不存在 确认设备已上电联网

设备命令失败时,以 data.info.codedata.info.msg 为准。管理命令返回 -403 表示未通过受保护通道,请使用本文的 /deviceApi/send,不要绕过硬件云协议。

写入 EPC 成功后为什么不能开门?

写入 EPC 不等于授权。请先回读确认,再把原 TID、新 EPC 写入每台需要放行的 W76R。

一台 W76R 写的标签能否在另一台使用?

可以。写标签设备不限制通行设备,但另一台设备必须保存相同 TID 与 EPC 的有效授权。

设备离线时车辆还能通行吗?

已保存且仍有效的授权可在本地判断。新增、修改、停用或删除授权需要设备重新在线后下发。

读标签接口为什么返回空字符串?

设备还没有成功读取标签,或标签不在有效读区。请调整距离和方向,并确保读区内只有目标标签。

13.解绑设备

简要描述

解除 W76R 与当前账号的绑定。解绑不会清空本地 RFID 授权库,不能用解绑代替删除标签。

请求URL

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

请求方式

POST

请求格式

json

参数

{
  "app_id": "{{wmjv2appid}}",
  "app_secret": "{{wmjv2appsecret}}",
  "device_sn": "{{device_sn}}"
}

返回示例

{
  "code": 0,
  "msg": "解绑成功"
}
14.更新记录
日期 版本 说明
2026-08-20 1.0 首次公开 W76R 注册、在线查询、RFID 发卡、标签管理、本地鉴权和多设备部署接口;分页参数错误改为明确返回
作者:极客师傅  创建时间:2026-08-20 16:50
最后编辑:极客师傅  更新时间:2026-08-22 15:42