传统门禁边缘网关接入API
更新时间:2019-11-07 14:44:07
1、规约信息
1、通信协议基于HTTP,建立双向通道(即先由Edge端发起连接,成功后再由设备端发起, 只有双向通道都建立成功后,才能进行业务通信)。
2、访问格式:http://
3、时间字段类型:stirng-utc, 如:"1502175700"
4、edge 端的服务端口:10020
5、AC: 门禁, 全称 access control
2、接口说明
2.1 通用接口
2.1.1 连接
相对url: /connect
method: POST
Content-Type:application/json
描述: 先有Edge端主动发起, 等连接成功后,再由门禁服务系统向边缘网关建立连接
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
sn | string | √ | 设备sn | N/A |
time | string-utc | √ | utc时间戳 | 例如:1502175700 |
ip | string | √ | ip地址 | 格式:192.168.1.110 |
mac | string | √ | mac地址 | 格式:11:22:33:44:55:66 |
version | string | 版本号 | 格式:xx.xx.xx | |
keepalive | int | √ | 保活超时时间 | 单位:s, |
signMethod | string | √ | 签名算法 | 目前支持的有: md5/sha1/sha256 |
sign | string | √ | 签名后的内容 | 需要签名的内容封装格式:"TIME{time}MAC{mac}SN{sn}IP{ip}" |
大括号内的是具体内容,其外面的是名称。备注:time要转换成string类型 |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | √ | 消息内容 | 该消息必须包含token字段,该字段的含义:连接成功后,Edge会颁发身份标示信息,在后续的“心跳包活”、“业务请求”时需要携带。 |
示例:
请求:
{
"sn": "1234567890",
"time": "123456789",
"ip": "192.168.1.110",
"mac": "11:22:33:44:55:66",
"keepalive": 10,
"signMethod": "md5",
"sign": "sdfdgdsghgfdhfghgfhjdfj"
}
响应:
{
"code": 0,
"message": "success",
"data": {
"token": "234353455456"
}
}
2.1.2 心跳
相对url: /keepalive
method: POST
Content-Type:application/json
描述: http clinet 端发起。每个业务通信都可当作一次心跳,只有链路出现空闲的时候,则发送心跳,若对端长时间未收到心跳,则认为设备掉线,即当前链路通道失效,需要重新做connect操作。建议心跳间隔:30s
参数
参数 | 类型 | 说明 | 备注 | |
---|---|---|---|---|
token | string | 设备的标识信息 | 在建立连接时,由对端下发,在规定的时间内未收到心跳,则token失效。 |
- 返回值
{
"code": 0,
"message": ""
}
2.2 刷卡门禁-接口
2.2.1 远程开门
相对url: /cardAC/remoteOpen
method: POST
Content-Type:application/json
描述: 由Edge端发起开门操作。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由门禁服务管理系统下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token": "1234567890",
"deviceId": "zxcvbnm",
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.2.2 同步刷卡门禁的权限
相对url: /cardAC/syncPermissions
method: POST
Content-Type:application/json
描述: 由Edge端发起权限下发操作。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由门禁服务管理系统下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
permissions | list | √ | 权限列表 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token": "1234567890",
"deviceId": "zxcvbnm",
"permissions":[
{"cardId": "门禁卡id", "endTime": "截止时间", "type": 1}, // type 1:增加,2:删除, 3:修改
{"cardId": "门禁卡id", "endTime": "截止时间", "type": 2}, // 截止时间为 UTC string 单位精确到毫秒
{"cardId": "门禁卡id", "endTime": "截止时间", "type": 3},
...
]
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.2.3 通行事件
相对url: /cardAC/passEvent
method: POST
Content-Type:application/json
描述: 由门禁服务发起。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由edge下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
cardId | string | √ | 门禁卡ID |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token" : "1234567890",
"deviceId": "zxcvbnm",
"cardId": "门禁卡ID"
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
{
"code": 2,
"message": "Token and deviceId should be string type"
}
{
"code": 1,
"message": "Token is invalid"
}
{
"code": 7,
"message": "Invalid device"
}
{
"code": 99,
"message": "Device is not online"
}
2.2.4 报警事件
相对url: /cardAC/alarmEvent
method: POST
Content-Type:application/json
描述: 由门禁服务发起。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由edge下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
alarmType | enum | √ | 0 | 防拆报警 | |
1 | 防拆报警解除 | ||||
2 | 无效卡 | ||||
cardId | string | √ | 门禁卡ID | 当alarmType 的类型为2时有效 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token" : "1234567890",
"deviceId": "zxcvbnm",
"alarmType": 0,
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.2.5 运行状态
相对url: /cardAC/runState
method: POST
Content-Type:application/json
描述: 由门禁服务发起。备注:connect 操作后, 运行状态默认为正常。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由edge下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
runState | enum | √ | 0 | 运行正常 | |
1 | 运行异常 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token" : "1234567890",
"deviceId": "zxcvbnm",
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.3 密码门禁-接口
2.3.1 远程开门
相对url: /passwordAC/remoteOpen
method: POST
Content-Type:application/json
描述: 由Edge端发起开门操作。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由门禁服务管理系统下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token": "1234567890",
"deviceId": "zxcvbnm",
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.3.2 密码设置
相对url: /passwordAC/setPassword
method: POST
Content-Type:application/json
描述: 由Edge端发起密码操作。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由门禁服务管理系统下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
operateType | enum | √ | 0 | 设置密码 | |
1 | 删除密码 | ||||
number | int | √ | 密码编号 | ||
password | string | 密码 | 设置密码时,该参数有效 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token" : "1234567890",
"deviceId": "zxcvbnm",
"operateType": 0,
"number": 123,
"password": "密码"
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.3.3 通行事件
相对url: /passwordAC/passEvent
method: POST
Content-Type:application/json
描述: 由门禁服务发起。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由edge下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
number | int | √ | 密码编号 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token" : "1234567890",
"deviceId": "zxcvbnm",
"number": 123
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.3.4 报警事件
相对url: /passwordAC/alarmEvent
method: POST
Content-Type:application/json
描述: 由门禁服务发起。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由edge下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
alarmType | enum | √ | 0 | 防拆报警 | |
1 | 防拆报警解除 | ||||
2 | 挟持报警 | ||||
3 | 挟持报警解除 | ||||
4 | 三次密码错误报警 | ||||
5 | 三次密码错误报警解除 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token" : "1234567890",
"deviceId": "zxcvbnm",
"alarmType": 0,
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.3.5 运行状态
相对url: /passwordAC/runState
method: POST
Content-Type:application/json
描述: 由门禁服务发起。备注:connect 操作后, 运行状态默认为正常。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由edge下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
runState | enum | √ | 0 | 运行正常 | |
1 | 运行异常 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token" : "1234567890",
"deviceId": "zxcvbnm",
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.4 二维码门禁-接口
2.4.1 远程开门
相对url:/qrCodeAC/remoteOpen
method: POST
Content-Type:application/json
描述: 由Edge端发起开门操作。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由门禁服务管理系统下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token": "1234567890",
"deviceId": "zxcvbnm",
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.4.2 请求通行
相对url: /qrCodeAC/reqPass
method: POST
Content-Type:application/json
描述: 由门禁服务发起。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由edge下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
qrCode | string | √ | 二维码 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token" : "1234567890",
"deviceId": "zxcvbnm",
"qrCode": "二维码"
}
响应:
{
"code": 0,
"message": "",
"data":{
"state": 1 // 0 二维码比对失败,1,二维码比对成功
}
}
{
"code": 5,
"message": "qrCode is invalid",
"data":{
"state": 0 // 0 二维码比对失败,1,二维码比对成功
}
}
2.4.3 报警事件
相对url: /qrCodeAC/alarmEvent
method: POST
Content-Type:application/json
描述: 由门禁服务发起。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由edge下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
alarmType | enum | √ | 0 | 防拆报警 | |
1 | 防拆报警解除 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token" : "1234567890",
"deviceId": "zxcvbnm",
"alarmType": 0,
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
2.4.4 运行状态
相对url: /qrCodeAC/runState
method: POST
Content-Type:application/json
描述: 由门禁服务发起。备注:connect 操作后, 运行状态默认为正常。
参数
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
token | string | √ | 设备的标识信息 | 在建立连接时,由edge下发,在规定的时间内未收到心跳,则token失效。 | |
deviceId | string | √ | 设备ID | ||
runState | enum | √ | 0 | 运行正常 | |
1 | 运行异常 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | √ | 返回值 | |
message | string | √ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token" : "1234567890",
"deviceId": "zxcvbnm",
}
响应:
{
"code": 0,
"message": "",
"data":{}
}
3、错误码表
错误码 | 说明 |
---|---|
0 | 成功 |
1 | token无效 |
2 | 请求参数无效或非法 |
3 | 验签失败 |
4 | 权限失效 |
5 | 无权限 |
6 | 传统门禁系统身份无法识别 |
7 | 门禁设备身份无法识别 |
99 | 未知错误 |