CATALOG

芯步的密码门禁设备开放了完整的HTTP接口,支持通过公网API和局域网直连两种模式进行二次开发。以下方案涵盖两种调用方式的签名算法、核心命令示例,以及Java/Python/Shell的代码实现。

解决方案:基于芯步HTTP接口的密码门禁远程控制二次开发

1. 背景与技术原理

芯步的智能密码门禁设备(如型号UNI-MJ-MM-CM)支持标准的HTTP接口调用,这意味着开发者可以绕过其原生App,直接将门禁控制功能集成到自己的办公系统、小程序或管理平台中

核心原理:设备连接WiFi(2.4G)后,会与芯步云平台保持长连接。开发者通过向云平台API发送特定的HTTP请求(携带签名和设备ID),云平台会实时将指令推送给设备,从而实现远程开门、密码管理等功能

适用场景:

  • 将门禁集成到公司内部的OA或ERP系统。

  • 开发定制化的智慧民宿管理后台。

  • 实现基于时间条件的自动化门禁控制。

2. 接口调用方式

芯步提供两种HTTP对接模式,开发者可根据网络环境选择:

模式地址示例适用场景特点
公网API模式https://api.thingboot.com/{AppID}/...分布式系统、手机App、跨地域管理需联网,支持设备不在同一局域网,需签名验证
局域网直连模式http://{设备IP}/control内部局域网服务器、高实时性要求响应更快(内网传输),无需经过云平台,适合可控内部网络

3. 二次开发关键步骤

3.1 准备工作:获取凭证与设备ID

在开始编码前,需要准备以下三个关键信息(均可在芯步控制台获取):

  • AppID: 应用的唯一标识。

  • AppSecret: 用于加密签名的密钥(严禁直接写在客户端代码中)。

  • Device ID: 目标门禁设备的ID(通常为一串数字或字符串)。

3.2 核心技术:签名算法

为了保证接口安全,每次调用公网API都必须携带动态生成的签名(Sign)。算法规则如下

  1. 计算 MD5(AppSecret),得到 Secret_MD5

  2. 获取当前Unix时间戳(秒) Ts

  3. 拼接字符串 SignStr = Secret_MD5 + Ts

  4. 计算 Sign = MD5(SignStr)

示例:假设 AppSecret = "abc123"Ts = 1712100000

  1. Secret_MD5 = MD5("abc123") = "e99a18c428cb38d5f22e03"(仅为示例格式)

  2. SignStr = "e99a18c428cb38d5f22e03" + "1712100000"

  3. Sign = MD5(SignStr)

4. 核心功能实现:远程开门

这是最常用的功能。通常控制门锁是操作继电器通断,命令为 power

4.1 使用公网API远程控制(推荐)

请求地址:https://api.thingboot.com/{AppID}/device/control/方法: POST参数(JSON Body):

多场景命令说明:

  • 瞬间开门:{"power":0}(具体看接线,如果是常开锁则是1,通常0为释放锁)。

  • 开门后自动复位(脉冲模式):{"reset":"3000"} 立即打开门锁,保持3秒断电状态后自动闭锁

4.2 局域网直连控制(高稳定性)

如果您的服务器与门禁在同一个局域网内,可以直接控制,无需经过云端,延迟更低请求地址:http://{设备IP}/control方法: POST

注:局域网模式可能需要对设备配置固定IP或通过网关发现

5. 进阶功能:动态密码管理

相比于单纯的远程开门,二次开发往往更看重动态密码的管理能力。芯步门禁支持100个动态密码,非常适合访客或临时工场景

1. 设置/修改密码向设备下发命令,设置一个6位数的密码及其有效期。

  • 命令示例:

2. 删除/清空密码

  • 删除指定密码:{"delete": "123456"}

  • 清空所有密码:{"clear": true}

6. 代码实现示例(多语言)

以下代码片段演示了如何通过计算签名来调用接口控制门禁。

Python 3 示例
Java (OkHttp) 示例
Shell (cURL) 示例

适合在Linux服务器上直接测试或脚本调用

7. 注意事项与最佳实践

  1. 安全性

    • 签名密钥AppSecret请一定要在后端计算。不要在前端(JS/App)暴露此密钥。

    • 接口仅支持HTTPS(公网模式),防止中间人攻击。

  2. 异步反馈

    • /device/control/接口返回200仅代表指令发送成功,不代表门真的开了。如果需要确切的“已开门”回执,通过控制台设置消息推送回调URL,接收设备上报的事件

  3. 网络稳定性

    • 门禁设备使用信号良好的2.4G WiFi。如果用于核心机房或财务室等高安保场景,采用局域网直连模式,避免因外网波动导致控制失灵

  4. 设备配网

    • 二次开发调试前,需先使用官方小程序或控制台为设备配置WiFi。设备配网成功后指示灯常亮

通过上述方案,开发者可以在一小时内完成从环境配置到远程开门的基础功能集成。