协议格式
- 通讯协议:WebSocket, 实现双向的实时通讯
- 通信url:ws://ip:port/moredian/websocket/{deviceSn},deviceSn为连接的设备sn
- 数据格式:json, 确保最大的兼容性
- 备注说明:json字段值中的0代表数值型,“string”代表字串,“//”后为注释,标注有“***”者为必填参数
全局接口
1. 设备激活/注册
{
"id" : 0, //*** 消息ID,long型 ,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "active", //*** 接口名称
"data": {
"model": "string", //*** 设备型号,D1|D2|G2|MS4等
"name" : "string", //*** 设备名称
"type": 0, //*** 设备类型,1:门禁机|2:考勤机|3:访客机|4:消费机
"ipAddress": "string", //*** IP地址
"macAddress": "string", //*** MAC地址
"netType": 0, //*** 网络类型 1:无线网络|2:有线网络
"romVersion": "string", //*** 固件版本号
"secret": "string", //*** 鉴权码,SN通过加密算法生成,服务端调用相应SDK算法进行鉴权
"version": "string" //*** 软件版本号
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "string", //*** 返回说明
"data": {
"orgId": 0, //*** 机构ID
"orgKey":"string", //*** 机构码
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*" //*** token,永久有效
}
}
2. 获取设备信息(设备类型,版本号,名称等信息)
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "getInfo" //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*" //*** token
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK", //*** 返回说明
"data": {
"model": "string", //*** 设备型号,D1|D2|G2|MS4等
"name" : "string", //*** 设备名称
"sn" : "string", //*** 设备SN
"type": 0, //*** 设备类型,1:门禁机|2:考勤机|3:访客机|4:消费机
"ipAddress": "string", //*** IP地址
"macAddress": "string", //*** MAC地址
"netType": 0, //*** 网络类型 1:无线网络|2:有线网络
"romVersion": "string", //*** 固件版本号
"version": "string" //*** 软件版本号
}
}
3. 下发配置信息(设备名称、音量模式、韦根协调格式等)
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "configureDevice", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": {
"name":"string", //设备名称
"volume":0, //音量模式, 1-标准模式,2-低音模式,3-静音模式
"WiganType":0 //韦根协议格式,1:26-bit,2:34-bit
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
4. 心跳保持
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "heartBeat", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*" //*** token
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
"data":{
"timeZone": "string", //*** 时区信息 GMT格式
"timestamp": 0 //*** 时间戳
}
}
5. 修改设备名称
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "rename", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": {
"name" : "string" //*** 设备名称
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "string" //*** 返回说明
}
6. 设备解绑
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "unBundle" //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*" //*** token
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "string" //*** 返回说明
}
7. 远程开门
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "openDoor" //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*" //*** token
"data": {
"key": "string" //*** 开门钥匙 (sn+时间戳)做DES加密,密钥为机构码
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "string" //*** 返回说明
}
8. 设备升级
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "upgradeDevice" //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*" //*** token
"data": {
"url": "string" //*** 升级版地址
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "string" //*** 返回说明
}
人员数据同步相关接口
1. 增加人员
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "addUser", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": [
{
"userId":0, //*** 人员ID
"name":"string", //*** 姓名
"custId":"string", //*** 人员工号,可三方自定义,扩展使用
"eigenValue":"string", //*** 人脸特征值
"groupList":"string" //*** 所在权限组列表,不同权限组ID用逗号隔开
}
]
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
2. 修改人员信息
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "modifyUser", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": [
{
"userId":0, //*** 人员ID
"name":"string", //*** 姓名
"custId":"string", //人员工号,可三方自定义,扩展使用
"eigenValue":"string", //人脸特征值
"groupList":"string" //所在权限组列表,不同权限组ID用逗号隔开
}
]
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
3. 删除人员
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "deleteUser", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": {
userList: "string" //*** 要删除的人员ID列表,用逗号隔开,传“all”则全部删除
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
管理员数据同步相关接口
1. 增加管理员
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "addAdmin", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data":[
{
"userId":0, //*** 人员ID
"name":"string", //*** 姓名
"account":"string", //*** 账户名
"password":"string" //*** 密码,MD5加密
}
]
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
2. 修改管理员信息
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "modifyAdmin", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": [
{
"userId":0, //*** 人员ID
"name":"string", //*** 姓名
"account":"string", // 账户名
"password":"string" // 密码,MD5加密
}
]
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
3. 删除管理员
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "deleteAdmin", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": {
adminList: "string" //*** 要删除的管理员ID列表,用逗号隔开,传“all”则全部删除
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
权限组同步相关接口
1. 增加权限组
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "addGroup", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": [
{
"groupId":0, //*** 权限组ID
"openTimeList": //通行时段,时间格式hh/mm,空值或不传表示整天都允许通行
[
{
"startTime":"string",
"endTime":"string"
}
],
"weekDay":"string", //一周内允许通行的日期,1~6对应周一到周六,0为周日,空值或不传表示每天都能通行
"startDate":"yyyy/mm/dd", //允许通行的开始日期,日期格式yyyy/mm/dd,空值或不传表示永久有效
"endDate":"yyyy/mm/dd", //允许通行的结束日期,日期格式yyyy/mm/dd,空值或不传表示永久有效
"tipText":"string", //刷脸成功界面提示文字
"tipSpeech":"string" //刷脸成功语音播报内容
}
]
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
2. 修改权限组
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "modifyGroup", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data":[
{
"groupId":0, //*** 权限组ID
"openTimeList": //通行时段,时间格式hh/mm,空值或不传表示整天都允许通行
[
{
"startTime":"string",
"endTime":"string"
}
],
"weekDay":"string", //一周内允许通行的日期,1~6对应周一到周六,0为周日,空值或不传表示每天都能通行
"startDate":"yyyy/mm/dd", //允许通行的开始日期,日期格式yyyy/mm/dd,空值或不传表示永久有效
"endDate":"yyyy/mm/dd", //允许通行的结束日期,日期格式yyyy/mm/dd,空值或不传表示永久有效
"tipText":"string", //刷脸成功界面提示文字
"tipSpeech":"string" //刷脸成功语音播报内容
}
]
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
3. 删除权限组
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "deleteGroup", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": {
groupList: "string" //*** 要删除的管理员ID列表,用逗号隔开,传“all”则全部删除
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
识别相关接口
1. 识别记录上报
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "addRecord", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": [
{
"userId":0, //*** 成员ID
"timeStamp":0, //*** 识别时间,linux时间戳
"snap":"string" //识别抓拍照,base64编码
}
]
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
2. 在线鉴权
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "checkPrivilege", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": {
"userId":0, //*** 成员ID
"timeStamp":0 //*** 识别时间,linux时间戳
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
"data": {
"tipText":"string", //界面提示语
"tipSpeech":"string", //语音播报内容
"openDoor":0 //***是否开门,0:不开,1:开
}
}
3. 开启在线鉴权
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "enableOnlinePrivilege", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*" //*** token
} //开启后离线鉴权将不生效,除非设备离线
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
3. 关闭在线鉴权
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "disableOnlinePrivilege", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*" //*** token
} //关闭后只会做离线鉴权,在线鉴权接口将不会调用
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
4. 开机后默认状态设定
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "setDefaultActivity", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": {
"activity":0 //*** 状态值,0:人脸识别,1:广告展示,2:熄屏
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
5. 广告推送
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "adPush", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": {
"switchTime":0, //*** 幻灯片展示图片切换间隔时间,单位:秒
"showTimeList":[
{
"startTime":"hh:mm", //每天几点开始展示
"endTime":"hh:mm" //每天几点停止展示
}
],
"picList":[
"string" //*** 图片url
]
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
6. 开始人脸识别
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "startFaceRec", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": {
"text":"string", //界面提示内容
"speech":"string", //语音提示内容
"timeOut":0 //超时时间(秒),这个时间之后仍然没有识别成功则自动返回之后状态
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
}
人脸录入相关
1. 抽取人脸照片特征值(可批量多张导入,结果按单张返回)
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "faceToEigen", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data": [
{
"jobNum":"string", //*** 任务序列号
"url":"string" //*** 图片url
}
]
} //单次传送照片控制在100张以内
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
"data": {
"jobNum":"string", //*** 任务序列号
"eigenValue":"string" //*** 人脸特征值
}
}
2. 启用设备录脸
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response方返回时使用
"type": 0, //*** 消息类型,0:request、1:response
"path": "startFaceInput", //*** 接口名称
"token": "ZXlKaGJHY2lPaUpJVXpJMU5pSjkuZXlKbrQWR2NEU*", //*** token
"data":{
"jobNum":"string" //*** 任务序列号
}
}
{
"id" : 0, //*** 消息ID,long型,由requst方生成的自增变量,response时按原值返回
"type": 1, //*** 消息类型,0:request、1:response
"code": 0, //*** 返回码,0:成功、其它为错误码
"message": "OK" //*** 返回说明
"data": {
"jobNum":"string", //*** 任务序列号
"facePic":"string", //*** 人脸照片,base64编码
"eigenValue":"string" //*** 人脸特征值
}
}