HTTP对接
会员卡功能
接口说明:
写扇区块数据
本地服务器版本:
- V1.8.0
Content-Version:
- 1.0
业务能力:
- openSmartWriteCardBlock
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
blockNo | 1 | 是 | int | 块号 | -- |
data | 1 | 是 | String | 数据 | -- |
keyA | 1 | 是 | String | keyA | -- |
请求示例
{
"method": "openSmartWriteCardBlock",
"tokenId": "9/byy8/mfaIC2RbBYeDZul5xXv3Qolc6oH+cw81+j7ykRxuYZU0ajgkv/ZRVZXbb9w0yf99iuhrQ\nbH44QJ4lOg==",
"data": {
"blockNo": 5,
"data":"478354345465",
"keyA":"FFFFFFFFFFFF"
}
}
响应示例
{
"msgId": 249806905,
"resultCode": 0,
"reason": "",
"method": "openSmartWriteCardBlock",
"data": {
}
}
响应参数说明 无
异常码
异常码 | 异常描述 |
---|
接口说明:
激活卡片
本地服务器版本:
- V1.8.0
Content-Version:
- 1.0
业务能力:
- openSmartActiveCard
参数: 无 请求示例
{
"method": "openSmartActiveCard",
"tokenId": "9/byy8/mfaIC2RbBYeDZul5xXv3Qolc6oH+cw81+j7ykRxuYZU0ajgkv/ZRVZXbb9w0yf99iuhrQ\nbH44QJ4lOg==",
"data": {
}
}
响应示例
{
"msgId": 249806905,
"resultCode": 0,
"reason": "",
"method": "openSmartActiveCard",
"data": {
"cardNo":"DB730487"
}
}
响应参数说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
cardNo | 1 | 是 | String | 卡号 | -- |
异常码 |
异常码 | 异常描述 |
---|
接口说明:
设置卡片扇区密钥
本地服务器版本:
- V1.8.0
Content-Version:
- 1.0
业务能力:
- openSmartSetCardKey
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
keyA | 1 | 是 | String | 密钥A | -- |
sectorNo | 1 | 是 | int | 扇区 | 1-40 |
请求示例
{
"method": "openSmartSetCardKey",
"tokenId": "9/byy8/mfaIC2RbBYeDZul5xXv3Qolc6oH+cw81+j7ykRxuYZU0ajgkv/ZRVZXbb9w0yf99iuhrQ\nbH44QJ4lOg==",
"data": {
"keyA": "FFFFFFFFFFFF",
"sectorNo":3
}
}
响应示例
{
"msgId": 249806905,
"resultCode": 0,
"reason": "",
"method": "openSmartSetCardKey",
"data": {
}
}
响应参数说明 无
异常码
异常码 | 异常描述 |
---|
接口说明:
读卡号
本地服务器版本:
- V1.8.0
Content-Version:
- 1.0
业务能力:
- openSmartReadCardNo
参数: 无 请求示例
{
"method": "openSmartReadCardNo",
"tokenId": "9/byy8/mfaIC2RbBYeDZul5xXv3Qolc6oH+cw81+j7ykRxuYZU0ajgkv/ZRVZXbb9w0yf99iuhrQ\nbH44QJ4lOg==",
"data": {
}
}
响应示例
{
"msgId": 249806905,
"resultCode": 0,
"reason": "",
"method": "openSmartReadCardNo",
"data": {
"cardNo":"DB730487"
}
}
响应参数说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
cardNo | 1 | 是 | String | 卡号 | -- |
异常码 |
异常码 | 异常描述 |
---|
接口说明:
读扇区块数据
本地服务器版本:
- V1.8.0
Content-Version:
- 1.0
业务能力:
- openSmartReadCardBlock
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
blockNo | 1 | 是 | int | 块号 | -- |
keyA | 1 | 是 | String | keyA | -- |
请求示例
{
"method": "openSmartReadCardBlock",
"tokenId": "9/byy8/mfaIC2RbBYeDZul5xXv3Qolc6oH+cw81+j7ykRxuYZU0ajgkv/ZRVZXbb9w0yf99iuhrQ\nbH44QJ4lOg==",
"data": {
"blockNo": 5,
"keyA":"FFFFFFFFFFFF"
}
}
响应示例
{
"msgId": 249806905,
"resultCode": 0,
"reason": "",
"method": "openSmartReadCardBlock",
"data": {
"data":"4567654343567843"
}
}
响应参数说明 无
异常码
异常码 | 异常描述 |
---|
接口说明:
验证卡片扇区密钥
本地服务器版本:
- V1.8.0
Content-Version:
- 1.0
业务能力:
- openSmartAuthCardKey
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
keyA | 1 | 是 | String | 密钥A | -- |
sectorNo | 1 | 是 | int | 扇区 | 1-40 |
请求示例
{
"method": "openSmartAuthCardKey",
"tokenId": "9/byy8/mfaIC2RbBYeDZul5xXv3Qolc6oH+cw81+j7ykRxuYZU0ajgkv/ZRVZXbb9w0yf99iuhrQ\nbH44QJ4lOg==",
"data": {
"keyA": "FFFFFFFFFFFF",
"sectorNo":3
}
}
响应示例
{
"msgId": 249806905,
"resultCode": 0,
"reason": "",
"method": "openSmartAuthCardKey",
"data": {
}
}
响应参数说明 无
异常码
异常码 | 异常描述 |
---|
|时间|内容摘要|作者|接口版本|本地服务器版本|
|:---- |:---|
|2020-12-15|增加开放接口:关联发卡器、授权离线密码钥匙、授权手机钥匙、离线发卡、修改授权到期时间、取消授权、回收卡片、读卡|zzy|V1.0|V1.4.1|
|2020-12-30|增加开放接口:设置回调地址、下发卡片、指纹下发|zzy|V1.0|V1.4.5|
|2021-01-05|增加开放接口:远程开锁|zzy|V1.0|V1.4.6|
|2021-01-22|增加开放接口:待处理入住列表、入住详情、重新下发待处理授权、忽略待处理授权|zzy|V1.0|V1.8.0|
|2021-04-15|增加开放接口:退房卡|zzy|V1.0|V1.9.0|
|2021-07-15|房间列表返回房间状态|zzy|V1.0|V2.1.0|
|2022-11-18|增加房间入住列表同步|zzy|V1.0|V2.3.0|
|2023-02-27|下发卡号增加授权通道锁|zzy|V1.0|V2.4.0|
|2023-03-15|1.新增图片处理接口
2.新增下发人脸
3.房间入住列表返回Base64图片数据
4.房间入住详情返回Base64图片数据
5.待处理入住列表筛选加二维码、人脸下发|zzy|V1.0|V2.5.0|
|2023-06-20|1.房间操作记录列表增加事件开始时间和事件结束时间查询|zzy|V1.0|V2.7.0|
接入说明
必须先把HTLock部署完成。
联系门锁供应商提供账号文件。 然后把账号、卡片等文件导入到HTLock本地系统上。 然后使用注册好的账号对接口进行鉴权,调接口的时候需要注意接口协议。
设置回调地址,该地址在网关上报门锁日志时,会推送到该地址设置回调地址。除了门锁日志,还有删除网关的通知、删除门锁的通知、网关下发指纹、人脸的进度和结果通知,都会推送到该地址。
-
##HTLock添加房源、安装门锁等操作视频
-
远程操作
完成以上操作后,就可以对门锁调用远程功能API,HTTP接口功能如下: 房间列表查询 授权离线密码 授权手机 下发卡片 远程开锁 房间操作记录 房间入住列表 待处理列表 入住详情
在离线发卡之前需要先在该账号下关联发卡器。 关联成功后把卡片放在发卡器上,调离线发卡接口即可完成发卡操作。 注意:需要退房的时候要把卡片回收后才能继续使用,防止卡片里面的数据发生错误。
想对客户进行续住处理的话可以调修改授权有效期接口进行修改。 注意1:该接口只支持对离线卡片和手机授权进行续住。 注意2:离线卡片需要把卡片放在关联的发卡器上才能完成续住。 注意3:房间封房状态不能进行续住。
在制作多门卡之前需要先在该账号下关联发卡器。 关联成功后把卡片放在发卡器上,调制作多门卡接口即可完成发卡操作。 注意:需要退房的时候要把卡片回收后才能继续使用,防止卡片里面的数据发生错误。
在下发指纹之前需要先在该账号下关联发卡器。 关联成功后需要调发卡器录入指纹模式接口,然后方手指上去进行按压。 按压过程中可以通过回调地址查看到发卡器按压指纹推送。 在推送中拿到指纹标识或指纹特征值给到指纹下发接口进行下发,下发结果可以在回调地址上查看下发指纹结果推送。 注意:发卡器按压指纹的时候只有最后一包才会有指纹标识和指纹特征值推送。
把需要下发的人脸转换成baes64编码,然后调我们的图片处理接口对编码进行处理。 拿到图片处理返回的baes64编码后调下发人脸接口进行下发,下发的结果会通过下发人脸结果通知传到回调地址上。
调用前提是需要在HTLock上先安装梯控,安装完毕后即可调梯控授权。
根据业务需求可以分为单个退房和全部退房,这个只需要调取消权限接口即可。 注意:单个退房需要传checkInId参数,该参数可以通过房间入住列表拿到。
接口API
个性化接口
接口说明:
- 手动续住
业务能力:
- openSmartExtensionManually
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
pmsRoomName | 1 | String | 必填 | 续住房号 | -- |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 必填 | 证件号 | 最大支持100个字符 |
endTime | 1 | int | 必填 | 结束时间 | 时间戳,单位秒 |
*list | 1 | list | 必填 | 公共区列表 | -- |
pmsRoomName | 2 | String | 必填 | 公共区房号 | -- |
addUseNum | 2 | int | 必填 | 增加有效使用次数 | 续住时,新增的使用次数,和剩余的使用次数,总共不能超过254次 |
endTime | 2 | int | 必填 | 结束时间 | 时间戳,单位秒 |
请求示例
响应示例
响应参数说明 无
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500002 | 房间不存在 |
接口说明:
- 手动入住
业务能力:
- openSmartCheckInManually
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
pmsRoomName | 1 | String | 必填 | 入住房号 | -- |
customerName | 1 | String | 必填 | 房客名称 | 最大支持100个字符 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 必填 | 证件号 | 最大支持100个字符 |
countryCode | 1 | int | 可选 | 国家编码 | 如:中国大陆为86 |
phoneNo | 1 | String | 可选 | 手机号 | -- |
beginTime | 1 | int | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | int | 必填 | 结束时间 | 时间戳,单位秒 |
*list | 1 | list | 可选 | 公共区列表 | -- |
pmsRoomName | 2 | String | 必填 | 公共区房号 | -- |
useNum | 2 | int | 必填 | 有效使用次数 | addMode=1时有效 0 表示无限次 其他值,最大支持254 不填则默认无限次 |
beginTime | 2 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 2 | long | 必填 | 结束时间 | 时间戳,单位秒 |
roomState | 1 | int | 可选 | 房间状态 | 本地系统处理完该入住信息后,房间更变的状态 2在住 不填则使用系统默认的逻辑:处理完成后,房间置为在住状态 |
请求示例 |
{
"method": "openSmartCheckInManually",
"tokenId":"aFqJ9GbjlmX0LHZosmciPOtAbLZe/bfB00uEVTLGOGDpjnI9E6qwh7GmacRpAS4MIjKs1qK1BLnAHFBfNrKTxQ==",
"data": {
"pmsRoomName": "测试酒店5",
"customerName": "张三",
"idType":1,
"idNumber":"123456",
"countryCode":86,
"phoneNo":18900000000,
"beginTime":1592206742,
"endTime":1592465942,
"list":[
{
"pmsRoomName":"PMS公共区1",
"useNum":3,
"beginTime":1592206885,
"endTime":1592293284
},
{
"pmsRoomName":"PMS公共区2",
"useNum":5,
"beginTime":1592206885,
"endTime":1592293284
},
{
"pmsRoomName":"PMS公共区3",
"useNum":9,
"beginTime":1592206885,
"endTime":1592293284
}
]
}
}
响应示例
{
"msgId":23011359,
"resultCode":0,
"reason":"",
"method":"openSmartCheckInManually",
"data":{
}
}
响应参数说明 无
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500002 | 房间不存在 |
接口说明:
- 手动退房
业务能力:
- openSmartCheckOutManually
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
pmsRoomName | 1 | String | 必填 | 退房房号 | -- |
customerName | 1 | String | 可选 | 房客名称 | 最大支持100个字符 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 必填 | 证件号 | 最大支持100个字符 |
roomState | 1 | int | 可选 | 房间状态 | 本地系统处理完该退房信息后,房间更变的状态 1空净 5打扫 不填则使用系统默认的状态,该状态也可在WEB管理端上设置 |
请求示例 |
{
"method": "openSmartCheckOutManually",
"tokenId":"aFqJ9GbjlmX0LHZosmciPOtAbLZe/bfB00uEVTLGOGDpjnI9E6qwh7GmacRpAS4MIjKs1qK1BLnAHFBfNrKTxQ==",
"data": {
"pmsRoomName": "测试酒店5",
"idType":1,
"idNumber":"123456",
"roomState":1
}
}
响应示例
{
"msgId":106659885,
"resultCode":0,
"reason":"",
"method":"openSmartCheckOutManually",
"data":{
}
}
响应参数说明 无
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500002 | 房间不存在 |
接口说明:
- 关联发卡器
- 关联发卡器时,必须保证发卡器在线
- 发卡器未被关联使用
业务能力:
- openSmartBindCredit
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
deviceSeq | 1 | String | 可选 | 发卡器序列号 | 为空,表示解除绑定发卡器 |
请求示例 |
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPy+g==",
"method": "openSmartBindCredit",
"data": {
"deviceSeq": "xxxxxxxxxxxx"
}
}
响应示例
{
"msgId": 1620971530,
"resultCode": 0,
"reason": "",
"method": "openSmartBindCredit",
"data": {}
}
响应参数说明
无
异常码
异常码 | 异常描述 |
---|---|
500213 | 未导入包含当前发卡器文件,请联系供应商处理 |
500214 | 发卡器已被{0}端关联使用,请选择其他发卡器 |
500215 | 发卡器不在线 |
卡片操作
接口说明:
- 制作多门卡
业务能力:
- openSmartMultiLockCard
本地服务器版本:
- V2.9.0
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
multiLockCardId | 1 | String | 可选 | 多门卡ID | 此参数不为空以下参数可不填 需要挂失的卡片 |
endDate | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
remark | 1 | string | 必填 | 持卡人 | |
isLock | 1 | int | 可选 | 是否可开反锁 | 0不允许 1允许 默认不允许 |
replaceFunction | 1 | int | 可选 | 顶替前卡 | 1顶替 2不顶替 默认不顶替 |
timePeriods | 1 | list | 可选 | 可开时间段 | 最多设置2个 |
beginTime | 2 | String | 可选 | 时间段开始时间 | 格式:HH:mm,如10:03 |
endTime | 2 | String | 可选 | 时间段结束时间 | 格式:HH:mm,如10:03 |
floorCode | 2 | int | 必填 | 楼层号 | -- |
roomCode | 2 | int | 必填 | 房间号 | -- |
subRoomName | 2 | String | 可选 | 套房号 | -- |
云端发布Pub(示例):
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QcPyLjF+g==",
"method": "openSmartMultiLockCard",
"data": {
"isLock": 1,
"replaceFunction": 1,
"endDate": 1763222399,
"remark": "xxx",
"timePeriods": [
{
"beginTime": "09:00",
"endTime": "18:00"
},
{
"beginTime": "19:00",
"endTime": "20:00"
}
],
"list": [
{
"buildingCode": 1,
"floorCode": 9,
"roomCode": 901,
"subRoomName":"A"
},
{
"buildingCode": 1,
"floorCode": 9,
"roomCode": 902
}
]
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"msgId": 345981978,
"resultCode": 0,
"reason": "",
"method": "openSmartMultiLockCard",
"data": {
}
}
接口说明:
- 多门卡列表
业务能力:
- openSmartMultiLockCardList
本地服务器版本:
- V2.9.0
Content-Version:
- 1.0
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
云端发布Pub(示例):
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QcPyLjF+g==",
"method": "openSmartMultiLockCardList",
"data": {
"startNum":0,
"getNum":10
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
totalPages | 1 | int | 必填 | 总页数 | |
multiLockCardId | 2 | String | 必填 | 多门卡ID | |
cardNo | 2 | String | 必填 | 卡号 | |
remark | 2 | String | 必填 | 持卡人 | |
endDate | 2 | long | 必填 | 结束时间 | 时间戳:秒 |
isLock | 2 | int | 可选 | 是否可开反锁 | 0不允许 1允许 默认不允许 |
replaceFunction | 2 | int | 可选 | 顶替前卡 | 1顶替 2不顶替 默认不顶替 |
timePeriods | 2 | List | 可选 | 可开时间段 | 最多设置2个 |
beginTime | 3 | String | 可选 | 时间段开始时间 | 格式:HH:mm,如10:03 |
endTime | 3 | String | 可选 | 时间段结束时间 | 格式:HH:mm,如10:03 |
buildingCode | 3 | int | 必填 | 楼栋号 | |
roomCode | 3 | int | 必填 | 房间号 | |
subRoomName | 3 | String | 可选 | 套房号 | |
roomCardState | 3 | int | 必填 | 房间卡片状态 | 0: 回收 1: 正常 2: 挂失 3: 顶替 |
createTime | 2 | Long | 必填 | 创建时间 | 时间戳:秒 |
边缘网关响应Sub(示例):
{
"method": "openSmartMultiLockCardList",
"msgId": 122321323,
"resultCode": 0,
"reason": "",
"data": {
"listSum": 总数,
"totalPages":总页数,
"list":[
{
"cardNo":21D4CBFD,
"endDate":1700035797,
"isLock":1,
"remark":"xxx",
"createTime":1700035797,
"list":[
{
"buildingCode":1,
"floorCode":1,
"roomCode":109,
"subRoomName":"A"
}
]
}
]
}
}
房间操作
接口说明:
- 下发卡片
- 发卡器读取卡号,调用此接口通过网关将卡号下发到门锁
- 房间封房状态不能下发卡片
1.需要将卡片放入关联的发卡器
2.门锁绑定网关
业务能力:
- openSmartDownSendCardKey
本地服务器版本:
- V1.4.5
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
customerName | 1 | String | 必填 | 房客名称 | -- |
copyCheckIn | 1 | int | 必填 | 复制入住 | 本地服务器V1.4.5版本: 0 不复制入住,开始时间取推送过来入住的当前时间,且对房间做退房逻辑 1 复制入住,存在房客入住以房客最早开始时间为准 本地服务器V1.5.0版本: 0 退房后入住 先将对应房源内的所有房客退房(删除授权)再入住(执行当前的新授权),取入参开始时间作为本次入住授权的起始时间(时间精度为小时) 1 立即入住 不删除对应房源内的原有授权,以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取当前时间作为本次入住授权的开始时间(时间精度为小时) 2 其他时间入住 不删除对应房源内的原有授权,取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 房间开启顶替的情况下,该接口只能选0进行入住。 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100个字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
authorMode | 1 | int | 可选 | 有效期授权方式 | 1:有效期授权 2:周期重复时间段授权 默认为1 |
weeks | 1 | int | 可选 | 星期数 | AuthorMode = 0x02有效 按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效 例如:二进制1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | 格式:HH:mm |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | 格式:HH:mm |
useNum | 1 | int | 可选 | 使用次数 | 不填或0表示无限次 限制次数,最大是254次 |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartDownSendCardKey",
"data": {
"lockCode": "1.2.201A",
"customerName":"zzy",
"copyCheckIn":0,
"idType":1,
"idNumber":"1231231",
"beginTime":1602165958,
"endTime":1608965958
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartDownSendCardKey",
"data": {
"checkInId": "h0JYf4V93p4=",
"checkInName": "zzy",
"beginTime": 1602165600,
"endTime": 1608965958,
"idType": 1,
"idNumber": "1231231",
"cardNo": "DB730487"
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | -- |
checkInName | 1 | String | 必填 | 用户姓名 | -- |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | -- |
beginTime | 1 | int | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 1 | int | 必填 | 结束时间 | 时间戳:单位秒 |
authorMode | 1 | int | 可选 | 有效期授权方式 | 1:有效期授权 2:周期重复时间段授权 默认为1 |
weeks | 1 | int | 可选 | 星期数 | AuthorMode = 0x02有效 按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效 例如:二进制1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | 格式:01:00 |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | 格式:02:00 |
useNum | 1 | int | 使用次数 | 每日结束时间 | 不填或255表示无限次 限制次数,最大是254次 |
cardNo | 1 | String | 必填 | 卡号 | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500204 | 门锁不支持该功能 |
500209 | 未绑定发卡器 |
500300 | 房间不存在 |
500403 | 未读取到卡片信息 |
500503 | 重复授权 |
500504 | 不支持该功能 |
500508 | PMS入住不允许直接退房,请前往PMS页面操作 |
接口说明:
- 下发卡片
- 如传入参数中,cardNo不为空,则下发该卡号;如果为空,则通过发卡器读取卡号。再调用此接口通过网关将卡号下发到门锁
- 房间封房状态不能下发卡片
1.卡号为空时,需要将卡片放入关联的发卡器
2.门锁绑定网关
业务能力:
- openSmartDownSendCardKey
本地服务器版本:
- V1.5.4
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
customerName | 1 | String | 必填 | 房客名称 | -- |
copyCheckIn | 1 | int | 必填 | 复制入住 | 本地服务器V1.4.5版本: 0 不复制入住,开始时间取推送过来入住的当前时间,且对房间做退房逻辑 1 复制入住,存在房客入住以房客最早开始时间为准 本地服务器V1.5.0版本: 0 退房后入住 先将对应房源内的所有房客退房(删除授权)再入住(执行当前的新授权),取入参开始时间作为本次入住授权的起始时间(时间精度为小时) 1 立即入住 不删除对应房源内的原有授权,以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取当前时间作为本次入住授权的开始时间(时间精度为小时) 2 其他时间入住 不删除对应房源内的原有授权,取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 如若该门锁号为门禁时,只能选1和2。 房间开启顶替的情况下,该接口只能选0进行入住。 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100个字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
authorMode | 1 | int | 可选 | 有效期授权方式 | 1:有效期授权 2:周期重复时间段授权 默认为1 |
weeks | 1 | int | 可选 | 星期数 | AuthorMode = 0x02有效 按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效 例如:二进制1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | 格式:HH:mm |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | 格式:HH:mm |
useNum | 1 | int | 使用次数 | 每日结束时间 | 不填或0表示无限次 限制次数,最大是254次 |
cardNo | 1 | String | 可选 | 卡号 | 16进制卡号。调试时,请参考发卡器读出的卡号。如果卡号为空,则取发卡器读取的卡号下发,1.5.4版本新增 |
authChannel | 1 | int | 可选 | 授权通道 | 0或空 不授权通道锁 1 授权通道锁(不存在通道锁不会授权) 服务器2.4.0版本新增 |
delaySend | 1 | int | 可选 | 是否延时下发 | 1: 延时下发 非1 或 空 默认下发方式 V2.9.0新增 |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartDownSendCardKey",
"data": {
"lockCode": "1.2.201A",
"customerName":"zzy",
"copyCheckIn":0,
"idType":1,
"idNumber":"1231231",
"beginTime":1602165958,
"endTime":1608965958,
"cardNo":"DB730487"
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartDownSendCardKey",
"data": {
"checkInId": "h0JYf4V93p4=",
"checkInName": "zzy",
"beginTime": 1602165600,
"endTime": 1608965958,
"idType": 1,
"idNumber": "1231231",
"cardNo": "DB730487"
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | -- |
checkInName | 1 | String | 必填 | 用户姓名 | -- |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | -- |
beginTime | 1 | int | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 1 | int | 必填 | 结束时间 | 时间戳:单位秒 |
authorMode | 1 | int | 可选 | 有效期授权方式 | 1:有效期授权 2:周期重复时间段授权 默认为1 |
weeks | 1 | int | 可选 | 星期数 | AuthorMode = 0x02有效 按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效 例如:二进制1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | 格式:01:00 |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | 格式:02:00 |
useNum | 1 | int | 可选 | 使用次数 | 不填或255表示无限次 限制次数,最大是254次 |
cardNo | 1 | String | 必填 | 卡号 | -- |
auth | 1 | list | 可选 | 授权详情 | 服务器2.4.0版本新增 |
relaId | 2 | String | 必填 | 联动授权关系ID | |
channelType | 2 | Int | 必填 | 通道类型 | 5大门 6楼栋 7楼层 8房间 9套房 |
roomName | 2 | String | 必填 | 房间名称 | |
state | 2 | int | 必填 | 状态 | 1已入住 2待下发退房 3待下发入住 4挂失 5待下发挂失 6待下发续住 |
sendStatus | 2 | int | 必填 | 状态 | 1成功 2下发失败 3下发中 |
password | 2 | String | 可选 | 密码 | authType=2 表示为密码 AES加密 authType=4表示为卡片 |
useNum | 2 | int | 可选 | 使用次数 | 255或空表示无限次 限制次数,最大是254次 |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500204 | 门锁不支持该功能 |
500209 | 未绑定发卡器 |
500300 | 房间不存在 |
500403 | 未读取到卡片信息 |
500503 | 重复授权 |
500504 | 不支持该功能 |
500508 | PMS入住不允许直接退房,请前往PMS页面操作 |
接口说明:
- 下发自定义密码
- 房间封房状态不能下发密码
1.门锁绑定网关
业务能力:
- openSmartDownSendPasswordKey
本地服务器版本:
- V3.2.0
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
customerName | 1 | String | 必填 | 房客名称 | -- |
password | 1 | String | 必填 | 密码 | 6~16位数字 |
copyCheckIn | 1 | int | 必填 | 复制入住 | 本地服务器V1.4.5版本: 0 不复制入住,开始时间取推送过来入住的当前时间,且对房间做退房逻辑 1 复制入住,存在房客入住以房客最早开始时间为准 本地服务器V1.5.0版本: 0 退房后入住 先将对应房源内的所有房客退房(删除授权)再入住(执行当前的新授权),取入参开始时间作为本次入住授权的起始时间(时间精度为小时) 1 立即入住 不删除对应房源内的原有授权,以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取当前时间作为本次入住授权的开始时间(时间精度为小时) 2 其他时间入住 不删除对应房源内的原有授权,取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 如若该门锁号为门禁时,只能选1和2。 房间开启顶替的情况下,该接口只能选0进行入住。 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100个字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
authorMode | 1 | int | 可选 | 有效期授权方式 | 1:有效期授权 2:周期重复时间段授权 默认为1 |
weeks | 1 | int | 可选 | 星期数 | AuthorMode = 0x02有效 按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效 例如:二进制1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | 格式:HH:mm |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | 格式:HH:mm |
useNum | 1 | int | 使用次数 | 每日结束时间 | 不填或0表示无限次 限制次数,最大是254次 |
authChannel | 1 | int | 可选 | 授权通道 | 0或空 不授权通道锁 1 授权通道锁(不存在通道锁不会授权) |
delaySend | 1 | int | 可选 | 是否延时下发 | 1: 延时下发 非1 或 空 默认下发方式 |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartDownSendPasswordKey",
"data": {
"lockCode": "1.2.201A",
"customerName":"zzy",
"copyCheckIn":0,
"idType":1,
"idNumber":"1231231",
"beginTime":1602165958,
"endTime":1608965958,
"password":"123456"
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartDownSendCardKey",
"data": {
"checkInId": "h0JYf4V93p4=",
"checkInName": "zzy",
"beginTime": 1602165600,
"endTime": 1608965958,
"idType": 1,
"idNumber": "1231231",
"password": "123456"
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | -- |
checkInName | 1 | String | 必填 | 用户姓名 | -- |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | -- |
beginTime | 1 | int | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 1 | int | 必填 | 结束时间 | 时间戳:单位秒 |
authorMode | 1 | int | 可选 | 有效期授权方式 | 1:有效期授权 2:周期重复时间段授权 默认为1 |
weeks | 1 | int | 可选 | 星期数 | AuthorMode = 0x02有效 按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效 例如:二进制1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | 格式:01:00 |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | 格式:02:00 |
useNum | 1 | int | 可选 | 使用次数 | 不填或255表示无限次 限制次数,最大是254次 |
cardNo | 1 | String | 必填 | 卡号 | -- |
auth | 1 | list | 可选 | 授权详情 | 服务器2.4.0版本新增 |
relaId | 2 | String | 必填 | 联动授权关系ID | |
channelType | 2 | Int | 必填 | 通道类型 | 5大门 6楼栋 7楼层 8房间 9套房 |
roomName | 2 | String | 必填 | 房间名称 | |
state | 2 | int | 必填 | 状态 | 1已入住 2待下发退房 3待下发入住 4挂失 5待下发挂失 6待下发续住 |
sendStatus | 2 | int | 必填 | 状态 | 1成功 2下发失败 3下发中 |
password | 2 | String | 可选 | 密码 | authType=2 表示为密码 AES加密 authType=4表示为卡片 |
useNum | 2 | int | 可选 | 使用次数 | 255或空表示无限次 限制次数,最大是254次 |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500204 | 门锁不支持该功能 |
500209 | 未绑定发卡器 |
500300 | 房间不存在 |
500403 | 未读取到卡片信息 |
500503 | 重复授权 |
500504 | 不支持该功能 |
500508 | PMS入住不允许直接退房,请前往PMS页面操作 |
接口说明:
- 人脸下发
- Base64数据必须从图片处理获取
- 人脸下发结果通过回调地址推送给第三方
- 房间封房状态不能人脸下发
1.门锁绑定网关,门锁和网关都需要支持人脸下发
2.人脸下发结果通过hxjGatewaySendKeyResultPush推送给第三方
业务能力:
- openSmartDownSendFaceKey
本地服务器版本:
- V2.5.0
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
customerName | 1 | String | 必填 | 房客名称 | -- |
copyCheckIn | 1 | int | 必填 | 复制入住 | 本地服务器V1.4.5版本: 0 不复制入住,开始时间取推送过来入住的当前时间,且对房间做退房逻辑 1 复制入住,存在房客入住以房客最早开始时间为准 本地服务器V1.5.0版本: 0 退房后入住 先将对应房源内的所有房客退房(删除授权)再入住(执行当前的新授权),取入参开始时间作为本次入住授权的起始时间(时间精度为小时) 1 立即入住 不删除对应房源内的原有授权,以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取当前时间作为本次入住授权的开始时间(时间精度为小时) 2 其他时间入住 不删除对应房源内的原有授权,取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 如若该门锁号为门禁时,只能选1和2。 房间开启顶替的情况下,该接口只能选0进行入住。 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100个字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
picture | 1 | String | 必填 | Base64编码图片 | 必须经过“图片处理接口”获取 |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartDownSendFaceKey",
"data": {
"lockCode": "1.2.201A",
"customerName":"zzy",
"copyCheckIn":0,
"idType":1,
"idNumber":"1231231",
"beginTime":1602165958,
"endTime":1608965958,
"picture":"sxcvxvxzcvdfasdfs="
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartDownSendFaceKey",
"data": {
"checkInId": "h0JYf4V93p4=",
"checkInName": "zzy",
"beginTime": 1602165600,
"endTime": 1608965958,
"idType": 1,
"idNumber": "1231231"
"state":3
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | -- |
checkInName | 1 | String | 必填 | 用户姓名 | -- |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | -- |
beginTime | 1 | int | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 1 | int | 必填 | 结束时间 | 时间戳:单位秒 |
state | 1 | int | 必填 | 状态 | 1 已入住 3 待下发入住 |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500201 | 网关不存在 |
500204 | 门锁不支持该功能 |
500207 | 门锁未绑定网关 |
500300 | 房间不存在 |
500504 | 不支持该功能 |
500508 | PMS入住不允许直接退房,请前往PMS页面操作 |
接口说明:
- 人脸识别授权
- 房间门锁需要绑定人脸识别机
- 房间封房状态不能人脸授权
- 人脸图片只支持JPG格式
- 建议图片小于800KB,以免授权失败
业务能力:
- openSmartAddFaceKey
本地服务器版本:
- V2.1.0
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
customerName | 1 | String | 必填 | 房客名称 | -- |
copyCheckIn | 1 | int | 必填 | 复制入住 | 本地服务器V1.4.5版本: 0 不复制入住,开始时间取推送过来入住的当前时间,且对房间做退房逻辑 1 复制入住,存在房客入住以房客最早开始时间为准 本地服务器V1.5.0版本: 0 退房后入住 先将对应房源内的所有房客退房(删除授权)再入住(执行当前的新授权),取入参开始时间作为本次入住授权的起始时间(时间精度为小时) 1 立即入住 不删除对应房源内的原有授权,以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取当前时间作为本次入住授权的开始时间(时间精度为小时) 2 其他时间入住 不删除对应房源内的原有授权,取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 房间开启顶替的情况下,该接口只能选0进行入住。 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100个字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
picture | 1 | String | 必填 | 人脸图片 | Base64编码 |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartAddFaceKey",
"data": {
"lockCode": "1.2.201A",
"customerName":"zzy",
"copyCheckIn":0,
"idType":1,
"idNumber":"1231231",
"beginTime":1602165958,
"endTime":1608965958,
"picture":"xxxxxxxxxxxxx="
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartAddFaceKey",
"data": {
"checkInId": "h0JYf4V93p4=",
"checkInName": "zzy",
"beginTime": 1602165600,
"endTime": 1608965958,
"idType": 1,
"idNumber": "1231231"
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | -- |
checkInName | 1 | String | 必填 | 用户姓名 | -- |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | -- |
beginTime | 1 | int | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 1 | int | 必填 | 结束时间 | 时间戳:单位秒 |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500300 | 房间不存在 |
500228 | 门锁未绑定人脸识别机 |
500530 | 未开启该功能 |
500221 | 人脸识别机不存在 |
501 | Send msg error(此异常一般图片过大) |
500508 | PMS入住不允许直接退房,请前往PMS页面操作 |
接口说明:
- 发卡器进入录指纹模式
- 发卡器按压指纹,通过回调推送结果通知给第三方(hxjGatewaySendKeyResultPush)
业务能力:
- openSmartEnterFingerPrintModel
本地服务器版本:
- V1.5.1
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartEnterFingerPrintModel",
"data": {
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartEnterFingerPrintModel",
"data": {
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
- | - | - | - | - | - |
异常码
异常码 | 异常描述 |
---|---|
500208 | 发卡器不存在 |
500209 | 未绑定发卡器 |
500232 | 帐号关联的发卡器没有指纹采集功能,请重新关联发卡器! |
接口说明:
- 取消权限,即退房(单个退房、全部退房)
对单个离线卡片授权退房,将卡片放入关联的发卡器则为有卡退房否则为无卡退房
业务能力:
- openSmartCheckOut
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | -- |
checkInId | 1 | String | 可选 | 入住ID | 不为空则表示对单个房客退房 为空则表示全部退房 可通过房间入住列表查看 |
delaySend | 1 | int | 可选 | 是否延时下发 | 1: 延时下发 非1 或 空 默认下发方式 V2.9.0新增 |
请求示例 |
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartCheckOut",
"data": {
"lockCode": "1.2.201A"
}
}
响应示例
{
"msgId": 614462509,
"resultCode": 0,
"reason": "",
"method": "openSmartCheckOut",
"data": {}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
roomState | 1 | int | 可选 | 房间状态 | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500300 | 房间不存在 |
500529 | 操作失败,多门卡请在侧边栏操作 |
500508 | PMS入住不允许直接退房,请前往PMS页面操作 |
接口说明:
- 回收卡片 必须关联发卡器,且发卡器在线
业务能力:
- openSmartCardRecycle
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
参数: 无
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartCardRecycle",
"data": {
}
}
响应示例
{
"msgId": 43943955,
"resultCode": 0,
"reason": "",
"method": "openSmartCardRecycle",
"data": {}
}
响应参数说明 无
异常码
异常码 | 异常描述 |
---|---|
500209 | 未绑定发卡器 |
500403 | 未读取到卡片信息 |
接口说明:
- 图片处理
- 下发人脸时,图片数据必须较过此接口校验通过获取
业务能力:
- openSmartFaceImageUpload
本地服务器版本:
- V2.5.0
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
picture | 1 | String | 必填 | Base64编码图片 | -- |
lockCode | 1 | String | 可选 | 门锁号 | V2.7.5新增 可通过房间列表查看 |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartFaceImageUpload",
"data": {
"picture":"xcvawesdfsadfsdad"
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartFaceImageUpload",
"data": {
"picture":"xcvawesdfsadfsdad"
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
picture | 1 | String | 必填 | Base64数据 | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
接口说明:
- 忽略待处理授权
业务能力:
- openSmartIgnoreCheckIn
本地服务器版本:
- V1.8.0
Content-Version:
- 1.0
参数:
| 参数名 | 层级 | 类型 | 条件 | 说明 | 备注 | | ----- | ---- | ---- | ---- | ---- | ---- ||checkInId| 1| String | 必填 | 授权ID|可通过房间入住列表查看|
请求示例
{
"method": "openSmartIgnoreCheckIn",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53FdnUOGWhdPWCSQzJiLVdYT4iqybECMEoq8Nx1GU2tCGVkCZMcrLk7kUQ==",
"data": {
"checkInId": "+LD/tJysceg="
}
}
响应示例
{
"msgId": 1527377926,
"resultCode": 0,
"reason": "",
"method": "openSmartIgnoreCheckIn",
"data": {
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500506 | 入住信息不存在 |
接口说明:
- 指纹下发
- 指纹下发结果通过回调地址推送给第三方
- 房间封房状态不能指纹下发
1.指纹采集仪读取指纹
2.门锁绑定网关,门锁和网关都需要支持指纹下发
3.指纹下发结果通过hxjGatewaySendKeyResultPush推送给第三方
业务能力:
- openSmartAddFingerPrintKey
本地服务器版本:
- V1.4.5
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
customerName | 1 | String | 必填 | 房客名称 | -- |
copyCheckIn | 1 | int | 必填 | 复制入住 | 本地服务器V1.4.5版本: 0 不复制入住,开始时间取推送过来入住的当前时间,且对房间做退房逻辑 1 复制入住,存在房客入住以房客最早开始时间为准 本地服务器V1.5.0版本: 0 退房后入住 先将对应房源内的所有房客退房(删除授权)再入住(执行当前的新授权),取入参开始时间作为本次入住授权的起始时间(时间精度为小时) 1 立即入住 不删除对应房源内的原有授权,以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取当前时间作为本次入住授权的开始时间(时间精度为小时) 2 其他时间入住 不删除对应房源内的原有授权,取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 如若该门锁号为门禁时,只能选1和2。 房间开启顶替的情况下,该接口只能选0进行入住。 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100个字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
fingerPrint | 1 | String | 可选 | 指纹特征 | 本地服务器V1.5.1版本及之后: fingerPrint和fingerPrintSign二者必填其一 获取方式: (1)第三方对接指纹采集仪,获取指纹特征 (2)发卡器录入指纹成功,推送发卡器按压指纹推送通知(hxjUploadFingerPrintNumPush)获取 |
fingerPrintSign | 1 | String | 可选 | 指纹标识 | 本地服务器V1.5.1版本新增字段: fingerPrint和fingerPrintSign二者必填其一 获取方式: 发卡器录入指纹成功,推送发卡器按压指纹推送通知(hxjUploadFingerPrintNumPush)获取 |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartAddFingerPrintKey",
"data": {
"lockCode": "1.2.201A",
"customerName":"zzy",
"copyCheckIn":0,
"idType":1,
"idNumber":"1231231",
"beginTime":1602165958,
"endTime":1608965958,
"fingerPrint":"qweqweqwwetewtwertwrtwaaaaaaa="
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartAddFingerPrintKey",
"data": {
"checkInId": "h0JYf4V93p4=",
"checkInName": "zzy",
"beginTime": 1602165600,
"endTime": 1608965958,
"idType": 1,
"idNumber": "1231231"
"state":3
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | -- |
checkInName | 1 | String | 必填 | 用户姓名 | -- |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | -- |
beginTime | 1 | int | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 1 | int | 必填 | 结束时间 | 时间戳:单位秒 |
state | 1 | int | 必填 | 状态 | 1 已入住 3 待下发入住 |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500201 | 网关不存在 |
500204 | 门锁不支持该功能 |
500207 | 门锁未绑定网关 |
500300 | 房间不存在 |
500504 | 不支持该功能 |
500508 | PMS入住不允许直接退房,请前往PMS页面操作 |
接口说明:
- 授权手机钥匙
- 房间封房状态不能授权手机钥匙
需要设置支持APP和小程序授权
业务能力:
- openSmartAddPhoneKey
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
customerName | 1 | String | 必填 | 房客名称 | -- |
copyCheckIn | 1 | int | 必填 | 复制入住 | 本地服务器V1.4.1版本: 0 不复制入住,开始时间取推送过来入住的当前时间,且对房间做退房逻辑 1 复制入住,存在房客入住以房客最早开始时间为准 本地服务器V1.5.0版本: 0 退房后入住 先将对应房源内的所有房客退房(删除授权)再入住(执行当前的新授权),取入参开始时间作为本次入住授权的起始时间(时间精度为小时) 1 立即入住 不删除对应房源内的原有授权,以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取当前时间作为本次入住授权的开始时间(时间精度为小时) 2 其他时间入住 不删除对应房源内的原有授权,取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 房间开启顶替的情况下,该接口只能选0进行入住。 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100个字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
phoneNo | 1 | String | 可选 | 手机号码 | 1.邮箱或手机号码必填其一 2.高级功能设置需要开启APP授权(手机号) 或微信授权(手机号,此参数有效) |
1 | String | 可选 | 邮箱 | 1.邮箱或手机号码必填其一 2.高级功能设置需要开启APP授权(邮箱),此参数有效) 3.V2.7.5新增 | |
countryCode | 1 | int | 可选 | 国家编码 | 默认为86 |
请求示例 |
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QcPyLjF+g==",
"method": "openSmartAddPhoneKey",
"data": {
"lockCode": "1.2.201A",
"customerName":"zzy",
"copyCheckIn":1,
"idType":1,
"idNumber":"1231231",
"beginTime":1602165958,
"endTime":1608965958,
"phoneNo":"13515455351"
}
}
响应示例
{
"msgId": 345981978,
"resultCode": 0,
"reason": "",
"method": "openSmartAddPhoneKey",
"data": {
"checkInId": "IUMAVJK/7yI=",
"checkInName": "zzy",
"beginTime": 1602165600,
"endTime": 1608965958,
"idType": 1,
"idNumber": "1231231",
"phoneNo": "13535455351",
"countryCode": 86
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | -- |
checkInName | 1 | String | 必填 | 用户姓名 | -- |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:单位秒 |
phoneNo | 1 | String | 必填 | 手机号码 | -- |
countryCode | 1 | int | 可选 | 国家编码 | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500104 | 手机号码格式错误 |
500300 | 房间不存在 |
500503 | 重复授权 |
500504 | 不支持该功能 |
500508 | PMS入住不允许直接退房,请前往PMS页面操作 |
接口说明:
- 1、如果密码的有效期小于1年,密码的有效期,精确到小时 如: 开始时间:2019-06-21 11:16:14 结束时间:2019-06-21 13:16:14 那么有效时间为:2019-06-21 11:00:00---2019-06-21 13:00:00
- 2、如果密码的有效期大于1年,密码的有效期精确到月 如: 开始时间:2019-06-21 11:16:14 结束时间:2020-09-21 11:16:14 那么有效时间为:2019-06-01 00:00:00---2020-09-01 00:00:00
如果密码开不了锁,在三方面进行排查 1、门锁时间是否正确(通过同步门锁时间来解决) 2、生成密码的aesKey、鉴权码是否和门锁上的一致(门锁初始化后,aesKey和鉴权码都会重新生成) 3、同一个时间生成的第一个密码输入可以开门,删除后再次相同开始结束时间生成的密码是无法开门的
- 授权离线密码钥匙 限制:
- 有效时间不能超过3年
- 有效时间超过1年,精确到月;有效时间小于1年,精确到小时
- 房间封房状态不能授权离线密码钥匙
业务能力:
- openSmartAddOffLineKey
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
customerName | 1 | String | 必填 | 房客名称 | -- |
copyCheckIn | 1 | int | 必填 | 复制入住 | 本地服务器V1.4.1版本: 0 不复制入住,开始时间取推送过来入住的当前时间,且对房间做退房逻辑 1 复制入住,存在房客入住以房客最早开始时间为准 本地服务器V1.5.0版本: 0 退房后入住 先将对应房源内的所有房客退房(删除授权)再入住(执行当前的新授权),取入参开始时间作为本次入住授权的起始时间(时间精度为小时) 1 立即入住 不删除对应房源内的原有授权,以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取当前时间作为本次入住授权的开始时间(时间精度为小时) 2 其他时间入住 不删除对应房源内的原有授权,取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 如若该门锁为门禁时,只能选1和2。 房间开启顶替的情况下,该接口只能选0进行入住。 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100个字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
请求示例 |
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLLjF+g==",
"method": "openSmartAddOffLineKey",
"data": {
"lockCode": "1.1.103",
"customerName":"zzy",
"copyCheckIn":0,
"idType":1,
"idNumber":"1231231",
"beginTime":1603265958,
"endTime":1608265958
}
}
响应示例
{
"msgId": 2107619328,
"resultCode": 0,
"reason": "",
"method": "openSmartAddOffLineKey",
"data": {
"checkInId": "vKucPeOPw54=",
"checkInName": "zzy",
"beginTime": 1603263600,
"endTime": 1608265958,
"idType": 1,
"idNumber": "1231231",
"password": "ryizXPc1I8ZNzusrM8MnMw=="
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | -- |
checkInName | 1 | String | 必填 | 用户姓名 | -- |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | -- |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:单位秒 |
password | 1 | String | 必填 | 密码 | AES加密 |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500300 | 房间不存在 |
500316 | 房间未关联门锁 |
500508 | PMS入住不允许直接退房,请前往PMS页面操作 |
接口说明:
- 梯控二维码
- 楼栋安装了梯控,调用此接口生成二维码授权,梯控扫码可到达对应楼层
- 梯控二维码生成后1小时内有效
业务能力:
- openSmartElevatorQrCode
本地服务器版本:
- V2.1.0
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
list | 1 | List | 必填 | list最多10层,允许为不同楼栋 | |
buildingCode | 2 | int | 必填 | 楼栋码 | -- |
floorCode | 2 | int | 必填 | 楼层 | -- |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartElevatorQrCode",
"data": {
"list":[
{
"buildingCode":1,
"floorCode":2
},
{
"buildingCode":2,
"floorCode":4
}
]
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartElevatorQrCode",
"data": {
"qrCode":"xxxxxxx=",
"createTime":1623313206
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
qrCode | 1 | String | 必填 | 梯控数据 | -- |
createTime | 1 | long | 必填 | 创建时间 | 时间戳 单位:秒 |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500002 | 生成失败 |
接口说明:
- 离线发卡
- 房间封房状态不能授权离线发卡
需要将卡片放入关联的发卡器
业务能力:
- openSmartAddCardKey
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
customerName | 1 | String | 必填 | 房客名称 | 1.6.1版本,改为可选,当为空时, 默认取卡号为房客名 |
copyCheckIn | 1 | int | 必填 | 复制入住 | 本地服务器V1.4.1版本: 0 不复制入住,开始时间取推送过来入住的当前时间,且对房间做退房逻辑 1 复制入住,存在房客入住以房客最早开始时间为准 本地服务器V1.5.0版本: 0 退房后入住 先将对应房源内的所有房客退房(删除授权)再入住(执行当前的新授权),取入参开始时间作为本次入住授权的起始时间(时间精度为小时) 1 立即入住 不删除对应房源内的原有授权,以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取当前时间作为本次入住授权的开始时间(时间精度为小时) 2 其他时间入住 不删除对应房源内的原有授权,取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 1.房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 2.房间开启顶替的情况下,该接口只能选0进行入住。 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100个字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
isLock | 1 | int | 可选 | 是否允许开反锁 | 1.6.1版本新增字段:0不允许开反锁,1允许开反锁,不填默认为0 |
floorList | 1 | list | 可选 | 可开楼层 | 2.7.3新增 |
floorCode | 2 | int | 可选 | 楼层码 | 2.7.3新增 |
请求示例 |
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartAddCardKey",
"data": {
"lockCode": "1.2.201A",
"customerName":"zzy",
"copyCheckIn":0,
"idType":1,
"idNumber":"1231231",
"beginTime":1602165958,
"endTime":1608965958
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartAddCardKey",
"data": {
"checkInId": "h0JYf4V93p4=",
"checkInName": "zzy",
"beginTime": 1602165600,
"endTime": 1608965958,
"idType": 1,
"idNumber": "1231231",
"cardNo": "DB730487"
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | -- |
checkInName | 1 | String | 必填 | 用户姓名 | -- |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | -- |
beginTime | 1 | int | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 1 | int | 必填 | 结束时间 | 时间戳:单位秒 |
cardNo | 1 | String | 必填 | 卡号 | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500209 | 未绑定发卡器 |
500300 | 房间不存在 |
500400 | 非法卡片 |
500402 | 卡片已使用,请回收后再制卡 |
500403 | 未读取到卡片信息 |
500503 | 重复授权 |
500508 | PMS入住不允许直接操作,请前往PMS页面操作 |
接口说明:
如果密码开不了锁,在三方面进行排查 1、门锁时间是否正确(通过同步门锁时间来解决) 2、生成密码的aesKey、鉴权码是否和门锁上的一致(门锁初始化后,aesKey和鉴权码都会重新生成) 3、同一个时间生成的第一个密码输入可以开门,删除后再次相同开始结束时间生成的密码是无法开门的
- 离线发卡
- 房间封房状态不能授权离线发卡
- 最多选择4个房间
需要将卡片放入关联的发卡器
业务能力:
- openSmartAddCardKey
本地服务器版本:
- V3.2.0
Content-Version:
- 1.1
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCodes | 1 | list<String> | 必填 | 门锁号 | 最多选择4个 可通过房间列表查看 |
customerName | 1 | String | 必填 | 房客名称 | 1.6.1版本,改为可选,当为空时, 默认取卡号为房客名 |
copyCheckIn | 1 | int | 必填 | 复制入住 | 本地服务器V1.4.1版本: 0 不复制入住,开始时间取推送过来入住的当前时间,且对房间做退房逻辑 1 复制入住,存在房客入住以房客最早开始时间为准 本地服务器V1.5.0版本: 0 退房后入住 先将对应房源内的所有房客退房(删除授权)再入住(执行当前的新授权),取入参开始时间作为本次入住授权的起始时间(时间精度为小时) 1 立即入住 不删除对应房源内的原有授权,以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取当前时间作为本次入住授权的开始时间(时间精度为小时) 2 其他时间入住 不删除对应房源内的原有授权,取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 1.房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 2.房间开启顶替的情况下,该接口只能选0进行入住。 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 1 | String | 可选 | 证件号 | 最大支持100个字符 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳,单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
isLock | 1 | int | 可选 | 是否允许开反锁 | 1.6.1版本新增字段:0不允许开反锁,1允许开反锁,不填默认为0 |
floorList | 1 | list | 可选 | 可开楼层 | 2.7.3新增 |
floorCode | 2 | int | 可选 | 楼层码 | 2.7.3新增 |
请求示例 |
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartAddCardKey",
"data": {
"lockCodes": ["1.2.201A","1.2.210"],
"customerName":"zzy",
"copyCheckIn":0,
"idType":1,
"idNumber":"1231231",
"beginTime":1602165958,
"endTime":1608965958
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartAddCardKey",
"list": [
{
"checkInId": "h0JYf4V93p4=",
"checkInName": "zzy",
"beginTime": 1602165600,
"endTime": 1608965958,
"idType": 1,
"idNumber": "1231231",
"cardNo": "DB730487"
}
]
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
list | 1 | list | 必填 | -- | |
checkInId | 2 | String | 必填 | 入住ID | -- |
checkInName | 2 | String | 必填 | 用户姓名 | -- |
idType | 2 | int | 可选 | 证件类型 | 1身份证 2护照 9其他 |
idNumber | 2 | String | 可选 | 证件号 | -- |
beginTime | 2 | int | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 2 | int | 必填 | 结束时间 | 时间戳:单位秒 |
cardNo | 2 | String | 必填 | 卡号 | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500209 | 未绑定发卡器 |
500300 | 房间不存在 |
500400 | 非法卡片 |
500402 | 卡片已使用,请回收后再制卡 |
500403 | 未读取到卡片信息 |
500503 | 重复授权 |
500508 | PMS入住不允许直接操作,请前往PMS页面操作 |
接口说明:
- 续住(修改授权到期时间)
- 离线密码,不支持续住
- 离线卡片授权,续住需要连接发卡器
- 只支持手机授权和离线卡片授权续住
- 房间封房状态不能修改授权到期时间
离线卡片租住需要将卡片放入关联的发卡器
业务能力:
- openSmartExtension
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | 可通过房间入住列表查看 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
请求示例 |
{
"method": "openSmartExtension",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"data": {
"checkInId": "M7Dy61IRzGs=",
"endTime": 1608985958
}
}
响应示例
{
"msgId": 111135744,
"resultCode": 0,
"reason": "",
"method": "openSmartExtension",
"data": {
"checkInId": "M7Dy61IRzGs=",
"checkInName": "zzy",
"beginTime": 1605164400,
"endTime": 1608985958
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 入住ID | -- |
checkInName | 1 | String | 必填 | 用户姓名 | -- |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:单位秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:单位秒 |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500209 | 未绑定发卡器 |
500403 | 未读取到卡片信息 |
500504 | 不支持该功能 |
500508 | PMS入住不允许直接操作,请前往PMS页面操作 |
500509 | 请放置相应的卡片进行操作 |
500510 | 授权不存在 |
接口说明:
- 续住(修改授权到期时间)
- 离线密码,不支持续住
- 离线卡片授权,续住需要连接发卡器
- 房间封房状态不能修改授权到期时间
- 离线卡片多个房间授权,操作类型选择卡片续住
离线卡片租住需要将卡片放入关联的发卡器
业务能力:
- openSmartExtension
本地服务器版本:
- V3.2.0
Content-Version:
- 1.1
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
operType | 1 | int | 必填 | 操作类型 | 1 单个续住 2 卡片续住 |
checkInId | 1 | String | 可选 | 入住ID | operType=1必填 可通过房间入住列表查看 |
cardNo | 1 | String | 可选 | 卡号 | operType=2必填 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳,单位秒 |
请求示例 |
{
"method": "openSmartExtension",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"data": {
"checkInId": "M7Dy61IRzGs=",
"endTime": 1608985958,
"operType": 1
}
}
响应示例
{
"msgId": 111135744,
"resultCode": 0,
"reason": "",
"method": "openSmartExtension",
"data": {
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500209 | 未绑定发卡器 |
500403 | 未读取到卡片信息 |
500504 | 不支持该功能 |
500508 | PMS入住不允许直接操作,请前往PMS页面操作 |
500509 | 请放置相应的卡片进行操作 |
500510 | 授权不存在 |
接口说明:
- 读卡 必须关联发卡器,且发卡器在线
业务能力:
- openSmartReadCard
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
参数: 无
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartReadCard",
"data": {
}
}
响应示例
{
"msgId": 1990118400,
"resultCode": 0,
"reason": "",
"method": "openSmartReadCard",
"data": {
"cardType": 4,
"list": [{
"key": "安装卡状态",
"value": "未刷安装卡"
}, {
"key": "门锁号",
"value": "1.2.202"
}, {
"key": "常开模式",
"value": "关闭"
}, {
"key": "顶替功能",
"value": "禁用"
}, {
"key": "安装位置",
"value": "A-2层-A202"
}],
"isblank": 2,
"cardNo": "DB730487"
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
isblank | 1 | int | 必填 | 是否白卡 | 0表示白卡 1表示异常卡 2正常卡 3空卡 |
cardNo | 1 | String | 必填 | 物理卡号 | -- |
cardType | 1 | int | 可选 | 卡片类型 | 为空则表示未知卡片类型 0加密卡 1系统设置卡 2系统设置验证卡 3清除卡 4安装卡 5校时卡 6入网卡 7退网卡 32宾客卡 33总卡 34楼栋卡 35楼层卡 |
list | 1 | List | 可选 | -- | |
key | 2 | String | 可选 | 标题 | -- |
value | 2 | String | 可选 | 内容 | -- |
异常码 |
异常码 | 异常描述 |
---|---|
500209 | 未绑定发卡器 |
500403 | 未读取到卡片信息 |
#####isblank=2正常卡,list格式如下 1.cardType=1系统设置卡
key | value |
---|---|
常开模式 | 不更改 常开打开,常开模式 常开关闭,正常模式 |
开锁语音 | 不更改 打开 关闭 |
密码使能 | 不更改 使能 禁用 |
下压把手关锁 | 不更改 使能 禁止 |
顶替功能 | 不更改 开启 关闭 |
电机转动方向 | 不更改 正转 反转 |
检卡灵敏度 | 等级+具体参数 |
蓝牙灵敏度 | 等级+具体参数 |
设置按键功能 | 禁用该按键 当作机械钥匙检测开关使用 当作初始化按键功能使用 默认功能 |
到期提前提醒 | 具体参数+天 |
备注 | 具体参数 |
2.cardType=2系统设置验证卡
key | value |
---|---|
常开模式 | 不更改 常开打开,常开模式 常开关闭,正常模式 |
开锁语音 | 不更改 打开 关闭 |
密码使能 | 不更改 使能 禁用 |
下压把手关锁 | 不更改 使能 禁止 |
顶替功能 | 不更改 开启 关闭 |
电机转动方向 | 不更改 正转 反转 |
检卡灵敏度 | 等级+具体参数 |
蓝牙灵敏度 | 等级+具体参数 |
设置按键功能 | 禁用该按键 当作机械钥匙检测开关使用 当作初始化按键功能使用 默认功能 |
到期提前提醒 | 具体参数+天 |
3.cardType=3清除卡
key | value |
---|---|
备注 | 具体参数 |
4.cardType=4安装卡
key | value |
---|---|
安装卡状态 | 未刷安装卡 已刷安装卡 已刷门锁和取电开关 未知 |
设备类型 | 电梯控制器 锁 门禁 未知 |
门锁号 | 具体参数 |
常开模式 | 打开 不更改 关闭 |
顶替功能 | 使能 禁用 不更改 |
MAC | 具体参数 |
软件版本 | 具体参数 |
硬件版本 | 具体参数 |
安装位置 | 具体参数 |
公共楼层 | 具体参数 |
电梯控制器 | 具体参数 |
扩展板 | 具体参数 |
5.cardType=5校时卡
key | value |
---|---|
卡片时间 | 具体参数 |
锁刷卡间隔时 | 具体参数+秒 |
6.cardType=6入网卡
key | value |
---|---|
备注 | 具体参数 |
7.cardType=7退网卡
key | value |
---|---|
备注 | 具体参数 |
8.cardType=32宾客卡
多门卡、在线入住离线入住等可能会出现多个房间和门锁号
key | value |
---|---|
房间 | 具体参数 |
开始时间 | 具体参数 |
结束时间 | 具体参数 |
门锁号 | 具体参数 |
持卡人 | 具体参数 |
常开模式 | 开启 关闭 |
可开反锁 | 是 否 |
可开楼层 | 具体参数 |
9.cardType=33总卡
key | value |
---|---|
是否允许开反锁 | 允许 不允许 |
通道模式 | 打开 关闭 |
有效期 | 具体参数 |
是否有效 | 无效 有效 |
顶替前卡 | 顶替 不顶替 |
9.cardType=34楼栋卡
key | value |
---|---|
是否允许开反锁 | 允许 不允许 |
通道模式 | 打开 关闭 |
有效期 | 具体参数 |
有效时间段1 | 具体参数 |
有效时间段2 | 具体参数 |
楼栋 | 具体参数 |
是否有效 | 无效 有效 |
顶替前卡 | 顶替 不顶替 |
9.cardType=35楼栋层
key | value |
---|---|
是否允许开反锁 | 允许 不允许 |
通道模式 | 打开 关闭 |
有效期 | 具体参数 |
有效时间段1 | 具体参数 |
有效时间段2 | 具体参数 |
楼层 | 具体参数 |
是否有效 | 无效 有效 |
顶替前卡 | 顶替 不顶替 |
接口说明:
- 远程开锁
业务能力:
- openSmartOpenLock
本地服务器版本:
- V1.4.6
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartOpenLock",
"data": {
"lockCode": "1.2.201A"
}
}
响应示例
{
"msgId": 77568002,
"resultCode": 0,
"reason": "",
"method": "openSmartOpenLock",
"data": {
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
- | - | - | - | - | - |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500201 | 网关不存在 |
500207 | 门锁未绑定网关 |
500300 | 房间不存在 |
500316 | 房间未关联门锁 |
退出发卡器录指纹模式
业务能力:
- openSmartCancelFingerPrintModel
本地服务器版本:
- V2.7.5
Content-Version:
- 1.0
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | V2.7.5新增 |
云端发布Pub(示例):
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLLjF+g==",
"method": "openSmartCancelFingerPrintModel",
"data": {
"cardDispenserSeq": "MNR63218751FB5"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"msgId": 2107619328,
"resultCode": 0,
"reason": "",
"method": "openSmartAddOffLineKey",
"data":{}
}
接口说明:
- 退房卡
注意:只支持宾客卡制作退房卡,且授权已退房,门锁刷退房卡后宾客卡失效。
业务能力:
- operSmartCheckOutCard
本地服务器版本:
- V1.9.0
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表查看 |
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
checkInId | 1 | String | 必填 | 授权ID | -- |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPO7eUZd1KOag3yXrf3XwewiOD3jz0YXIcyE715XqIMK8rbRD0bM47W1TFtZLsJHbJA==",
"method": "operSmartCheckOutCard",
"data": {
"lockCode":"1.2.204",
"cardDispenserSeq": "MNR63218751FB5",
"checkInId":"Di5Wj2CJGtk="
}
}
响应示例
{
"msgId": 1527377926,
"resultCode": 0,
"reason": "",
"method": "operSmartCheckOutCard",
"data": {
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500506 | 入住信息不存在 |
接口说明:
- 重新下发待处理授权
业务能力:
- openSmartRoomResetSendKey
本地服务器版本:
- V1.8.0
Content-Version:
- 1.0
参数:
| 参数名 | 层级 | 类型 | 条件 | 说明 | 备注 | | ----- | ---- | ---- | ---- | ---- | ---- ||relaId| 1| String | 必填 | 联动授权关系ID|可通过入住详情查看|
请求示例
{
"method": "openSmartRoomResetSendKey",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53FdnUOGWhdPWCSQzJiLVdYT4iqybECMEoq8Nx1GU2tCGVkCZMcrLk7kUQ==",
"data": {
"relaId": "ycMbDLEtfXY="
}
}
响应示例
{
"msgId": 1527377926,
"resultCode": 0,
"reason": "",
"method": "openSmartRoomResetSendKey",
"data": {
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500010 | 授权不存在 |
推送事件
接口说明:
- 使能禁止钥匙事件推送
业务能力:
- hxjEnableKeyEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=28 表示使能进制设置事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
logTypeFlag | 1 | 是 | int | 使能禁止flag | logTypeFlag=1按钥匙ID使能 logTypeFlag=2按钥匙类型使能 logTypeFlag=3按用户ID使能 logTypeFlag=4按钥匙ID禁止 logTypeFlag=5按钥匙类型禁止 logTypeFlag=6按用户ID禁止 |
keyType | 1 | 否 | int | 钥匙类型 | logTypeFlag=2 和 logTypeFlag=5 生效 |
lockKeyId | 1 | 否 | int | 钥匙ID | logTypeFlag=1 和 logTypeFlag=4 生效 |
keyGroupId | 1 | 否 | int | 用户ID | logTypeFlag=3 和 logTypeFlag=6 生效 |
keyGroupName | 1 | 否 | String | 用户名 | logTypeFlag=3 和 logTypeFlag=6 生效 |
示例
{
"requestId": "619158573",
"method": "hxjEnableKeyEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 28,
"electricNum":30,
"eventTime":1632120896,
"operKeyGroupId":900,
"operKeyGroupName":"zzy",
"logTypeFlag":6,
"keyGroupId":2001,
"keyGroupName":"zzy"
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 修改密码事件推送
业务能力:
- hxjUpdatePwEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=24 表示修改密码事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
lockKeyId | 1 | 是 | int | 钥匙ID | - |
示例
{
"requestId": "619158573",
"method": "hxjUpdatePwEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 24,
"electricNum":30,
"eventTime":1632120896,
"operKeyGroupId":900,
"operKeyGroupName":"zzy",
"keyGroupId":2001,
"keyGroupName":"Test",
"keyType":1,
"lockKeyId":11
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 修改钥匙有效期事件推送
业务能力:
- hxjUpdateKeyValidityEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=34 表示修改钥匙有效期事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
logTypeFlag | 1 | 是 | int | 修改方式 | 1 按钥匙ID修改 2 按用户ID修改 |
authorMode | 1 | 是 | int | 授权方式 | 1 有效期授权 2 周期授权 |
beginTime | 1 | 是 | long | 授权开始时间 | 单位:秒 |
endTime | 1 | 是 | long | 授权结束时间 | 单位:秒 |
weeks | 1 | 否 | int | 星期数 | bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效,bit0=1 星期一 authorMode=2 有效 |
dayStartTimes | 1 | 否 | String | 每日起始时间 | authorMode=2 有效 |
dayEndTimes | 1 | 否 | String | 每日结束时间 | authorMode=2 有效 |
keyContent | 1 | 否 | String | 钥匙内容 | keyType = 2 表示密码 keyType =4 表示卡号 |
useNum | 1 | 否 | int | 使用次数 | 0~254:表示剩余有效次数 255:表示无限次 |
示例
{
"requestId": "619158573",
"method": "hxjUpdateKeyValidityEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 34,
"electricNum":30,
"eventTime":1632120896,
"operKeyGroupId":900,
"operKeyGroupName":"zzy",
"logTypeFlag":1,
"authorMode":1,
"keyGroupId":2001,
"keyGroupName":"Test",
"keyType":1,
"beginTime":1632120896,
"endTime":1632122537,
"useNum":255
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 删除钥匙事件推送
业务能力:
- hxjDeleteKeyEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=9 表示删除钥匙事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
logTypeFlag | 1 | 是 | int | 删除方式 | 0 按编号删除 1 按类型删除 2 按内容删除 3 按用户ID删除 |
keyGroupId | 1 | 否 | int | 钥匙所属用户ID | logTypeFlag=3有效 |
keyGroupName | 1 | 否 | String | 钥匙所属用户名 | logTypeFlag=3有效 |
keyType | 1 | 否 | int | 钥匙类型 | logTypeFlag=1 按位域置1,则删除指定钥匙类型钥匙 logTypeFlag=2 结合lockKeyId固定一个钥匙删除 |
lockKeyId | 1 | 否 | int | 钥匙ID | logTypeFlag=0有效 |
keyContent | 1 | 否 | int | 钥匙内容 | 适用离线密码未使用 按内容删除 |
示例
{
"requestId": "619158573",
"method": "hxjDeleteKeyEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 9,
"electricNum":30,
"eventTime":1632120896,
"operKeyGroupId":900,
"operKeyGroupName":"zzy",
"logTypeFlag":3,
"keyGroupId":2001,
"keyGroupName":"Test"
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
发卡器按压指纹推送通知
业务能力:
- hxjUploadFingerPrintNumPush
本地服务器版本:
- V1.5.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
resultCode | 1 | 是 | int | 确认码 | 0 成功 其他失败 |
reason | 1 | 否 | String | 原因 | -- |
indexNum | 1 | 否 | int | 当前次数 | 成功:必填 |
totalNum | 1 | 否 | int | 总次数 | 成功:必填 indexNum = totalNum表示按压完成 |
fingerPrintSign | 1 | 否 | String | 指纹标识 | indexNum = totalNum必填 1 小时内有效 V2.0.0版本永久有效 |
fingerPrint | 1 | 否 | String | 指纹特征值 | indexNum = totalNum必填 V2.7.3新增 |
示例 |
{
"requestId": "619158573",
"method": "hxjUploadFingerPrintNumPush",
"uploadTime": 1569317324,
"data": {
"resultCode": 0,
"indexNum": 1,
"totalNum": 4,
"fingerPrintSign":"1692774079148466712"
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 告警事件推送(废弃)
推送的事件有: 低电量告警 故障告警 强拆报警
业务能力:
- hxjWarnEventPush
本地服务器版本:
- V1.5.2 (V1.6.0废弃)
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 告警类型 | 1 强拆告警,3 低电量告警,18 故障告警 |
logTypeFlag | 1 | 否 | int | 故障类型 | 当eventType=18时有效,为空时,表示未知异常,0 按键短路,1 存储器异常,2 触摸芯片异常,3 低压检测电路异常,4 读卡电路异常,5 检卡电路异常,6 指纹通讯异常,7 RTC晶振电路异常 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
示例
{
"requestId": "619158573",
"method": "hxjWarnEventPush",
"uploadTime": 1569317324,
"data": {
"lockCode": "1.1.2",
"eventType": 1,
"electricNum":30
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 周期关闭事件推送
业务能力:
- hxjCycleCloseEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=49 表示周期关闭事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
beginTime | 1 | 是 | long | 授权开始时间 | 单位:秒 |
endTime | 1 | 是 | long | 授权结束时间 | 单位:秒 |
weeks | 1 | 否 | int | 星期数 | bit0~bit6分别表示,对应bit位数置1,则表示关闭当天的周期开锁,bit0=1 星期一 |
示例
{
"requestId": "619158573",
"method": "hxjCycleCloseEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 49,
"electricNum":30,
"eventTime":1632120896,
"operKeyGroupId":900,
"operKeyGroupName":"zzy",
"keyGroupId":2001,
"keyGroupName":"Test",
"weeks":1
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 周期开启事件推送
业务能力:
- hxjCycleOpenEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=48 表示周期开锁开启事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
beginTime | 1 | 是 | long | 授权开始时间 | 单位:秒 |
endTime | 1 | 是 | long | 授权结束时间 | 单位:秒 |
weeks | 2 | 是 | int | 星期数 | bit0~bit6分别表示,对应bit位数置1,则表示当天周期开启 例如:bit0=1 星期一 |
dayEndTimes | 3 | 是 | String | 每日结束时间 | - |
示例
{
"requestId": "619158573",
"method": "hxjCycleOpenEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 48,
"electricNum": 30,
"eventTime": 1632120896,
"operKeyGroupId": 900,
"operKeyGroupName": "zzy",
"beginTime": 1632120896,
"endTime": 1632122537,
"timeList": [{
"weeks": 1,
"timePeriods": [{
"dayStartTimes": "12:00",
"dayEndTimes": "14:00"
},
{
"dayStartTimes": "16:00",
"dayEndTimes": "18:00"
}
]
}]
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 开锁事件推送
业务能力:
- hxjOpenLockEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=4 表示开锁事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
combine | 1 | 是 | int | 是否组合 | 0非组合 1组合 |
normalOpen | 1 | 是 | int | 是否常开 | 0非常开 1常开 |
insideOpen | 1 | 是 | int | 是否门内开锁 | 0门外 1门内 |
keyContent1 | 1 | 否 | String | 钥匙内容 | keyType=2 keyContent1为密码 keyType=4 keyContent1为卡号 |
keyGroupId2 | 1 | 否 | int | 用户ID | combine=1有效 |
keyGroupName2 | 1 | 否 | String | 用户名 | combine=1有效 |
keyType2 | 1 | 否 | int | 钥匙类型 | combine=1有效 |
lockKeyId2 | 1 | 否 | int | 钥匙ID | combine=1有效 |
useNum2 | 1 | 否 | int | 剩余有效次数 | combine=1有效 |
示例
{
"requestId": "619158573",
"method": "hxjOpenLockEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 4,
"electricNum":30,
"eventTime":1632120896,
"normalOpen":0,
"normalOpen":0,
"insideOpen":0,
"keyGroupId1":2001,
"keyGroupName1":"Test",
"keyType1":1,
"lockKeyId1":11
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 按内容修改钥匙事件推送
业务能力:
- hxjUpdateKeyByContentEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=46 表示按内容修改钥匙事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
authorMode | 1 | 是 | int | 授权方式 | 1 有效期授权 2 周期授权 |
beginTime | 1 | 是 | long | 授权开始时间 | 单位:秒 |
endTime | 1 | 是 | long | 授权结束时间 | 单位:秒 |
weeks | 1 | 否 | int | 星期数 | bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效,bit0=1 星期一 authorMode=2 有效 |
dayStartTimes | 1 | 否 | String | 每日起始时间 | authorMode=2 有效 |
dayEndTimes | 1 | 否 | String | 每日结束时间 | authorMode=2 有效 |
keyContent | 1 | 否 | String | 钥匙内容 | keyType = 2 表示密码 keyType =4 表示卡号 |
useNum | 1 | 否 | int | 使用次数 | 0~254:表示剩余有效次数 255:表示无限次 |
示例
{
"requestId": "619158573",
"method": "hxjUpdateKeyByContentEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 46,
"electricNum":30,
"eventTime":1632120896,
"operKeyGroupId":900,
"operKeyGroupName":"zzy",
"authorMode":1,
"keyGroupId":2001,
"keyGroupName":"Test",
"keyType":1,
"beginTime":1632120896,
"endTime":1632122537,
"useNum":255
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
说明:
-
推送通知格式描述
-
当联网工程所平台,有数据要推送到第三方时,会按该协议推送数据
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
requestId | 1 | 是 | string | 关联消息的Id | 消息的序列号,唯一标识该消息 |
uploadTime | 1 | 是 | Long | 上报时间 | 设备上报数据的时间,时间戳,单位:秒 |
sign | 1 | 是 | string | 签名 | -- |
示例
{
"requestId": "619158573",
"method": "hxjGatewaySendKeyResultPush",
"uploadTime": 1569317324,
"data": {
"checkInId": "1sdfsdf=",
"resultCode": 1
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 添加钥匙事件推送
业务能力:
- hxjAddKeyEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=8 表示添加钥匙事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
authorMode | 1 | 是 | int | 授权方式 | 1 有效期授权 2 周期授权 |
beginTime | 1 | 是 | long | 授权开始时间 | 单位:秒 |
endTime | 1 | 是 | long | 授权结束时间 | 单位:秒 |
weeks | 1 | 否 | int | 星期数 | bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效,bit0=1 星期一 authorMode=2 有效 |
dayStartTimes | 1 | 否 | String | 每日起始时间 | authorMode=2 有效 |
dayEndTimes | 1 | 否 | String | 每日结束时间 | authorMode=2 有效 |
keyContent | 1 | 否 | String | 钥匙内容 | keyType = 2 表示密码 keyType =4 表示卡号 |
useNum | 1 | 否 | int | 使用次数 | 0~254:表示剩余有效次数 255:表示无限次 |
示例
{
"requestId": "619158573",
"method": "hxjAddKeyEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 8,
"electricNum":30,
"eventTime":1632120896,
"operKeyGroupId":900,
"operKeyGroupName":"zzy",
"authorMode":1,
"keyGroupId":2001,
"keyGroupName":"Test",
"keyType":1,
"beginTime":1632120896,
"endTime":1632122537,
"useNum":255
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 系统参数设置推送
业务能力:
- hxjSystemSetEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=27 表示系统参数事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
lockOpen | 1 | 可选 | int | 开锁模式 | 1~2,1-单一开锁; 2-组合开锁 |
normallyOpen | 1 | 可选 | int | 常开模式 | 1~2,1-常开模式启用; 2-常开模式关闭 |
isSound | 1 | 可选 | int | 语音启闭 | 1~2,1开关门语音打开; 2开关门语音关闭 |
sysVolume | 1 | 可选 | int | 系统音量 | 0~5,0-表示音量不可调节,其他表示音量大小 |
isTamperWarn | 1 | 可选 | int | 防撬报警启闭 | 0无防撬报警功能; 1防撬报警启动; 2防撬报警功能关闭 |
isLockCoreWarn | 1 | 可选 | int | 锁芯报警启闭 | 0无锁芯报警功能;1锁芯报警启动; 2锁芯报警功能关闭 |
isLock | 1 | 可选 | int | 反锁功能启闭 | 0~2 0无反锁开关;1-反锁功能启用; 2-反锁功能关闭 |
isLockCap | 1 | 可选 | int | 锁头盖报警启闭 | 1~2,1-启用,2关闭 |
sysLanguage | 1 | 可选 | int | 系统语言 | 1~5,1:简体中文 2:繁体中文 3:英文 4:越南文 5:泰文 |
示例
{
"requestId": "619158573",
"method": "hxjAddKeyEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 27,
"electricNum":30,
"eventTime":1632120896,
"operKeyGroupId":900,
"operKeyGroupName":"zzy",
"lockOpen":1
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
网关下发指纹、人脸结果推送通知
业务能力:
- hxjGatewaySendKeyResultPush
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | 是 | String | 入住ID | — |
resultCode | 1 | 是 | int | 结果码 | 1成功 其他失败 |
reason | 1 | 否 | String | 原因 | 失败原因 |
示例 |
{
"requestId": "619158573",
"method": "hxjGatewaySendKeyResultPush",
"uploadTime": 1569317324,
"data": {
"checkInId": "1sdfsdf=",
"resultCode": 1
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 通用事件推送
业务能力:
- hxjCommonEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 |
logTypeFlag | 1 | 否 | int | 事件Flag | 当eventType=18时有效,为空时,表示未知异常,0 按键短路,1 存储器异常,2 触摸芯片异常,3 低压检测电路异常,4 读卡电路异常,5 检卡电路异常,6 指纹通讯异常,7 RTC晶振电路异常 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
示例
{
"requestId": "619158573",
"method": "hxjCommonEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 1,
"electricNum":30,
"eventTime":1632120896
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
接口说明:
- 错误开锁事件推送
业务能力:
- hxjErrorOpenEventPush
本地服务器版本:
- V1.6.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=41 表示错误开锁事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
logTypeFlag | 1 | 是 | int | 钥匙校验结果 | 1钥匙在门锁端无法通过校验, 开锁失败 2钥匙在门锁端可以通过校验, 但门锁反锁, 钥匙无法开反锁, 开锁失败 |
keyContent | 1 | 是 | int | 钥匙内容 | keyType=2 keyContent为密码 keyType=4 keyContent为卡号 |
示例
{
"requestId": "619158573",
"method": "hxjErrorOpenEventPush",
"data": {
"lockCode": "1.1.2",
"eventType": 41,
"electricNum":30,
"eventTime":1632120896,
"logTypeFlag":1,
"keyType":2,
"keyContent":"123456"
},
"sign": "CC0A449F66A4A226474FE74BEBBC2E4F"
}
查询
接口说明:
- 入住详情
业务能力:
- openSmartCheckInDetail
本地服务器版本:
- V1.8.0
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
请求示例
{
"method": "openSmartCheckInDetail",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53FdnUOGWhdPWCSQzJiLVdYT4iqybECMEoq8Nx1GU2tCGVkCZMcrLk7kUQ==",
"data": {
"checkInId":"+LD/tJysceg="
}
}
响应示例
{
"msgId": 1527377926,
"resultCode": 0,
"reason": "",
"method": "openSmartCheckInDetail",
"data": {
"checkInId": "+LD/tJysceg=",
"checkInName": "QWEQWE",
"buildingName": "A栋",
"floorCode": 1,
"roomName": "A103",
"endTime": 1642896000,
"beginTime": 1642748400,
"state": 3,
"authType": 2,
"authorMode": 1,
"addMode": 1,
"idType": 1,
"useNum": 255,
"password": "WW2CW+hvrInkRrKAgRp4HQ==",
"auth": [{
"relaId": "q9vK01P2lmg=",
"channelType": 5,
"state": 3,
"password": "WW2CW+hvrInkRrKAgRp4HQ==",
"sendStatus": 2,
"local": "Hotel gate"
}, {
"relaId": "XgHdpL5KyGI=",
"channelType": 8,
"channelName": "A103",
"buildingName": "A栋",
"floorCode": 1,
"roomName": "A103",
"state": 1,
"password": "WW2CW+hvrInkRrKAgRp4HQ==",
"sendStatus": 1,
"local": "Room"
}]
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
buildingName | 1 | String | 必填 | 楼栋名称 | |
roomName | 1 | String | 必填 | 房间名称 | |
state | 1 | int | 必填 | 状态 | 1正常 3 待下发生效 4 挂失 5 待下发挂失 6待下发续住 7冻结 |
authType | 1 | int | 必填 | 授权类型 | 1.指纹 2密码 4卡片 16二维码 64人脸下发 128 APP远程 129微信授权 256 人脸授权 |
authorMode | 1 | int | 必填 | 有效期类型 | 1有效时间段 2周期 3永久 4临时 |
addMode | 1 | int | 可选 | 授权添加方式 | 1远程下发 3离线生成 |
weeks | 1 | int | 可选 | 周期 | authorMode = 0x02有效,按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效。 若authorMode!= 0x02,则Weeks = 0 如1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | authorMode = 0x02有效 格式:hh:mm |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | authorMode = 0x02有效 格式:hh:mm |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
countryCode | 1 | int | 可选 | 国家编码 | |
appKey | 1 | int | 可选 | 手机APP授权 | 0或不填 ,表示不授权 1授权 |
miniProgramKey | 1 | int | 可选 | 微信授权 | 0或不填,表示不授权 1授权 |
useNum | 1 | int | 可选 | 使用次数 | 不填或255表示无限次 限制次数,最大是254次 |
normallyOpen | 1 | int | 可选 | 常开模式 | 1常开打开,常开模式 2常开关闭,正常模式 不传默认2,常开关闭 |
isLock | 1 | int | 可选 | 反锁功能 | 1:反锁功能开启,可开反锁 2:反锁功能关闭,不能开反锁 不传默认2,反锁功能关闭 |
password | 1 | String | 可选 | 密码 | AES加密 |
picture | 2 | String | 可选 | Base64图片 | authType = 64 或 authType = 256 有效 2.5.0版本新增 |
auth | 1 | list | 可选 | 授权详情 | |
relaId | 2 | String | 必填 | 联动授权关系ID | |
channelType | 2 | Int | 必填 | 通道类型 | 5大门 6楼栋 7楼层 8房间 9套房 |
roomName | 2 | String | 必填 | 房间名称 | |
state | 2 | int | 必填 | 状态 | 1已入住 2待下发退房 3待下发入住 4挂失 5待下发挂失 6待下发续住 |
sendStatus | 2 | int | 必填 | 状态 | 1成功 2下发失败 3下发中 |
password | 2 | String | 可选 | 密码 | authType=2 表示为密码 AES加密 authType=4表示为卡片 |
useNum | 2 | int | 可选 | 使用次数 | 255或空表示无限次 限制次数,最大是254次 |
picture | 2 | String | 可选 | 人脸图片 | base64编码 |
异常码 |
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
接口说明:
- 待处理入住列表
业务能力:
- openSmartDealCheckInList
本地服务器版本:
- V1.8.0
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 否 | 开始记录数 | 默认为0 |
getNum | 1 | int | 否 | 分页大小 | 默认10,最大50 |
buildingCode | 1 | int | 否 | 楼栋码 | -- |
floorCode | 1 | int | 否 | 楼层码 | -- |
roomName | 1 | String | 否 | 房间名称 | -- |
customerName | 1 | String | 否 | 房客名称 | -- |
cardNo | 1 | String | 否 | 卡号 | -- |
checkInAuthType | 1 | int | 否 | 入住类型 | 1 指纹 2自定义密码 3离线卡片 4手机授权 5离线密码 6下发卡片 7人脸识别 8二维码(V2.5.0新增) 9人脸下发 (V2.5.0新增) |
state | 1 | int | 否 | 状态 | 2待下发退房 3待下发入住 5待下挂失 6待下发续住 |
请求示例 |
{
"method": "openSmartDealCheckInList",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53FdnUOGWhdPWCSQzJiLVdYT4iqybECMEoq8Nx1GU2tCGVkCZMcrLk7kUQ==",
"data": {
"startNum": 0,
"getNum": 10
}
}
响应示例
{
"msgId": 738318385,
"resultCode": 0,
"reason": "",
"method": "openSmartDealCheckInList",
"data": {
"listSum": 1,
"totalPages": 1,
"list": [{
"checkInId": "+LD/tJyceg=",
"lockCode": "1.1.103",
"updateTime": 1642750740,
"buildingName": "A栋",
"floorCode": 1,
"roomName": "A103",
"checkInName": "QWEQWE",
"checkInAuthType": 2,
"state": 3
}]
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
listSum | 1 | int | 必填 | 总数 | -- |
totalPages | 1 | int | 必填 | 总页数 | -- |
list | 1 | list | 可选 | -- | |
checkInId | 2 | String | 可选 | 入住ID | -- |
lockCode | 2 | String | 可选 | 门锁号 | -- |
updateTime | 2 | long | 可选 | 时间 | -- |
buildingName | 2 | String | 可选 | 楼栋名 | -- |
floorCode | 2 | int | 可选 | 楼层码 | -- |
roomName | 2 | String | 可选 | 房间名 | -- |
checkInName | 2 | String | 可选 | 姓名 | -- |
checkInAuthType | 2 | int | 可选 | 授权类型 | 1 指纹 2自定义密码 3离线卡片 4手机授权 5离线密码 6下发卡片 7人脸识别 8二维码(V2.5.0新增) 9人脸下发 (V2.5.0新增) |
state | 2 | int | 可选 | 状态 | 2待下发退房 3待下发入住 5待下发挂失 6待下发续住 |
keyContent | 2 | String | 可选 | 钥匙内容 | -- |
异常码 | 异常描述 |
---|---|
-- | -- |
接口说明:
- 房间入住列表
业务能力:
- openSmartCheckInList
本地服务器版本:
- V2.3.0
Content-Version:
- 1.0
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 |
请求示例
{
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53Fdt/AX7/to/I8IDaYsFkk1cIkz5Ez2Y/PvhDDKWppSuXv1QLcPyLjF+g==",
"method": "openSmartCheckInList",
"data": {
"lockCode":"1.1.202"
}
}
响应示例
{
"msgId": 1462340629,
"resultCode": 0,
"reason": "",
"method": "hotelToolsCheckInList",
"data": {
"list": [{
"checkInId": "lbtKa+ZuQ=",
"checkInName": "黄",
"beginTime": 1668736800,
"endTime": 1668949200,
"state": 1,
"authType": 16,
"authorMode": 1,
"addMode": 1,
"phoneNo": "15815839999",
"countryCode": 86,
"useNum": 255
}
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
list | 1 | List | 可选 | -- | |
checkInId | 2 | String | 必填 | 授权ID | |
state | 2 | int | 必填 | 状态 | 1正常 3 待下发生效 4 挂失 5 待下发挂失 6待下发续住 7冻结 |
authType | 2 | int | 必填 | 授权类型 | 1.指纹 2密码 4卡片 16二维码 64 人脸下发 128 APP远程 129微信授权 256 人脸识别授权 |
authorMode | 2 | int | 必填 | 有效期类型 | 1有效时间段 2周期 3永久 4临时 |
addMode | 2 | int | 可选 | 授权添加方式 | 1远程下发 3离线生成 |
weeks | 2 | int | 可选 | 周期 | authorMode = 0x02有效,按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效。 若authorMode!= 0x02,则Weeks = 0 如1001011就表示周日,周四,周二,周一 |
dayStartTimes | 2 | String | 可选 | 每日起始时间 | 格式:hh:mm |
dayEndTimes | 2 | String | 可选 | 每日结束时间 | 格式:hh:mm |
idType | 2 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
countryCode | 2 | int | 可选 | 国家编码 | |
appKey | 2 | int | 可选 | 手机APP授权 | 0或不填 ,表示不授权 1授权 |
miniProgramKey | 2 | int | 可选 | 微信授权 | 0或不填,表示不授权 1授权 |
useNum | 2 | int | 可选 | 使用次数 | 不填或255表示无限次 限制次数,最大是254次 |
normallyOpen | 2 | int | 可选 | 常开模式 | 1常开打开,常开模式 2常开关闭,正常模式 不传默认2,常开关闭 |
isLock | 2 | int | 可选 | 反锁功能 | 1:反锁功能开启,可开反锁 2:反锁功能关闭,不能开反锁 不传默认2,反锁功能关闭 |
password | 2 | String | 可选 | 密码 | -- |
picture | 2 | String | 可选 | Base64图片 | authType = 64 或 authType = 256 有效 2.5.0版本新增 |
异常码
异常码 | 异常描述 |
---|---|
-- | -- |
接口说明:
- 房间列表查询
业务能力:
- openSmartRoomList
本地服务器版本:
- V1.5.1
Content-Version:
- 1.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | 是 | int | 开始记录数 | 默认为0 |
pageSize | 1 | 是 | int | 分页大小 | 默认10,最大50 |
请求示例 |
{
"method": "openSmartRoomList",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53FdqhmpCsliBF5FkEoCQ7gSlijO9DTm8aZl/xV6UpARSkWSy/Go4HfWaA==",
"data": {
"startNum": 0,
"pageSize": 10
}
}
响应示例
{
"msgId": 27232299,
"resultCode": 0,
"reason": "",
"method": "openSmartRoomList",
"data": {
"roomList": [{
"roomName": "0216",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 101,
"lockCode": "1.1.101",
"isVisible": 1,
"lockMac": "6077712264da",
"hardwareVersion": "FMTBL-01LP-HDKFX V2A",
"softwareVersion": "01000444",
"aesKey": "5JgpPPi8M+jWhUaIljzcjyKI8T0quSSVyhzTu5Lak24=",
"adminAuthCode": "ZK/Mv2Gu8swTwsZWIlEuYw==",
"generalAuthCode": "wJdwEgeSS1LcR/IMJd49uQ==",
"tempAuthCode": "tlwfBTQe3azLEOC4ctFZKQ=="
}, {
"roomName": "103",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 103,
"lockCode": "1.1.103",
"isVisible": 1,
"lockMac": "0cec80e804d0",
"hardwareVersion": "M157-9905BCT-FKHF V1",
"softwareVersion": "01000444",
"aesKey": "WVbBneUskUcbmz5lUJSv5PLa/gDXG7VZsAk6HIB05NI=",
"adminAuthCode": "hPm9zXdXcLq2NmcDvQ4dzw==",
"generalAuthCode": "HLA1l+XQAl2fuf7rlPIYfA==",
"tempAuthCode": "dD4lHk/zk3Bqd+l6VuR1Lw=="
}, {
"roomName": "103A",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 103,
"subRoomName": "A",
"lockCode": "1.1.103A",
"isVisible": 1,
"lockMac": "806fb0517c47",
"hardwareVersion": "MTBL-HXJ01-HF-FK V2A",
"softwareVersion": "01000433",
"aesKey": "A6426qo8zJPuRX1axoh3avx1eLixFBl8buykQkFTuv8=",
"adminAuthCode": "uUGILDQ+DmG9AVHfMa9J3g==",
"generalAuthCode": "VdxRF2p9SgJ9SI7IopzuLw==",
"tempAuthCode": "RmFeAIKTeqDhoCzA20pQ2g=="
}, {
"roomName": "330",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 330,
"lockCode": "1.1.330",
"isVisible": 1,
"lockMac": "e4e112d62a67",
"hardwareVersion": "FMTBL-01LP-HDKFX V2A",
"softwareVersion": "01000442",
"aesKey": "Io7yX8gn+WpPDO5GeqfnDNdlcrbM5rQqGaMoUx9oAxE=",
"adminAuthCode": "MAq4jkq8z9992dMSa1Y99Q==",
"generalAuthCode": "f3DZmMfYojq+5E08nDiCQA==",
"tempAuthCode": "k2BbsyEzI5Bd22rPt5KsIQ=="
}, {
"roomName": "1011",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 1011,
"lockCode": "1.1.1011",
"isVisible": 1,
"lockMac": "806fb0518534",
"hardwareVersion": "MTBL-HXJ01-HFKF V2A",
"softwareVersion": "01000444",
"aesKey": "AETaEfDq/ZGXZAmKVKf8aPrscKUsAC61GxLcSh1Z9Ks=",
"adminAuthCode": "i9B4i8kVfoiUgBuIEAVTMA==",
"generalAuthCode": "gAUUZ8hKyNcU3jwOJYGE1A==",
"tempAuthCode": "SMGGUOlFXfv/ZNahhjOe2w=="
}, {
"roomName": "201",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 201,
"lockCode": "1.2.201",
"isVisible": 1,
"lockMac": "806fb051887b",
"hardwareVersion": "MTBL-HXJ01-HF-FK V20",
"softwareVersion": "01000448",
"aesKey": "tx8Uao7D435CQiGz93Tawk0HFyMp1p9iCzzYcKP4evg=",
"adminAuthCode": "CAqgmyGBP0FSmWz4kuvwJg==",
"generalAuthCode": "ajmRDLwUyn2XMRVbjGQM6g==",
"tempAuthCode": "ddp1VIgmiS8Yx5dW3kb2zw=="
}, {
"roomName": "201A",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 201,
"subRoomName": "A",
"lockCode": "1.2.201A",
"isVisible": 1,
"lockMac": "806fb0518514",
"hardwareVersion": "MTBL-HXJ01-HF-FK V20",
"softwareVersion": "01000448",
"aesKey": "zkcTTWK85O0L/D/aA5Cfqgg1isbCvonk7PuULQDg35I=",
"adminAuthCode": "7mzT908VeuvJYDZwxU3OWw==",
"generalAuthCode": "N1WbpqqRhXnkpVc/X3iKkA==",
"tempAuthCode": "xcbBYa8ewZmoY6zJDl05lA=="
}, {
"roomName": "201B",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 201,
"subRoomName": "B",
"lockCode": "1.2.201B",
"isVisible": 1,
"lockMac": "e4e112d62a57",
"hardwareVersion": "FMTBL-01LP-HDKFX V2A",
"softwareVersion": "01000442",
"aesKey": "S23pdqLU2iIatrt5xwP7Z5/vIn0q0Mwa3KIAcwVHQ6Y=",
"adminAuthCode": "v/d8wctHujKgfe8fi+nveA==",
"generalAuthCode": "Sp0G/P3/ZaoVXu4vObVbKg==",
"tempAuthCode": "cdnyOPUJxlGCDfxTXMNv3A=="
}, {
"roomName": "202-未顶替",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 202,
"lockCode": "1.2.202",
"isVisible": 1
}, {
"roomName": "203-未顶替",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 203,
"lockCode": "1.2.203",
"isVisible": 1
}
],
"listSum": 13,
"totalPages": 2
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
subRoomName | 2 | String | 否 | 套房号 | A-Z大写 |
isVisible | 2 | int | 是 | 是否显示到房态图 | 1表示显示,0表示不显示 |
adminAuthCode | 2 | String | 是 | 管理员鉴权码 | 通过AES加密,有权限调用所有蓝牙接口 |
generalAuthCode | 2 | String | 是 | 普通用户鉴权码 | 通过AES加密,没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限。 |
tempAuthCode | 2 | String | 是 | 临时鉴权码 | 通过AES加密,与普通授用户权码一样,没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限。 |
接口说明:
- 房间列表查询
业务能力:
- openSmartRoomList
本地服务器版本:
- V1.5.4
Content-Version:
- 1.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | 是 | int | 开始记录数 | 默认为0 |
pageSize | 1 | 是 | int | 分页大小 | 默认10,最大50 |
请求示例 |
{
"method": "openSmartRoomList",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53FdqhmpCsliBF5FkEoCQ7gSlijO9DTm8aZl/xV6UpARSkWSy/Go4HfWaA==",
"data": {
"startNum": 0,
"pageSize": 10
}
}
响应示例
{
"msgId": 27232299,
"resultCode": 0,
"reason": "",
"method": "openSmartRoomList",
"data": {
"roomList": [{
"roomName": "0216",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 101,
"lockCode": "1.1.101",
"isVisible": 1,
"lockMac": "6077712264da",
"hardwareVersion": "FMTBL-01LP-HDKFX V2A",
"softwareVersion": "01000444",
"aesKey": "5JgpPPi8M+jWhUaIljzcjyKI8T0quSSVyhzTu5Lak24=",
"adminAuthCode": "ZK/Mv2Gu8swTwsZWIlEuYw==",
"generalAuthCode": "wJdwEgeSS1LcR/IMJd49uQ==",
"tempAuthCode": "tlwfBTQe3azLEOC4ctFZKQ=="
}, {
"roomName": "103",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 103,
"lockCode": "1.1.103",
"isVisible": 1,
"lockMac": "0cec80e804d0",
"hardwareVersion": "M157-9905BCT-FKHF V1",
"softwareVersion": "01000444",
"aesKey": "WVbBneUskUcbmz5lUJSv5PLa/gDXG7VZsAk6HIB05NI=",
"adminAuthCode": "hPm9zXdXcLq2NmcDvQ4dzw==",
"generalAuthCode": "HLA1l+XQAl2fuf7rlPIYfA==",
"tempAuthCode": "dD4lHk/zk3Bqd+l6VuR1Lw=="
}, {
"roomName": "103A",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 103,
"subRoomName": "A",
"lockCode": "1.1.103A",
"isVisible": 1,
"lockMac": "806fb0517c47",
"hardwareVersion": "MTBL-HXJ01-HF-FK V2A",
"softwareVersion": "01000433",
"aesKey": "A6426qo8zJPuRX1axoh3avx1eLixFBl8buykQkFTuv8=",
"adminAuthCode": "uUGILDQ+DmG9AVHfMa9J3g==",
"generalAuthCode": "VdxRF2p9SgJ9SI7IopzuLw==",
"tempAuthCode": "RmFeAIKTeqDhoCzA20pQ2g=="
}, {
"roomName": "330",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 330,
"lockCode": "1.1.330",
"isVisible": 1,
"lockMac": "e4e112d62a67",
"hardwareVersion": "FMTBL-01LP-HDKFX V2A",
"softwareVersion": "01000442",
"aesKey": "Io7yX8gn+WpPDO5GeqfnDNdlcrbM5rQqGaMoUx9oAxE=",
"adminAuthCode": "MAq4jkq8z9992dMSa1Y99Q==",
"generalAuthCode": "f3DZmMfYojq+5E08nDiCQA==",
"tempAuthCode": "k2BbsyEzI5Bd22rPt5KsIQ=="
}, {
"roomName": "1011",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 1011,
"lockCode": "1.1.1011",
"isVisible": 1,
"lockMac": "806fb0518534",
"hardwareVersion": "MTBL-HXJ01-HFKF V2A",
"softwareVersion": "01000444",
"aesKey": "AETaEfDq/ZGXZAmKVKf8aPrscKUsAC61GxLcSh1Z9Ks=",
"adminAuthCode": "i9B4i8kVfoiUgBuIEAVTMA==",
"generalAuthCode": "gAUUZ8hKyNcU3jwOJYGE1A==",
"tempAuthCode": "SMGGUOlFXfv/ZNahhjOe2w=="
}, {
"roomName": "201",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 201,
"lockCode": "1.2.201",
"isVisible": 1,
"lockMac": "806fb051887b",
"hardwareVersion": "MTBL-HXJ01-HF-FK V20",
"softwareVersion": "01000448",
"aesKey": "tx8Uao7D435CQiGz93Tawk0HFyMp1p9iCzzYcKP4evg=",
"adminAuthCode": "CAqgmyGBP0FSmWz4kuvwJg==",
"generalAuthCode": "ajmRDLwUyn2XMRVbjGQM6g==",
"tempAuthCode": "ddp1VIgmiS8Yx5dW3kb2zw=="
}, {
"roomName": "201A",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 201,
"subRoomName": "A",
"lockCode": "1.2.201A",
"isVisible": 1,
"lockMac": "806fb0518514",
"hardwareVersion": "MTBL-HXJ01-HF-FK V20",
"softwareVersion": "01000448",
"aesKey": "zkcTTWK85O0L/D/aA5Cfqgg1isbCvonk7PuULQDg35I=",
"adminAuthCode": "7mzT908VeuvJYDZwxU3OWw==",
"generalAuthCode": "N1WbpqqRhXnkpVc/X3iKkA==",
"tempAuthCode": "xcbBYa8ewZmoY6zJDl05lA=="
}, {
"roomName": "201B",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 201,
"subRoomName": "B",
"lockCode": "1.2.201B",
"isVisible": 1,
"lockMac": "e4e112d62a57",
"hardwareVersion": "FMTBL-01LP-HDKFX V2A",
"softwareVersion": "01000442",
"aesKey": "S23pdqLU2iIatrt5xwP7Z5/vIn0q0Mwa3KIAcwVHQ6Y=",
"adminAuthCode": "v/d8wctHujKgfe8fi+nveA==",
"generalAuthCode": "Sp0G/P3/ZaoVXu4vObVbKg==",
"tempAuthCode": "cdnyOPUJxlGCDfxTXMNv3A=="
}, {
"roomName": "202-未顶替",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 202,
"lockCode": "1.2.202",
"isVisible": 1
}, {
"roomName": "203-未顶替",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 203,
"lockCode": "1.2.203",
"isVisible": 1
}
],
"listSum": 13,
"totalPages": 2
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
subRoomName | 2 | String | 否 | 套房号 | A-Z大写 |
isVisible | 2 | int | 是 | 是否显示到房态图 | 1表示显示,0表示不显示 |
gatewayState | 2 | int | 否 | 关联的网关状态,3表示在线,4表示离线,为空表示未关联网关 | 1.5.4版本增加 1.9.0版本后改为onlineStatue |
aesKey | 2 | String | 是 | 门锁AES128密钥 | 通过AES加密 |
adminAuthCode | 2 | String | 是 | 管理员鉴权码 | 通过AES加密,有权限调用所有蓝牙接口 |
generalAuthCode | 2 | String | 是 | 普通用户鉴权码 | 通过AES加密,没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限。 |
tempAuthCode | 2 | String | 是 | 临时鉴权码 | 通过AES加密,与普通授用户权码一样,没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限。 |
接口说明:
- 房间列表查询
业务能力:
- openSmartRoomList
本地服务器版本:
- V2.1.0
Content-Version:
- 1.0
功能变化:
- 1.增加房间状态返回
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | 是 | int | 开始记录数 | 默认为0 |
pageSize | 1 | 是 | int | 分页大小 | 默认10,最大50 |
请求示例 |
{
"method": "openSmartRoomList",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53FdqhmpCsliBF5FkEoCQ7gSlijO9DTm8aZl/xV6UpARSkWSy/Go4HfWaA==",
"data": {
"startNum": 0,
"pageSize": 10
}
}
响应示例
{
"msgId": 27232299,
"resultCode": 0,
"reason": "",
"method": "openSmartRoomList",
"data": {
"roomList": [{
"roomName": "0216",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 101,
"lockCode": "1.1.101",
"isVisible": 1,
"lockMac": "6077712264da",
"hardwareVersion": "FMTBL-01LP-HDKFX V2A",
"softwareVersion": "01000444",
"aesKey": "5JgpPPi8M+jWhUaIljzcjyKI8T0quSSVyhzTu5Lak24=",
"adminAuthCode": "ZK/Mv2Gu8swTwsZWIlEuYw==",
"generalAuthCode": "wJdwEgeSS1LcR/IMJd49uQ==",
"tempAuthCode": "tlwfBTQe3azLEOC4ctFZKQ==",
"roomState":1
}, {
"roomName": "103",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 103,
"lockCode": "1.1.103",
"isVisible": 1,
"lockMac": "0cec80e804d0",
"hardwareVersion": "M157-9905BCT-FKHF V1",
"softwareVersion": "01000444",
"aesKey": "WVbBneUskUcbmz5lUJSv5PLa/gDXG7VZsAk6HIB05NI=",
"adminAuthCode": "hPm9zXdXcLq2NmcDvQ4dzw==",
"generalAuthCode": "HLA1l+XQAl2fuf7rlPIYfA==",
"tempAuthCode": "dD4lHk/zk3Bqd+l6VuR1Lw==",
"roomState":1
}, {
"roomName": "103A",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 103,
"subRoomName": "A",
"lockCode": "1.1.103A",
"isVisible": 1,
"lockMac": "806fb0517c47",
"hardwareVersion": "MTBL-HXJ01-HF-FK V2A",
"softwareVersion": "01000433",
"aesKey": "A6426qo8zJPuRX1axoh3avx1eLixFBl8buykQkFTuv8=",
"adminAuthCode": "uUGILDQ+DmG9AVHfMa9J3g==",
"generalAuthCode": "VdxRF2p9SgJ9SI7IopzuLw==",
"tempAuthCode": "RmFeAIKTeqDhoCzA20pQ2g==",
"roomState":1
}, {
"roomName": "330",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 330,
"lockCode": "1.1.330",
"isVisible": 1,
"lockMac": "e4e112d62a67",
"hardwareVersion": "FMTBL-01LP-HDKFX V2A",
"softwareVersion": "01000442",
"aesKey": "Io7yX8gn+WpPDO5GeqfnDNdlcrbM5rQqGaMoUx9oAxE=",
"adminAuthCode": "MAq4jkq8z9992dMSa1Y99Q==",
"generalAuthCode": "f3DZmMfYojq+5E08nDiCQA==",
"tempAuthCode": "k2BbsyEzI5Bd22rPt5KsIQ==",
"roomState":1
}, {
"roomName": "1011",
"buildingCode": 1,
"floorCode": 1,
"roomCode": 1011,
"lockCode": "1.1.1011",
"isVisible": 1,
"lockMac": "806fb0518534",
"hardwareVersion": "MTBL-HXJ01-HFKF V2A",
"softwareVersion": "01000444",
"aesKey": "AETaEfDq/ZGXZAmKVKf8aPrscKUsAC61GxLcSh1Z9Ks=",
"adminAuthCode": "i9B4i8kVfoiUgBuIEAVTMA==",
"generalAuthCode": "gAUUZ8hKyNcU3jwOJYGE1A==",
"tempAuthCode": "SMGGUOlFXfv/ZNahhjOe2w==",
"roomState":1
}, {
"roomName": "201",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 201,
"lockCode": "1.2.201",
"isVisible": 1,
"lockMac": "806fb051887b",
"hardwareVersion": "MTBL-HXJ01-HF-FK V20",
"softwareVersion": "01000448",
"aesKey": "tx8Uao7D435CQiGz93Tawk0HFyMp1p9iCzzYcKP4evg=",
"adminAuthCode": "CAqgmyGBP0FSmWz4kuvwJg==",
"generalAuthCode": "ajmRDLwUyn2XMRVbjGQM6g==",
"tempAuthCode": "ddp1VIgmiS8Yx5dW3kb2zw==",
"roomState":1
}, {
"roomName": "201A",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 201,
"subRoomName": "A",
"lockCode": "1.2.201A",
"isVisible": 1,
"lockMac": "806fb0518514",
"hardwareVersion": "MTBL-HXJ01-HF-FK V20",
"softwareVersion": "01000448",
"aesKey": "zkcTTWK85O0L/D/aA5Cfqgg1isbCvonk7PuULQDg35I=",
"adminAuthCode": "7mzT908VeuvJYDZwxU3OWw==",
"generalAuthCode": "N1WbpqqRhXnkpVc/X3iKkA==",
"tempAuthCode": "xcbBYa8ewZmoY6zJDl05lA==",
"roomState":1
}, {
"roomName": "201B",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 201,
"subRoomName": "B",
"lockCode": "1.2.201B",
"isVisible": 1,
"lockMac": "e4e112d62a57",
"hardwareVersion": "FMTBL-01LP-HDKFX V2A",
"softwareVersion": "01000442",
"aesKey": "S23pdqLU2iIatrt5xwP7Z5/vIn0q0Mwa3KIAcwVHQ6Y=",
"adminAuthCode": "v/d8wctHujKgfe8fi+nveA==",
"generalAuthCode": "Sp0G/P3/ZaoVXu4vObVbKg==",
"tempAuthCode": "cdnyOPUJxlGCDfxTXMNv3A==",
"roomState":1
}, {
"roomName": "202-未顶替",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 202,
"lockCode": "1.2.202",
"isVisible": 1,
"roomState":1
}, {
"roomName": "203-未顶替",
"buildingCode": 1,
"floorCode": 2,
"roomCode": 203,
"lockCode": "1.2.203",
"isVisible": 1,
"roomState":1
}
],
"listSum": 13,
"totalPages": 2
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
subRoomName | 2 | String | 否 | 套房号 | A-Z大写 |
roomState | 2 | int | 是 | 房间状态 | 1 闲置 2.出租 3.预定 4.到期 5.打扫 6.维护 7封房 V2.1.0版本新增 |
isVisible | 2 | int | 是 | 是否显示到房态图 | 1表示显示,0表示不显示 |
onlineStatue | 2 | int | 否 | 关联的网关状态,3表示在线,4表示离线,为空表示未关联网关 | 1.5.4版本增加 |
aesKey | 2 | String | 是 | 门锁AES128密钥 | 通过AES加密 |
adminAuthCode | 2 | String | 是 | 管理员鉴权码 | 通过AES加密,有权限调用所有蓝牙接口 |
generalAuthCode | 2 | String | 是 | 普通用户鉴权码 | 通过AES加密,没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限。 |
tempAuthCode | 2 | String | 是 | 临时鉴权码 | 通过AES加密,与普通授用户权码一样,没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限。 |
接口说明:
- 房间操作记录列表
业务能力:
- openSmartRoomLogList
本地服务器版本:
- V1.5.2
Content-Version:
- 1.0
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | 是 | String | 房间门锁号 | |
beginTime | 1 | 否 | long | 事件开始时间 | 时间戳 单位:秒 2.7.0版本新增 |
endTime | 1 | 否 | long | 事件结束时间 | 时间戳 单位:秒 2.7.0版本新增 |
startNum | 1 | 是 | int | 开始记录数 | 默认为0 |
pageSize | 1 | 是 | int | 分页大小 | 默认10,最大50 |
请求示例 |
{
"method": "openSmartRoomLogList",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53FdqhmpCsliBF5FkEoCQ7gSlijO9DTm8aZl/xV6UpARSkWSy/Go4HfWaA==",
"data": {
"lockCode": "1.1.101",
"startNum": 0,
"pageSize": 10
}
}
响应示例
{
"msgId": 27133985,
"resultCode": 0,
"reason": "",
"method": "openSmartRoomLogList",
"data": {
"list": [{
"logType": 4,
"electricNum": 20,
"eventTime": 1623313593,
"combine": 0,
"normalOpen": 0,
"insideOpen": 0,
"keyGroupName": "肖诗强",
"keyGroupId": 2002,
"lockKeyId": 11,
"keyType": 1
}, {
"logType": 34,
"electricNum": 20,
"eventTime": 1623313591
}, {
"logType": 8,
"electricNum": 30,
"eventTime": 1623313557,
"logTypeFlag": 0,
"keyType": 1,
"lockKeyId": 11,
"keyGroupId": 2002,
"keyGroupName": "肖诗强",
"vaildNumber": 255,
"operUserName": "富贵饭店",
"operUserId": 900
}, {
"logType": 9,
"electricNum": 20,
"eventTime": 1623313423,
"logTypeFlag": 3,
"keyGroupId": 2001,
"keyGroupName": "肖诗强",
"operUserName": "富贵饭店",
"operUserId": 900
}, {
"logType": 4,
"electricNum": 20,
"eventTime": 1623313341,
"combine": 0,
"normalOpen": 0,
"insideOpen": 0,
"keyGroupName": "肖诗强",
"keyGroupId": 2001,
"lockKeyId": 11,
"keyType": 1
}, {
"logType": 34,
"electricNum": 20,
"eventTime": 1623313339
}, {
"logType": 8,
"electricNum": 20,
"eventTime": 1623313334,
"logTypeFlag": 0,
"keyType": 1,
"lockKeyId": 11,
"keyGroupId": 2001,
"keyGroupName": "肖诗强",
"vaildNumber": 255,
"operUserName": "富贵饭店",
"operUserId": 900
}, {
"logType": 9,
"electricNum": 20,
"eventTime": 1623313210,
"logTypeFlag": 3,
"keyGroupId": 2002,
"keyGroupName": "肖诗强",
"operUserName": "富贵饭店",
"operUserId": 900
}, {
"logType": 9,
"electricNum": 20,
"eventTime": 1623313206,
"logTypeFlag": 3,
"keyGroupId": 2001,
"keyGroupName": "肖诗强",
"operUserName": "富贵饭店",
"operUserId": 900
}, {
"logType": 4,
"electricNum": 20,
"eventTime": 1623313170,
"combine": 0,
"normalOpen": 0,
"insideOpen": 0,
"keyGroupName": "肖诗强",
"keyGroupId": 2001,
"lockKeyId": 11,
"keyType": 1
}
],
"listSum": 104,
"totalPages": 11
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
eventTime | 2 | long | 是 | 事件触发时间 | 时间戳,单位:秒 |
electricNum | 2 | int | 是 | 电量 | -- |
logType | 2 | int | 是 | 日志类型 | -- |
logData | 2 | -- | 是 | 日志内容 | 不同日志类型,日志内容不同 |
当logType为 | |||||
4 开锁事件 | |||||
41 开锁失败 | |||||
10 门锁反锁 | |||||
11 门锁解除 | |||||
30 门已上锁 | |||||
32 机械钥匙开锁 | |||||
17 常开:关锁 | |||||
43 周期常开:开锁 |
logData定义如下:
参数名 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|
combine | int | 否 | 是否组合开锁 | 当logType=4有效,1表示组合开锁 |
normalOpen | int | 否 | 是否常开 | 当logType=4有效,1表示常开 |
insideOpen | int | 否 | 是否门内开锁 | 当logType=4有效,1表示内门开锁 |
keyGroupName | String | 可选 | 用户名 | -- |
keyGroupId | int | 可选 | 用户ID | -- |
lockKeyId | int | 可选 | 钥匙ID | -- |
keyType | int | 可选 | 钥匙类型 1 指纹2 密码4 卡片8 遥控128 电子钥匙 | -- |
当logType为 8添加钥匙 9删除钥匙 24修改钥匙 28使能钥匙
logData定义如下:
参数名 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|
logTypeFlag | int | 否 | 日志类型标志 | logType=8添加: logTypeFlag=0自定义下发 logTypeFlag=1算法生成 logType=9删除: logTypeFlag=0按钥匙ID logTypeFlag=1按钥匙类型 logTypeFlag=2按钥匙内容 logTypeFlag=3按用户ID logType=24修改密码: logTypeFlag=0修改密码 logTypeFlag=1按钥匙ID logTypeFlag=2按用户 logTypeFlag=3按内容 logType=28使能: logTypeFlag=1按钥匙ID logTypeFlag=2按钥匙类型 logTypeFlag=3按用户ID logType=28禁止: logTypeFlag=4按钥匙ID logTypeFlag=5按钥匙类型 logTypeFlag=6按用户ID |
keyType | int | 否 | 钥匙类型 | -- |
lockKeyId | int | 可选 | 钥匙ID | -- |
keyGroupId | int | 可选 | 用户ID | -- |
keyGroupName | String | 可选 | 用户名 | -- |
beginTime | int | 可选 | 钥匙有效期开始时间 | 时间戳:秒 |
endTime | int | 可选 | 钥匙有效期结束时间 | 时间戳:秒 |
weeks | int | 可选 | 周期 | 按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效。bit0表示周一,bit6表示日。如周二、周三有效,weeks=6,6=0000110 |
dayStartTime | String | 可选 | 周期时间段 | 开始时间 |
dayEndTime | String | 可选 | 周期时间段 | 结束时间 |
vaildNumber | int | 可选 | 剩余次数 | 空或255表示无限 ,0-254表示相应的次数 |
operUserName | String | 可选 | 操作人 | -- |
operUserId | int | 可选 | 操作人ID | -- |
当logType为 1强拆 2非法操作 3低电量 12撬锁芯报警 14门未关好 15未关门报警 18故障报警 21系统锁定状态解除 35两天未开锁 47未验证开锁
logData定义如下:
参数名 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|
logTypeFlag | int | 否 | 日志类型标志 | logType=18时 为空时,表示未知异常 logTypeFlag=0按键短路 logTypeFlag=1存储器异常 logTypeFlag=2触摸芯片异常 logTypeFlag=3低压检测电路异常 logTypeFlag=4读卡电路异常 logTypeFlag=5检卡电路异常 logTypeFlag=6指纹通讯异常 logTypeFlag=7RTC晶振电路异常 |
当logType为 27门锁系统设置 5布防 6撤防 19状态更新事件 20切换系统语言 22申请时间同步 48 周期性门锁开启 49 周期性门锁关闭
logData定义如下:
参数名 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|
openMode | int | 开锁模式 | logType=27有效,0不改变、1单一开锁、2组合开锁 | -- |
normallyOpenMode | int | 常开模式 | logType=27有效 0不改变、1启用、2关闭 | -- |
volumeEnable | int | 语音启闭 | logType=27有效 0不改变、1启用、2关闭 | -- |
volume | int | 音量大小 | logType=27有效 | -- |
preventionAlram | int | 防撬报警 | logType=27有效 0不改变、1启用、2关闭 | -- |
lockCylinderAlram | int | 锁芯报警 | logType=27有效 0不改变、1启用、2关闭 | -- |
antiLockFunction | int | 反锁功能 | logType=27有效 0不改变、1启用、2关闭 | -- |
lockCoverAlarm | int | 锁头盖报警锁头盖报警 | logType=27有效 0不改变、1启用、2关闭 | -- |
language | int | 系统语言 | logType=27有效 1简体中文 2繁体中文 3英文 4越南语 5泰语 | -- |
接口说明:
- 获取房间电量
获取所有房间的电量
业务能力:
- openSmartElectricNumList
本地服务器版本:
- V1.5.2
Content-Version:
- 1.0
参数: 无
请求示例
{
"method": "openSmartElectricNumList",
"tokenId": "aFqJ9GbjlmX0LHZosmciPH3Ewt4S53FdqhmpCsliBF5FkEoCQ7gSlijO9DTm8aZl/xV6UpARSkWSy/Go4HfWaA==",
"data": {
}
}
响应示例
{
"msgId": 43968528,
"resultCode": 0,
"reason": "",
"method": "openSmartElectricNumList",
"data": {
"roomList": [{
"lockCode": "1.1.101",
"electricNum": 20
}, {
"lockCode": "1.1.103",
"electricNum": 50
}, {
"lockCode": "1.1.103A"
}, {
"lockCode": "1.1.330"
}, {
"lockCode": "1.1.1011"
}, {
"lockCode": "1.2.201"
}, {
"lockCode": "1.2.201A",
"electricNum": 20
}, {
"lockCode": "1.2.201B"
}
]
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|
接口说明:
读宾客卡
本地服务器版本:
- V1.6.1
Content-Version:
- 1.0
业务能力:
- openSmartReadGuestCard
参数: 无
请求示例
{
"method": "openSmartReadGuestCard",
"tokenId": "9/byy8/mfaIC2RbBYeDZul5xXv3Qolc6oH+cw81+j7ykRxuYZU0ajgkv/ZRVZXbb9w0yf99iuhrQ\nbH44QJ4lOg==",
"data": {
}
}
响应示例
{
"msgId": 249806905,
"resultCode": 0,
"reason": "",
"method": "openSmartReadGuestCard",
"data": {
"cardNo":"DB730487",
"lockCode": "1.2.201A",
"beginTime":1602165958,
"endTime":1608965958,
"isLock":0,
"replaceFunction":0
}
}
响应参数说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
cardNo | 1 | 是 | String | 卡号 | -- |
lockCode | 1 | 是 | String | 门锁号 | 如:1.1.1 |
beginTime | 1 | 是 | int | 开始时间 | 时间戳:单位秒 |
endTime | 1 | 是 | int | 结束时间 | 时间戳:单位秒 |
isLock | 1 | int | 可选 | 是否允许开反锁 | 0不允许,1允许 |
replaceFunction | 1 | int | 可选 | 是否顶替前卡 | 0顶替,1不顶替 |
异常码
异常码 | 异常描述 |
---|---|
500709 | 非宾客卡 |
登录鉴权V1.4.1
设备操作
接口说明:
- 取电开关全局设置服务
- 不满足取电条件的延时断电时间
本地服务器版本:
- V3.1.1
Content-Version:
- 1.0
业务能力:
- openSmartSwitchGlobalSet
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
powerOffTime | 1 | int | 必填 | 不满足取电条件的延时断电时长 | 单位:秒 不填表示不设置 |
请求示例 |
{
"method": "openSmartSwitchGlobalSet",
"tokenId": "9/byy8/mfaIC2RbBYeDZul5xXv3Qolc6oH+cw81+j7ykRxuYZU0ajgkv/ZRVZXbb9w0yf99iuhrQ\nbH44QJ4lOg==",
"data": {
"powerOffTime": 12
}
}
响应示例
{
"msgId": 249806905,
"resultCode": 0,
"reason": "",
"method": "openSmartSwitchGlobalSet",
"data": {}
}
响应参数说明 无
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
400041 | 权限不足 |
接口说明:
- 取电开关取电模式设置
本地服务器版本:
- V3.3.0
Content-Version:
- 1.0
业务能力:
- openSmartSetSwitchMode
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 可通过房间列表获取 |
请求示例
{
"method": "openSmartSetSwitchMode",
"tokenId":"Y0IFV96ntTMVlfElMC6TGWZAQP4VUrTbfT7ILkYb+X1iwwKMVoVLPSegij6L/31sRj9KGzdjAVxRfAg3WAVvmg==",
"data": {
"lockCode": "1.1.1",
"switchMode": 1
}
}
响应示例
{
"msgId": 149907492,
"resultCode": 0,
"reason": "",
"method": "openSmartSetSwitchMode",
"data": {
}
}
响应参数说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
异常码 |
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
接口说明:
- 取电开关白名单设置
- 暂只支持卡片,授权白名单后卡片能直接取电
本地服务器版本:
- V3.1.1
Content-Version:
- 1.0
业务能力:
- openSmartSetSwitchWhite
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | string | 必填 | 门锁号 | 可通过房间列表获取 |
addType | 1 | int | 必填 | 添加类型 | 1 新增 2 删除 3 覆盖 |
keyType | 1 | int | 必填 | 授权类型 | 4 卡片 |
authList | 1 | List<String> | 是 | 卡号 | 格式:["23FDAA43","23FDAF13"] addType!=2必填 一个取电开关最多下发20张卡号,如若超过将不做保存并且无法对该取电开关生效 |
请求示例 |
{
"method": "openSmartSetSwitchWhite",
"tokenId":"Y0IFV96ntTMVlfElMC6TGWZAQP4VUrTbfT7ILkYb+X1iwwKMVoVLPSegij6L/31sRj9KGzdjAVxRfAg3WAVvmg==",
"data": {
"lockCode": "1.1.1",
"addType": 1,
"keyType": 4,
"authList": ["23FDAA43","23FDAF13"]
}
}
响应示例
{
"msgId": 149907492,
"resultCode": 0,
"reason": "",
"method": "openSmartSetSwitchWhite",
"data": {
}
}
响应参数说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
异常码 |
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
接口说明:
- 异常取电记录
本地服务器版本:
- V3.1.1
Content-Version:
- 1.0
业务能力:
- openSmartGetExceptionUseElectricRecords
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始记录数 | 默认为0 |
pageSize | 1 | int | 可选 | 分页大小 | 默认10,最大50 |
buildingCode | 1 | int | 可选 | 楼栋码 | -- |
floorCode | 1 | int | 可选 | 楼层码 | -- |
roomName | 1 | String | 可选 | 房间名称 | -- |
beginTime | 1 | long | 可选 | 开始时间 | 单位: 秒 |
endTime | 1 | long | 可选 | 结束时间 | 单位: 秒 |
请求示例 |
{
"method": "openSmartGetExceptionUseElectricRecords",
"tokenId":"Y0IFV96ntTMVlfElMC6TGWZAQP4VUrTbfT7ILkYb+X1iwwKMVoVLPSegij6L/31sRj9KGzdjAVxRfAg3WAVvmg==",
"data": {
}
}
响应示例
{
"msgId": 149907492,
"resultCode": 0,
"reason": "",
"method": "openSmartRoomElectricSwitchOper",
"data": {
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
list | 1 | long | 可选 | -- | 单位: 秒 |
eventTime | 2 | long | 可选 | 操作时间 | 时间戳,单位:秒 |
operUserName | 2 | string | 可选 | 操作人 | -- |
logContent | 2 | string | 可选 | 操作内容 | -- |
subRoomName | 2 | String | 否 | 套房号 | A-Z大写 |
keyContent | 2 | string | 可选 | 钥匙内容 | -- |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
接口说明:
- 房间取电记录
本地服务器版本:
- V3.1.1
Content-Version:
- 1.0
业务能力:
- openSmartUseElectricLogList
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始记录数 | 默认为0 |
pageSize | 1 | int | 可选 | 分页大小 | 默认10,最大50 |
switchState | 1 | int | 可选 | 状态 | 1 正常 2 异常 不传全部 |
beginTime | 1 | long | 可选 | 开始时间 | 单位: 秒 |
endTime | 1 | long | 可选 | 结束时间 | 单位: 秒 |
lockCode | 1 | string | 必填 | 门锁号 | 可通过房间列表获取 填了此参数下方参数无效 |
buildingCode | 1 | int | 可选 | 楼栋码 | -- |
floorCode | 1 | int | 可选 | 楼层码 | -- |
roomName | 1 | String | 可选 | 房间名称 | -- |
请求示例 |
{
"method": "openSmartUseElectricLogList",
"tokenId":"Y0IFV96ntTMVlfElMC6TGWZAQP4VUrTbfT7ILkYb+X1iwwKMVoVLPSegij6L/31sRj9KGzdjAVxRfAg3WAVvmg==",
"data": {
"lockCode": "1.1.1",
}
}
响应示例
{
"msgId": 149907492,
"resultCode": 0,
"reason": "",
"method": "openRoomElectricSwitchOper",
"data": {
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
list | 1 | long | 可选 | -- | 单位: 秒 |
subRoomName | 2 | String | 否 | 套房号 | A-Z大写 |
eventTime | 2 | long | 可选 | 操作时间 | 时间戳,单位:秒 |
currentState | 2 | int | 可选 | 当前状态 | 1远程送电 2远程断电 3供电 4断电 5开锁后,临时取电1分钟 |
lastState | 2 | int | 可选 | 上一个状态 | 1远程送电 2远程断电 3供电 4断电 5开锁后,临时取电1分钟 |
stateChangeMode | 2 | int | 可选 | 状态切换方式 | 1计时结束 2前台操作 3宾客卡 4反锁 5管理卡 |
keyContent | 2 | string | 可选 | 钥匙内容 | -- |
switchState | 2 | int | 可选 | 状态 | 1:正常 2:异常 |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
接口说明:
- 房间的取电状态
本地服务器版本:
- V3.1.1
Content-Version:
- 1.0
业务能力:
- openSmartGetRoomElectricState
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | string | 必填 | 门锁号 | 可通过房间列表获取 |
请求示例
{
"method": "openSmartGetRoomElectricState",
"tokenId":"Y0IFV96ntTMVlfElMC6TGWZAQP4VUrTbfT7ILkYb+X1iwwKMVoVLPSegij6L/31sRj9KGzdjAVxRfAg3WAVvmg==",
"data": {
"lockCode": "1.1.1",
}
}
响应示例
{
"msgId": 149907492,
"resultCode": 0,
"reason": "",
"method": "openSmartGetRoomElectricState",
"data": {
}
}
响应参数说明
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
electricState | 1 | int | 可选 | 状态 | 1:断电 2:供电 |
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
接口说明:
- 房间送电/断电/恢复设置
本地服务器版本:
- V3.1.1
Content-Version:
- 1.0
业务能力:
- openSmartRoomElectricSwitchOper
参数:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | string | 必填 | 门锁号 | 可通过房间列表获取 |
operMode | 1 | int | 必填 | 模式类型 | 1 送电 2 断电 3 恢复正常模式 |
endTime | 1 | long | 必填 | 模式类型 | operType=1 送电结束时间 operType=2 断电结束时间 单位: 秒 |
请求示例 |
{
"method": "openSmartRoomElectricSwitchOper",
"tokenId":"Y0IFV96ntTMVlfElMC6TGWZAQP4VUrTbfT7ILkYb+X1iwwKMVoVLPSegij6L/31sRj9KGzdjAVxRfAg3WAVvmg==",
"data": {
"lockCode": "1.1.1",
"operMode": 1,
"endTime": 1714622990
}
}
响应示例
{
"msgId": 149907492,
"resultCode": 0,
"reason": "",
"method": "openSmartRoomElectricSwitchOper",
"data": {
}
}
响应参数说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
异常码 |
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
接口说明:
设置回调地址
- 当设备上报数据时,通过回调地址,推送到第三方服务器
- 如果需要修改回调地址,重新调用设置为新的回调即可
- 主账号才有权限
本地服务器版本:
- V1.4.1
Content-Version:
- 1.0
业务能力:
- openSmartCallbackUrlSet
参数:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
callbackUrl | 1 | 是 | String | 回调地址 | 无 |
请求示例 |
{
"method": "openSmartCallbackUrlSet",
"tokenId": "9/byy8/mfaIC2RbBYeDZul5xXv3Qolc6oH+cw81+j7ykRxuYZU0ajgkv/ZRVZXbb9w0yf99iuhrQ\nbH44QJ4lOg==",
"data": {
"callbackUrl": "https://xxxx.com/callbackUrl"
}
}
响应示例
{
"msgId": 249806905,
"resultCode": 0,
"reason": "",
"method": "openSmartCallbackUrlSet",
"data": {}
}
响应参数说明
无
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
400041 | 权限不足 |
接口规范
请求方式:
- POST
请求头:
- Content-Type: text/json;charset=utf-8
- Content-Version: 1.0 Content-Version表示接口版本,不填则默认获取1.0版本。
请求体: JSON字符串
{
"msgId":123456,
"method": "xxxxxx",
"tokenId":"xxxxxxxxxxxxxxxxxx",
"data": {
}
}
参数说明
参数名 | 类型 | 说明 |
---|---|---|
msgId | int | 消息ID |
method | string | 访问的业务方法 |
tokenId | string | 从平台获取的tokenId |
data | string | 业务字段 |
响应头:
- Content-Type=text/json;
- charset=utf-8
响应体: JSON字符串
{
"msgId":123456,
"method": "xxxxxx",
"resultCode":0,
"reason":"xxxxx",
"data": {
}
}
参数说明
参数名 | 类型 | 说明 |
---|---|---|
msgId | int | 消息ID |
method | string | 访问的业务方法 |
resultCode | int | 系统错误码 |
reason | string | 系统错误描述 |
data | string | 业务字段 |
http://酒店本地部署服务IP:8090
附录
AES加密说明
如密码123456 账号当前的tokenId为: Y0IFV96ntTMVlfElMC6TGUAE0HQ5ftc2G4GCeZTFM4JhmcmnxXRkiehpFYog+mK2jqGiGjvlwrWU/P1232mMog==
-
对tokenId取MD5:3042B5D38733951FDC3A4F23493E931F(大写)
-
对tokdnId的MD5,截取第9至25位:8733951FDC3A4F23,即substring(8, 24)
-
把 8733951FDC3A4F23 当作AES加密的向量以及加密的KEY,填充模式为”AES/CBC/PKCS5Padding”,对123456进行加密
-
把最后的加密结果进行base64编码
最后结果为: AY7/ot5BG7UrozYYWiDOYA==
注: Java MD5的实现,使用的是自带的MessageDigest类,java对转义字符处理时,是把转义字符当普通字符处理。如\r,\n
public static String md5(String obj) {
return BytesUtils.bytesToHex(md5(obj.getBytes()));
}
public static byte[] md5(byte[] plainBytes) {
try {
return MessageDigest.getInstance("MD5").digest(plainBytes);
} catch (NoSuchAlgorithmException ex) {
return null;
}
}
房间状态
值 | 描述 |
---|---|
1 | 闲置、空净 |
2 | 入住 |
3 | 预定(暂未用到该状态) |
4 | 到期 |
5 | 打扫 |
6 | 维护 |
房间状态流转图
日志类型eventType
注意:第三方可以根据需求解析eventType处理
值 | 描述 |
---|---|
01 | 强拆报警 |
02 | 非法操作报警(错误次数超限等),系统已 锁定 |
03 | 低电量报警 |
04 | 开锁 |
05 | 布防 |
06 | 撤防 |
07 | 胁迫开锁 |
08 | 添加授权 |
09 | 删除授权 |
10 | 反锁 |
11 | 反锁解除 |
12 | 撬锁芯报警 |
13 | 门铃事件 |
14 | 门未关好(假锁报警) |
15 | 未关门报警 |
17 | 门锁已关闭常开 |
18 | 故障报警 |
20 | 切换系统语言 |
21 | 系统锁定状态解除 |
22 | 时间同步 |
24 | 修改密码 |
25 | 未拔钥匙事件 |
26 | 打开锁头盖事件 |
27 | 系统参数设置事件 |
28 | 使能与禁止 |
30 | 上锁事件 |
31 | 斜舌缩进事件(压把手事件) |
32 | 机械钥匙开锁事件 |
34 | 修改钥匙有效期 |
41 | 错误开锁事件 |
43 | 自动开锁 |
46 | 按照钥匙内容修改钥匙信息事件 |
47 | 未验证开锁 |
48 | 周期开启事件 |
49 | 周期关闭事件 |
钥匙类型keyType
值 | 描述 |
---|---|
1 | 指纹 |
2 | 密码 |
4 | 卡片 |
8 | 遥控器 |
128 | APP远程 |
129 | 微信 |
256 | 人脸识别 |
MQTT对接
###EMQX安装向导
版本推荐4.2.6
方式一:
参照官方网址安装(https://docs.emqx.cn/broker/v4.3/getting-started/install.html#shell-%E8%84%9A%E6%9C%AC%E4%B8%80%E9%94%AE%E5%AE%89%E8%A3%85-linux)
方式二:
操作系统:Centos7
步骤:
1.下载中心下载 [emqx-centos7-4.2.6-x86_64.zip][1],下载后上传Centos系统
2.解压 unzip emqx-centos7-4.2.6-x86_64.zip
3.启动 ./bin/emqx start
4.查看状态 ./bin/emqx_ctl status
5.重启 ./bin/emqx restart
6.停止 ./bin/emqx stop
7.卸载 直接删除EMQX目录既可
配置(用户连接认证)
1.修改配置文件/emqx/etc/emqx.conf allow_anonymous = true 改为 allow_anonymous = false 不允许任何用户都能连接
2.配置插件启动开启用户认证 /emqx/data/loaded_plugins 文件加入 {emqx_auth_username,true}.
3.配置连接用户名和密码 /emqx/etc/plugins/emqx_auth_username.conf 例如: auth.user.1.username = zzy auth.user.1.password = 123456
4.重启EMQX生效
进行发布和订阅获取和更新密钥主题之前得先在自己所在HTLock主账号的账号中心下拿到appId,然后根据格式作成发布主题和订阅主题的格式(格式详情可以看TOPIC格式)。
MQTT鉴权接口说明:
获取密钥:这不是第三方服务器向本地部署服务器获取密钥的接口,而是由本地部署服务器(HTLock)调取的接口,更新密钥有个设定密钥有效期的参数expireTime,当时间超过了expireTime后服务器就会调取获取密钥接口给到MQTT这边向你获取密钥,这时候需要再次调更新密钥接口把密钥给到本地部署服务器。
更新密钥:第一次使用MQTT对接的时候需要调用的接口,desKey是自己定义的8位字符,然后经过AES加密后经过更新密钥接口给到本地部署服务器这边记录,后续传送的数据进行加密和解密都需要用到desKey,这个接口可以设置desKey的使用有效期,如若有效期过了之后调用功能接口,本地部署服务器会调用失败并且向MQTT这边发送一个获取密钥的接口进行获取密钥,这时候需要再次调用更新密钥接口给到本地部署服务器这边记录。
重要:
如果是第一次使用MQTT的话,在进行发布和订阅主题之前,得先更新密钥。
1.根据生成AES密钥生成规则文档使用APPID进行异或算法生成AES密钥。 2.生成了AES密钥后看向AES加密的文档,对desKey进行加密。 3.根据AES加密代码对desKey进行加密。(需要用到自己定义的8位数以上的desKey和用APPID生 成的AES密钥) 4.把经过加密的desKey给到更新密钥的desKey那里进行调用。
更新密钥的时候设置了时长,当密钥使用时间超过了设置时长的时候,那么下一次发布主题的时候就会发送一个获取密钥的请求来进行获取密钥。
DES加密和解密说明:
需要对数据安全,针对房源管理、设备操作、授权操作、卡片操作、日志同步的data数据进行加密。
DES加密需要用到发布的请求里面的data数据(包括{}符号)和没有经过加密的自定义8位字符的desKey给到代码里面进行加解密。
第三方服务MQTT部署说明
条件:
部署MQTT最少需用用到两台电脑进行部署,一台部署HTLock,还有一台部署MQTT连接软件以及EMQX单独服务。
第三方服务要部署MQTT服务,然后HTLock需要配置服务信息才可以进行发布或订阅主题(发布和订阅主题详情请看TOPIC格式)。
1.需要一台服务器部署MQTT服务后打开HTLock本地服务(也可以在别的电脑上打开),进入服务系统页面后点击右上角五下。
2.在输入密码那输入666666点击确定。
3.进入到系统设置页面后点击左边的MQTT设置。
4.进入MQTT设置页面后配置好对应信息。
HTLock本机MQTT服务配置说明
1.安装好EMQX后(安装详情请看EMQX安装向导文档),进入EMQX的bin目录在路径那输入cmd进入小黑窗输入emqx.cmd start按回车运行EMQX服务(停止的话是emqx.cmd stop)。
2.打开MQTT.FX(可以去官网下),点击设置进行MQTT服务配置。
3.配置好MQTT的IP和端口等信息。
4.点击Connect进行连接即可进行发布和订阅主题,最右边图标红色说明失败,绿色说明连接成功。
TOPIC内容
#####注意:
1.本地服务器V1.9.0支持接口版本version,不传默认为1.0版本,version为Double类型。
2.发送数据前请确认数据JSON格式是否正确,错误边缘网关服务解析失败不会应答。
请求格式
{
"cmd": 命令值,
"msgId": 122321323,
"version":1.0,
"data": {
}
}
响应格式
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码",
"rsn": "原因",
"data": {
}
}
rslt = 0表示请求成功,其他失败
TOPIC格式
1.发布
第三方发布主题:/localhost_hotel/酒店AppId/dev_pub
例如:
######/localhost_hotel/b5d0769c550d4f6699c8ecbd668f8132/dev_pub
2.订阅
第三方订阅主题:/ localhost_hotel /酒店AppId/dev_sub
例如:
######/localhost_hotel/b5d0769c550d4f6699c8ecbd668f8132/dev_sub
会话msgId
每次会话某段时间内唯一,int类型,每次请求和响应msgId相同。
JAVA参考代码
import java.io.IOException;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
import java.util.Enumeration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class NetworkUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(NetworkUtil.class);
public static String getHostAddress() {
return getHostAddress(getLocalAddress());
}
public static String getHostAddress(byte[] addr) {
try {
return InetAddress.getByAddress(addr).getHostAddress();
} catch (UnknownHostException ex) {
LOGGER.error("Unexpected exception: ", ex);
}
return InetAddress.getLoopbackAddress().getHostAddress();
}
public static byte[] getLocalAddress() {
try {
for (Enumeration<NetworkInterface> interfaces = NetworkInterface.getNetworkInterfaces(); interfaces
.hasMoreElements();) {
NetworkInterface networkInterface = interfaces.nextElement();
if (networkInterface.isLoopback() || networkInterface.isVirtual() || !networkInterface.isUp()
|| networkInterface.isPointToPoint()) {
continue;
}
Enumeration<InetAddress> addresses = networkInterface.getInetAddresses();
while (addresses.hasMoreElements()) {
InetAddress addr = addresses.nextElement();
if (addr instanceof Inet6Address) {
continue;
}
return addr.getAddress();
}
}
} catch (IOException ex) {
LOGGER.error("Unexpected exception: ", ex);
}
return InetAddress.getLoopbackAddress().getAddress();
}
}
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.atomic.AtomicInteger;
public class MsgIdUtil {
private MsgIdUtil(){
}
private static AtomicInteger atomicInt = new AtomicInteger(0);
private static int NET_WORK = 0;
static{
String ip = NetworkUtil.getHostAddress();
NET_WORK=Integer.valueOf(ip.substring(ip.lastIndexOf(".")+1));
}
public static Integer createMsgId() {
return (getAtomicInt()<<24) | (getHostInt()<<16)
| (getTimeInt()<<6) | getRandomInt();
}
private synchronized static int getAtomicInt() {
if(atomicInt.get()>=127){
atomicInt.set(0);
}
return atomicInt.getAndIncrement();
}
private static int getHostInt() {
return ThreadLocalRandom.current().nextInt(: 255);
}
private static int getTimeInt() {
return (int)(System.currentTimeMillis()%1000);
}
private static int getRandomInt() {
return ThreadLocalRandom.current().nextInt(63);
}
public static void main(String[] args) {
for(int i=0;i<150;i++){
System.out.println(MsgIdUtil.createMsgId());
}
}
}
|时间|内容摘要|作者|本地服务器版本|
|:---- |:---|
|2020-08-27|初稿|zzy|V1.5.3|
|2020-11-02|楼栋添加、修改、删除,房间添加、修改、删除,房间类型添加、修改、删除|zzy|V1.6.0|
|2022-01-02|远程开锁|zzy|V1.7.0|
|2022-01-22|待处理授权列表、重新下发待处理授权、忽略待处理授权、门禁/梯控列表|zzy|V1.8.0|
|2021-04-15|1.优化所有日志都推送
2.新增开放接口能力
3.宾客卡、退房支持1.1接口版本|zzy|V1.9.0|
|2021-07-15|1.手机授权增加邮箱授权
2.增加发卡器退出录指纹模式
3.部分接口返回授权参数
4.增加房间封房、解封
5.增加入住冻结、解冻|zzy|V2.1.0|
|2021-08-18|1.增加下发挂失接口|zzy|V2.1.0|
|2023-03-15|1.新增图片处理接口
2.新增下发人脸
3.房间入住列表返回Base64图片数据
4.房间入住详情返回Base64图片数据
5.待处理入住列表筛选加二维码、人脸下发|zzy|V2.5.0|
|2023-06-20|1.房间日志列表增加事件开始时间和事件结束时间查询|zzy|V2.7.0|
卡片操作
制作多门卡
本地服务器版本:
- V2.9.0
命令值(cmd):
- 409
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
cardNo | 1 | String | 必填 | 卡号 | |
multiLockCardId | 1 | String | 可选 | 被挂失的多门卡ID | 填写该参数下面参数可不填 |
remark | 1 | String | 必填 | 持卡人 | |
endDate | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
isLock | 1 | int | 可选 | 是否可开反锁 | 0不允许 1允许 默认不允许 |
replaceFunction | 1 | int | 可选 | 顶替前卡 | 1顶替 2不顶替 默认不顶替 |
timePeriods | 1 | list | 可选 | 可开时间段 | 最多设置2个 |
beginTime | 2 | String | 可选 | 时间段开始时间 | 格式:HH:mm,如10:03 |
endTime | 2 | String | 可选 | 时间段结束时间 | 格式:HH:mm,如10:03 |
floorCode | 2 | int | 必填 | 楼层号 | -- |
roomCode | 2 | int | 必填 | 房间号 | -- |
subRoomName | 2 | String | 可选 | 套房号 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"cardDispenserSeq":"MNR6321DC83CC8",
"cardNo": "0B2574A3",
"isLock": 1,
"replaceFunction": 1,
"endDate": 1763222399,
"remark":"ded",
"timePeriods": [
{
"beginTime": "09:00",
"endTime": "18:00"
},
{
"beginTime": "19:00",
"endTime": "20:00"
}
],
"list": [
{
"buildingCode": 1,
"floorCode": 9,
"roomCode": 901,
"subRoomName":"A"
},
{
"buildingCode": 1,
"floorCode": 9,
"roomCode": 902
}
]
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
400041 | 权限不足 |
500400 | 非法卡片,不是酒店加密卡 |
500504 | 不支持该功能 |
500710 | 当前卡片最多写入xx个房间 |
500711 | 卡片不支持 |
500404 | 安裝卡,请先进行回收 |
500405 | 操作失败,加密卡非法 |
-- | 其他异常 |
制作总卡
本地服务器版本:
- V1.5.3
命令值(cmd):
- 401
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
cardNo | 1 | String | 必填 | 卡号 | |
totalCardId | 1 | String | 可选 | 被挂失总卡ID | V3.2.0新增,填写该参数下面参数可不填 |
endDate | 1 | long | 可选 | 结束时间 | 时间戳:秒 |
remark | 1 | String | 可选 | 持卡人 | |
isLock | 1 | int | 可选 | 是否可开反锁 | 0不允许 1允许 默认不允许 |
normallyOpen | 1 | int | 可选 | 常开模式 | 0常开关闭,正常模式 1常开打开,常开模式 默认常开关闭 |
replaceFunction | 1 | int | 可选 | 顶替前卡 | 1顶替 2不顶替 默认不顶替 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"cardDispenserSeq":"MNR6321DC83CC8",
"cardNo": "0B2574A3",
"isLock": 1,
"replaceFunction": 1,
"normallyOpen": 0,
"endDate": 1721318399,
"remark": "ede"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500400 | 非法卡片,不是酒店加密卡 |
500404 | 安裝卡,请先进行回收 |
500405 | 操作失败,加密卡非法 |
500537 | 操作失败,房间xxx已存在xxx二维码授权 |
-- | 其他异常 |
制作楼层卡
本地服务器版本:
- V1.5.3
命令值(cmd):
- 405
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
cardNo | 1 | String | 必填 | 卡号 | |
floorCardId | 1 | long | 可选 | 被挂失楼层卡ID | V3.2.0新增,填写该参数下面参数可不填 |
remark | 1 | String | 必填 | 持卡人 | |
endDate | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
isLock | 1 | int | 可选 | 是否可开反锁 | 0不允许 1允许 默认不允许 |
normallyOpen | 1 | int | 可选 | 常开模式 | 0常开关闭,正常模式 1常开打开,常开模式 默认常开关闭 |
replaceFunction | 1 | int | 可选 | 顶替前卡 | 1顶替 2不顶替 默认不顶替 |
timePeriods | 1 | list | 可选 | 可开时间段 | 最多设置2个 |
beginTime | 2 | String | 可选 | 时间段开始时间 | 格式:HH:mm,如10:03 |
endTime | 2 | String | 可选 | 时间段结束时间 | 格式:HH:mm,如10:03 |
floorCode | 2 | int | 必填 | 楼层号 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"cardDispenserSeq":"MNR6321DC83CC8",
"cardNo": "0B2574A3",
"isLock": 0,
"replaceFunction": 2,
"normallyOpen": 0,
"endDate": 1721059199,
"list": [
{
"buildingCode": "1",
"floorCode": "1"
},
{
"buildingCode": "1",
"floorCode": "6"
},
{
"buildingCode": "1",
"floorCode": "10"
}
],
"remark": "得的",
"timePeriods": [
{
"beginTime": "16:03",
"endTime": "19:03"
},
{
"beginTime": "22:03",
"endTime": "23:03"
}
]
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500400 | 非法卡片,不是酒店加密卡 |
500711 | 卡片不支持 |
500404 | 安裝卡,请先进行回收 |
500405 | 操作失败,加密卡非法 |
-- | 其他异常 |
制作楼栋卡
本地服务器版本:
- V1.5.3
命令值(cmd):
- 403
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
cardNo | 1 | String | 必填 | 卡号 | |
buildingCardId | 1 | String | 必填 | 被挂失楼栋卡ID | V3.2.0新增,填写该参数后下面的参数可不填 |
endDate | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
isLock | 1 | int | 可选 | 是否可开反锁 | 0不允许 1允许 默认不允许 |
normallyOpen | 1 | int | 可选 | 常开模式 | 0常开关闭,正常模式 1常开打开,常开模式 默认常开关闭 |
replaceFunction | 1 | int | 可选 | 顶替前卡 | 1顶替 2不顶替 默认不顶替 |
timePeriods | 1 | List | 可选 | 可开时间段 | 最多设置2个 |
beginTime | 2 | String | 可选 | 时间段开始时间 | 格式:HH:mm,如10:03 |
endTime | 2 | String | 可选 | 时间段结束时间 | 格式:HH:mm,如10:03 |
list | 1 | list | 必填 | 最多10个楼栋 | |
buildingCode | 2 | int | 必填 | 楼栋号 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"cardDispenserSeq":"MNR6321DC83CC8",
"cardNo": "0B2574A3",
"isLock": 1,
"replaceFunction": 1,
"normallyOpen": 1,
"endDate": 1721059199,
"list": [
{
"buildingCode": "1"
},
{
"buildingCode": "2"
},
{
"buildingCode": "8"
}
],
"remark": "楼栋卡",
"timePeriods": [
{
"beginTime": "15:17",
"endTime": "16:17"
},
{
"beginTime": "17:18",
"endTime": "19:18"
}
]
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500400 | 非法卡片,不是酒店加密卡 |
500404 | 安裝卡,请先进行回收 |
500405 | 操作失败,加密卡非法 |
-- | 其他异常 |
卡片加密
本地服务器版本:
- V3.2.0
命令值(cmd):
- 411
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
cardNo | 1 | String | 必填 | 卡号 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"cardDispenserSeq":"xxxxxxxxxxx",
"cardNo":"E354AB12"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
卡片还原
本地服务器版本:
- V3.2.0
命令值(cmd):
- 412
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
cardNo | 1 | String | 必填 | 卡号 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"cardDispenserSeq":"xxxxxxxxxxx",
"cardNo":"E354AB12"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
回收卡片(还原扇区)
本地服务器版本:
- V1.5.3
命令值(cmd):
- 407
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
cardNo | 1 | String | 必填 | 卡号 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"cardDispenserSeq":"xxxxxxxxxxx",
"cardNo":"E354AB12"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
多门卡列表
本地服务器版本:
- V2.9.0
命令值(cmd):
- 410
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum":0,
"getNum":10
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
totalPages | 1 | int | 必填 | 总页数 | |
multiLockCardId | 2 | String | 必填 | 多门卡ID | |
cardNo | 2 | String | 必填 | 卡号 | |
lossCardNo | 2 | String | 可选 | 挂失卡号 | |
endDate | 2 | long | 必填 | 结束时间 | 时间戳:秒 |
remark | 2 | string | 必填 | 持卡人 | |
isLock | 2 | int | 可选 | 是否可开反锁 | 0不允许 1允许 默认不允许 |
replaceFunction | 2 | int | 可选 | 顶替前卡 | 1顶替 2不顶替 默认不顶替 |
state | 2 | int | 可选 | 卡片状态 | 0: 回收 1: 正常 2: 挂失 3: 顶替 |
timePeriods | 2 | List | 可选 | 可开时间段 | 最多设置2个 |
beginTime | 3 | String | 可选 | 时间段开始时间 | 格式:HH:mm,如10:03 |
endTime | 3 | String | 可选 | 时间段结束时间 | 格式:HH:mm,如10:03 |
buildingCode | 3 | int | 必填 | 楼栋号 | |
roomCode | 3 | int | 必填 | 房间号 | |
subRoomName | 3 | String | 可选 | 套房号 | |
roomCardState | 3 | int | 必填 | 房间卡片状态 | 0: 回收 1: 正常 2: 挂失 3: 顶替 |
createTime | 2 | Long | 必填 | 创建时间 | 时间戳:秒 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总数,
"totalPages":总页数,
"list":[
{
"multiLockCardId":"fsdkvin="
"cardNo":"21D4CBFD",
"endDate":1700035797,
"remark":"xxx",
"isLock":1,
"createTime":1700035797,
"list":[
{
"buildingCode":1,
"floorCode":1,
"roomCode":109,
"subRoomName":"A"
}
]
}
]
}
}
总卡列表
本地服务器版本:
- V1.5.3
命令值(cmd):
- 402
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum":0,
"getNum":10
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
totalPages | 1 | int | 必填 | 总页数 | |
totalCardId | 2 | String | 必填 | 总卡ID | |
lossCardNo | 2 | String | 可选 | 挂失卡号 | |
remark | 2 | String | 可选 | 持卡人 | |
cardNo | 2 | String | 必填 | 卡号 | |
endDate | 2 | long | 必填 | 结束时间 | 时间戳:秒 |
isLock | 2 | int | 可选 | 是否可开反锁 | 0不允许 1允许 默认不允许 |
normallyOpen | 2 | int | 可选 | 常开模式 | 0常开关闭,正常模式 1常开打开,常开模式 默认常开关闭 |
state | 2 | int | 可选 | 卡片状态 | 0: 回收 1: 正常 2: 挂失 3: 顶替 |
replaceFunction | 2 | int | 可选 | 顶替前卡 | 1顶替 2不顶替 默认不顶替 |
createTime | 2 | Long | 必填 | 创建时间 | 时间戳:秒 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总数,
"totalPages":总页数,
"list":[
{
"totalCardId":"evvtwfbo=",
"cardNo":卡号,
"endDate":结束时间,
"isLock":是否可开反锁,
"createTime":创建时间,
"remark":"wfr"
}
]
}
}
楼栋卡列表
本地服务器版本:
- V1.5.3
命令值(cmd):
- 406
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum":0,
"getNum":10
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
totalPages | 1 | int | 必填 | 总页数 | |
floorCardId | 2 | String | 必填 | 楼层卡ID | |
lossCardNo | 2 | String | 可选 | 挂失卡号 | |
cardNo | 2 | String | 必填 | 卡号 | |
remark | 2 | String | 必填 | 持卡人 | |
endDate | 2 | long | 必填 | 结束时间 | 时间戳:秒 |
isLock | 2 | int | 可选 | 是否可开反锁 | 0不允许 1允许 默认不允许 |
normallyOpen | 2 | int | 可选 | 常开模式 | 0常开关闭,正常模式 1常开打开,常开模式 默认常开关闭 |
state | 2 | int | 可选 | 卡片状态 | 0: 回收 1: 正常 2: 挂失 3: 顶替 |
replaceFunction | 2 | int | 可选 | 顶替前卡 | 1顶替 2不顶替 默认不顶替 |
timePeriods | 2 | List | 可选 | 可开时间段 | 最多设置2个 |
beginTime | 3 | String | 可选 | 时间段开始时间 | 格式:HH:mm,如10:03 |
endTime | 3 | String | 可选 | 时间段结束时间 | 格式:HH:mm,如10:03 |
buildingCode | 3 | int | 必填 | 楼栋号 | |
createTime | 2 | Long | 必填 | 创建时间 | 时间戳:秒 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总数,
"totalPages":总页数,
"list":[
{
"cardNo":卡号,
"endDate":结束时间,
"isLock":是否可开反锁,
"createTime":创建时间
"list":[
{
"buildingCode":楼栋号,
"floorCode":楼层号
}
]
}
]
}
}
楼栋卡列表
本地服务器版本:
- V1.5.3
命令值(cmd):
- 404
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum":0,
"getNum":10
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
totalPages | 1 | int | 必填 | 总页数 | |
buildingCardId | 2 | String | 必填 | 楼栋卡ID | |
lossCardNo | 2 | String | 可选 | 挂失卡号 | |
cardNo | 2 | String | 必填 | 卡号 | |
remark | 2 | String | 必填 | 持卡人 | |
endDate | 2 | long | 必填 | 结束时间 | 时间戳:秒 |
isLock | 2 | int | 可选 | 是否可开反锁 | 0不允许 1允许 默认不允许 |
normallyOpen | 2 | int | 可选 | 常开模式 | 0常开关闭,正常模式 1常开打开,常开模式 默认常开关闭 |
state | 2 | int | 可选 | 卡片状态 | 0: 回收 1: 正常 2: 挂失 3: 顶替 |
replaceFunction | 2 | int | 可选 | 顶替前卡 | 1顶替 2不顶替 默认不顶替 |
timePeriods | 2 | List | 可选 | 可开时间段 | 最多设置2个 |
beginTime | 3 | String | 可选 | 时间段开始时间 | 格式:HH:mm,如10:03 |
endTime | 3 | String | 可选 | 时间段结束时间 | 格式:HH:mm,如10:03 |
buildingCode | 3 | int | 必填 | 楼栋号 | |
createTime | 2 | Long | 必填 | 创建时间 | 时间戳:秒 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总数,
"totalPages":总页数,
"list":[
{
"buildingCardId":"fdsmxmeo=",
"cardNo":卡号,
"endDate":结束时间,
"isLock":是否可开反锁,
"createTime":创建时间
"list":[
{
"buildingCode":楼栋号
}
]
}
]
}
}
退房卡
注意:只支持宾客卡制作退房卡,且授权已退房,门锁刷退房卡后宾客卡失效。
本地服务器版本:
- V1.9.0
命令值(cmd):
- 408
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | |
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
checkInId | 1 | String | 必填 | 授权ID | |
cardNo | 1 | String | 必填 | 卡号 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
总卡数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500300 | 房间不存在 |
500502 | 状态异常,操作失败 |
500400 | 非法卡片,不是酒店加密卡 |
500504 | 不支持该功能 |
500404 | 安裝卡,请先进行回收 |
500405 | 操作失败,加密卡非法 |
-- | 其他异常 |
应用场景
前提
第三方部署MQTT服务(推荐使用EMQX),工程锁系统MQTT host连接地址协议tcp://IP:端口
,端口默认1883,第三方可根据需求调整端口
场景
通过MQTT对接,进行工程锁系统房间、设备操作等
房源管理
修改房间
本地服务器版本:
- V1.6.0
命令值(cmd):
- 108
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 |
isVisible | 1 | int | 可选 | 是否房态图可见 | 1可见 0不可见 |
roomTypeNum | 1 | int | 可选 | 房间类型编号 | |
pmsRoomName | 1 | String | 可选 | PMS房间名 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode": 门锁号,
"roomName": 房间名
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
修改房间类型
本地服务器版本:
- V1.6.0
命令值(cmd):
- 111
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
roomTypeNum | 1 | int | 必填 | 房间类型编号 | 列表唯一 |
roomTypeName | 1 | String | 可选 | 类型名称 | -- |
remark | 1 | String | 可选 | 备注 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"roomTypeNum":房间类型编号,
"roomTypeName": 类型名称,
"remark": 备注
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
修改楼栋
本地服务器版本:
- V1.6.0
命令值(cmd):
- 105
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
buildingCode | 1 | int | 必填 | 楼栋码(唯一) | 1-255 |
floorNum | 1 | int | 可选 | 楼层数量 | |
buildingAddr | 1 | String | 可选 | 地址 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"buildingCode": 楼栋码,
"buildingName": 楼栋名,
"floorNum": 楼层数量
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
删除房间
本地服务器版本:
- V1.6.0
命令值(cmd):
- 109
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode": 门锁号
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
删除房间类型
本地服务器版本:
- V1.6.0
命令值(cmd):
- 112
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
roomTypeNum | 1 | int | 必填 | 房间类型编号 | 列表唯一 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"roomTypeNum":房间类型编号
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
删除楼栋
本地服务器版本:
- V1.6.0
命令值(cmd):
- 106
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
buildingCode | 1 | int | 必填 | 楼栋码(唯一) | 1-255 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"buildingCode": 楼栋码
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
房间列表
本地服务器版本:
- V1.5.3
命令值(cmd):
- 102
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
buildingCode | 1 | int | 必填 | 楼栋码(唯一) | |
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"buildingCode":楼栋号,
"startNum": 开始节点,
"getNum": 获取数量
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
roomName | 2 | String | 必填 | 房号 | 房间名 |
subRoomName | 2 | String | 可选 | 套房号 | A-Z大写 |
lockCode | 2 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 |
isVisible | 2 | int | 必填 | 是否显示到房态图 | 1表示显示 0表示不显示 |
lockMac | 3 | String | 必填 | 门锁MAC | 唯一 |
lockName | 3 | String | 可选 | 门锁名称 | |
hardwareVersion | 3 | String | 必填 | 硬件版本号 | |
softwareVersion | 3 | String | 必填 | 软件版本号 | |
gatewaySeq | 3 | String | 可选 | 关联网关序列号 | 该参数存在表示关联了网关,网关/网络取电开关类型为[1.2.3]此参数必填,网络取电开关没有序列号则需要gatewayMac判断 |
gatewayState | 3 | int | 可选 | 网关/网络取电开关状态 | 3 在线 4 离线 V1.9.0新增 |
gatewayMac | 3 | String | 可选 | 网关/网络取电开关MAC | 该参数存在,表示门锁关联了网关或网络取电开关 V2.0.0新增 |
gatewayType | 1 | int | 可选 | 网关/网络取电开关类型 | 1:433+蓝牙网关 2:433网关 3:单蓝牙网关 5:网络取电开关 V2.0.0新增 |
bleProtocolVer | 3 | int | 可选 | 蓝牙协议版本 | |
adminAuthCode | 3 | String | 必填 | 管理员鉴权码 | 有权限调用所有蓝牙接口 |
generalAuthCode | 3 | String | 必填 | 普通用户鉴权码 | 没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限 |
tempAuthCode | 3 | String | 必填 | 临时鉴权码 | 与普通授用户权码一样,没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限 |
roomTypeId | 2 | String | 必填 | 房间类型ID | -- |
electricNum | 2 | int | 可选 | 门锁电量 | V1.9.0新增 |
supportCycleNormallyOpen | 2 | int | 可选 | 是否支持周期常开设置 | 1 支持 空或0不支持 V2.0.0新增 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总条数,
"totalPages": 总页数,
"list": [{
房间数据
}]
}
}
房间列表
本地服务器版本:
- V2.1.0
命令值(cmd):
- 102
功能变化:
- 1.增加房间状态(roomState)返回
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
buildingCode | 1 | int | 必填 | 楼栋码(唯一) | |
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"buildingCode":楼栋号,
"startNum": 开始节点,
"getNum": 获取数量
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
roomName | 2 | String | 必填 | 房号 | 房间名 |
subRoomName | 2 | String | 可选 | 套房号 | A-Z大写 |
roomState | 2 | int | 必填 | 房间状态 | 1 闲置 2.出租 3.预定 4.到期 5.打扫 6.维护 7封房 V2.1.0版本新增 |
lockCode | 2 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 |
isVisible | 2 | int | 必填 | 是否显示到房态图 | 1表示显示 0表示不显示 |
lockMac | 3 | String | 必填 | 门锁MAC | 唯一 |
lockName | 3 | String | 可选 | 门锁名称 | |
hardwareVersion | 3 | String | 必填 | 硬件版本号 | |
softwareVersion | 3 | String | 必填 | 软件版本号 | |
gatewaySeq | 3 | String | 可选 | 关联网关序列号 | 该参数存在表示关联了网关,网关/网络取电开关类型为[1.2.3]此参数必填,网络取电开关没有序列号则需要gatewayMac判断 |
gatewayState | 3 | int | 可选 | 网关/网络取电开关状态 | 3 在线 4 离线 V1.9.0新增 |
gatewayMac | 3 | String | 可选 | 网关/网络取电开关MAC | 该参数存在,表示门锁关联了网关或网络取电开关 V2.0.0新增 |
gatewayType | 1 | int | 可选 | 网关/网络取电开关类型 | 1:433+蓝牙网关 2:433网关 3:单蓝牙网关 5:网络取电开关 V2.0.0新增 |
bleProtocolVer | 3 | int | 可选 | 蓝牙协议版本 | |
adminAuthCode | 3 | String | 必填 | 管理员鉴权码 | 有权限调用所有蓝牙接口 |
generalAuthCode | 3 | String | 必填 | 普通用户鉴权码 | 没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限 |
tempAuthCode | 3 | String | 必填 | 临时鉴权码 | 与普通授用户权码一样,没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限 |
roomTypeId | 2 | String | 必填 | 房间类型ID | -- |
electricNum | 2 | int | 可选 | 门锁电量 | V1.9.0新增 |
supportCycleNormallyOpen | 2 | int | 可选 | 是否支持周期常开设置 | 1 支持 空或0不支持 V2.0.0新增 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总条数,
"totalPages": 总页数,
"list": [{
房间数据
}]
}
}
房间电量
本地服务器版本:
- V1.9.0
命令值(cmd):
- 113
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
roomList | 1 | List | 可选 | -- | -- |
lockCode | 2 | String | 必填 | 门锁号 | -- |
electricNum | 2 | int | 可选 | 电量 | -- |
gatewayState | 2 | int | 可选 | 网关状态 | 3在线 4离线 门锁绑定网关有此参数 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"roomList":[
{
"lockCode":"1.0.2",
"electricNum":20,
"gatewayState":3
}
]
}
}
房间类型列表
本地服务器版本:
- V1.5.3
命令值(cmd):
- 103
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum": 开始节点,
"getNum": 获取数量
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
listSum | 1 | int | 必填 | 总数 | -- |
totalPages | 1 | int | 必填 | 总页数 | -- |
list | 1 | list | 可选 | -- | |
roomTypeName | 2 | String | 必填 | 类型名称 | |
roomTypeNum | 2 | int | 必填 | 房间类型编号 | 列表唯一 |
remark | 2 | String | 可选 | 备注 | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总条数,
"totalPages": 总页数,
"list": [{
房间类型数据
}]
}
}
房间门锁网关信号
本地服务器版本:
- V1.9.0
命令值(cmd):
- 114
注意:房间必须绑定网关
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.0"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | -- |
lockMac | 1 | String | 可选 | 门锁MAC | -- |
gatewaySeq | 1 | String | 可选 | 网关序列号 | -- |
gatewayMac | 1 | String | 可选 | 网关MAC | -- |
gatewayChannel | 1 | int | 可选 | 网关信道 | -- |
uplinkRssi | 1 | int | 可选 | 上行信号 | -- |
downlinkRssi | 1 | int | 可选 | 下行信号 | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"lockCode":"1.0.2",
"lockMac":"A3DF11113",
"gatewaySeq":"2131231FFF",
"gatewayMac":"AD341241",
"gatewayChannel":6,
"uplinkRssi":-80,
"downlinkRssi":-20
}
}
楼栋列表
本地服务器版本:
- V1.5.3
命令值(cmd):
- 101
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum": 开始节点,
"getNum": 获取数量
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
listSum | 1 | int | 必填 | 总数 | -- |
totalPages | 1 | int | 必填 | 总页数 | -- |
list | 1 | list | 可选 | -- | |
buildingName | 2 | String | 必填 | 楼栋名 | -- |
buildingCode | 2 | int | 必填 | 楼栋码(唯一) | -- |
floorNum | 2 | int | 必填 | 楼层数 | -- |
buildingAddr | 2 | String | 可选 | 楼栋地址 | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总条数,
"totalPages": 总页数,
"list": [{
楼栋数据
}]
}
}
添加房间
本地服务器版本:
- V1.6.0
命令值(cmd):
- 107
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
buildingCode | 1 | int | 必填 | 楼栋码(唯一) | 1-255 |
floorCode | 1 | int | 必填 | 楼层码 | 1-255 |
roomCode | 1 | int | 必填 | 房间码 | 1-3000000 |
isChannelMode | 1 | int | 必填 | 是否通道模式 | 1是 0否 |
isVisible | 1 | int | 必填 | 是否房态图可见 | 1可见 0不可见 |
roomTypeNum | 1 | int | 必填 | 房间类型编号 | |
replaceFunction | 1 | int | 必填 | 顶替功能 | 1使能 2禁用 |
pmsRoomName | 1 | String | 可选 | PMS房间名 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"buildingCode": 楼栋码,
"floorCode": 楼层码,
"roomName": 房间名,
"roomCode": 房间码,
"isChannelMode": 是否通道模式,
"isVisible": 是否房态图可见,
"roomTypeNum":"房间类型编号",
"replaceFunction":"顶替功能"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"lockCode":"门锁号"
}
}
添加房间类型
本地服务器版本:
- V1.6.0
命令值(cmd):
- 110
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
roomTypeName | 1 | String | 必填 | 类型名称 | -- |
remark | 1 | String | 可选 | 备注 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"roomTypeName": 类型名称,
"remark": 备注
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
roomTypeNum | 1 | int | 必填 | 房间类型编号 | 列表唯一 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"roomTypeNum": 房间类型编号
}
}
添加楼栋
本地服务器版本:
- V1.6.0
命令值(cmd):
- 104
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
buildingCode | 1 | int | 必填 | 楼栋码(唯一) | 1-255 |
floorNum | 1 | int | 必填 | 楼层数量 | |
buildingAddr | 1 | String | 可选 | 地址 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"buildingCode": 楼栋码,
"buildingName": 楼栋名,
"floorNum": 楼层数量
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
房间操作
下发挂失V2.1.0
- cardNo和cardDispenserSeq不为空表示制作挂失卡,制作成功后,刷门锁后之前授权则失效(支持宾客卡授权制作挂失卡)。例如:房卡丢失,制作一张挂失卡刷门锁后,丢失房卡则不能开锁。
- cardNo和cardDispenserSeq空表示通过网关下发挂失,下发挂失成功后,之前授权则失效(支持离线密码、宾客卡、自定义密码、自定义卡片、指纹、二维码授权下发挂失)
- 下发挂失,房间门锁需要绑定网关
本地服务器版本:
- V2.1.0
命令值(cmd):
- 325
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | 可通过接口“房间入住列表同步”获取到房间的入住信息 |
cardDispenserSeq | 1 | String | 可选 | 发卡器序列号 | 制作挂失卡必填 |
cardNo | 1 | String | 可选 | 卡号 | 制作挂失卡必填 |
delaySend | 1 | int | 可选 | 是否延时下发 | 1: 延时下发 非1 或 空 默认下发方式 V2.8.0新增 制作挂失卡不支持延时下发 |
云端发布Pub(示例):
下发挂失
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"checkInId":"xxxx="
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
下发指纹、人脸结果推送
网关下发指纹、人脸结果推送给第三方
本地服务器版本:
- V1.9.0
命令值(cmd):
- 319
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | 是 | String | 入住ID | — |
resultCode | 1 | 是 | int | 结果码 | 1成功 其他失败 |
reason | 1 | 否 | String | 原因 | 失败原因 |
边缘网关发布Pub(示例):
{
"cmd":319,
"msgId":1390450371,
"data":{
"checkInId":"7wejyJDSCjc=",
"resultCode":1
}
}
云端不需要响应
二维码授权
- 房间封房状态不允许自定义密码
本地服务器版本:
- V2.2.0
命令值(cmd):
- 326
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
phoneNo | 1 | String | 可选 | 手机号码 | 公寓场景必传 注意:填手机号会同步公版APP或小程序授权二维码开锁功能 |
countryCode | 1 | int | 可选 | 国家编码 | -- |
authorMode | 1 | int | 必填 | 有效期授权方式 | 1:有效期授权 2:周期重复时间段授权 |
weeks | 1 | int | 可选 | 周期 | authorMode = 0x02有效,按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效。 若authorMode!= 0x02,则Weeks = 0 如1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | 格式:hh:mm |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | 格式:hh:mm |
useNum | 1 | int | 可选 | 使用次数 | 不填或255表示无限次 限制次数,最大是254次 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
二维码授权数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 |
customerName | 1 | String | 必填 | 房客名称 | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID,
"lockCode":"1.1.201",
"customerName":"zzy"
}
}
二维码重新授权(手机号)
- 房间封房状态不允许重新授权
二维码授权有效,授权手机号码已填且二维码手机号同步公版状态失败(sendStatus=2),调用此接口重新同步二维码授权到公版
本地服务器版本:
- V2.2.0
命令值(cmd):
- 327
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
授权ID
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
人脸下发
- 房间封房状态不允许人脸下发
本地服务器版本:
- V2.5.0
命令值(cmd):
- 330
注意:
1.门锁绑定网关,门锁和网关都需要支持指纹下发
2.人脸下发结果通过319命令推送给第三方
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
picture | 1 | String | 必填 | Base64编码图片 | 必须经过“图片处理接口”获取 |
云端发布Pub(示例):
{
"cmd": 330,
"msgId": 122321323,
"data": {
"lockCode":"1.2.204",
"customerName":"zzy",
"beginTime":1649984400,
"endTime":1649990000,
"picture":“xxxxxxxxxxxxxxxxxx=”
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
state | 1 | int | 必填 | 状态 | 1 已入住 3 待下发入住 |
customerName | 1 | String | 必填 | 房客名称 | |
picture | 1 | String | 必填 | base64数据 | -- |
边缘网关响应Sub(示例):
{
"cmd":329,
"msgId":122321323,
"rslt":0,
"rsn":"Success",
"data":{
"checkInId":"NmXMbUhcMk0=",
"state":3,
"customerName":"zzy"
"picture":"xxxxxxx="
}
}
入住解冻/冻结V2.1.0
- 离线卡片、离线密码、人脸识别授权不自动解冻、冻结
- 授权状态正常的支持冻结
- 房间封房状态不支持冻结
- 手机授权不绑定网关也支持冻结,指、密、卡、遥控则必须要绑定网关才能解冻、冻结
本地服务器版本:
- V2.1.0
命令值(cmd):
- 324
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | 可通过接口“房间入住列表同步”获取到房间的入住信息 |
enableType | 1 | int | 必填 | 操作类型 | 1解冻 2冻结 |
云端发布Pub(示例):
入住解冻/冻结
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"checkInId":"xxxx=",
"enableType":1
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
state | 1 | int | 必填 | 状态 | 1正常 7冻结 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": "xxxx=",
"state":1
}
}
入住详情
本地服务器版本:
- V1.5.3
命令值(cmd):
- 310
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | 可通过接口“房间入住列表同步”获取到房间的入住信息 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"checkInId":授权ID
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
buildingName | 1 | String | 必填 | 楼栋名称 | |
roomName | 1 | String | 必填 | 房间名称 | |
state | 1 | int | 必填 | 状态 | 1正常 3 待下发生效 4 挂失 5 待下发挂失 6待下发续住 7冻结 |
authType | 1 | int | 必填 | 授权类型 | 1.指纹 2密码 4卡片 16二维码 64人脸下发 128 APP远程 129微信授权 256 人脸识别授权 |
authorMode | 1 | int | 必填 | 有效期类型 | 1有效时间段 2周期 3永久 4临时 |
addMode | 1 | int | 可选 | 授权添加方式 | 1远程下发 3离线生成 |
weeks | 1 | int | 可选 | 周期 | authorMode = 0x02有效,按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效。 若authorMode!= 0x02,则Weeks = 0 如1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | authorMode = 0x02有效 格式:hh:mm |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | authorMode = 0x02有效 格式:hh:mm |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
countryCode | 1 | int | 可选 | 国家编码 | |
appKey | 1 | int | 可选 | 手机APP授权 | 0或不填 ,表示不授权 1授权 |
miniProgramKey | 1 | int | 可选 | 微信授权 | 0或不填,表示不授权 1授权 |
useNum | 1 | int | 可选 | 使用次数 | 不填或255表示无限次 限制次数,最大是254次 |
normallyOpen | 1 | int | 可选 | 常开模式 | 1常开打开,常开模式 2常开关闭,正常模式 不传默认2,常开关闭 |
isLock | 1 | int | 可选 | 反锁功能 | 1:反锁功能开启,可开反锁 2:反锁功能关闭,不能开反锁 不传默认2,反锁功能关闭 |
password | 1 | String | 可选 | 密码 | -- |
qrCode | 1 | String | 可选 | 二维码图 | Base64编码,authType=16有效 v2.2.0新增 |
sendStatus | 1 | int | 可选 | 二维码手机号同步公版状态 | authType=16 且 手机号码不为空有效 1成功 2失败 3下发中 v2.2.0新增 |
picture | 1 | String | 可选 | Base64编码图片 | authType = 64 或 authType = 256 有效 2.5.0版本新增 |
auth | 1 | list | 可选 | 授权详情 | |
relaId | 2 | String | 必填 | 联动授权关系ID | |
channelType | 2 | Int | 必填 | 通道类型 | 5大门 6楼栋 7楼层 8房间 9套房 |
roomName | 2 | String | 必填 | 房间名称 | |
state | 2 | int | 必填 | 状态 | 1已入住 2待下发退房 3待下发入住 4挂失 5待下发挂失 6待下发续住 |
sendStatus | 2 | int | 必填 | 状态 | 1成功 2下发失败 3下发中 |
password | 2 | String | 可选 | 钥匙内容 | authType = 2 密码 authType = 4 卡片 |
useNum | 2 | int | 可选 | 使用次数 | 255或空表示无限次 限制次数,最大是254次 |
picture | 2 | String | 可选 | 人脸图片 | base64编码 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
授权详情数据
}
}
删除单个入住
本地服务器版本:
- V1.5.3
命令值(cmd):
- 305
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | 可通过接口“房间入住列表同步”获取到房间的入住信息 |
cardDispenserSeq | 1 | String | 可选 | 发卡器序列号 | 删除宾客卡授权,卡片如需要回收,填此参数 |
cardNo | 1 | String | 可选 | 卡号 | 删除宾客卡授权,卡片如需要回收,填此参数 |
delaySend | 1 | int | 可选 | 是否延时下发 | 1: 延时下发 非1 或 空 默认下发方式 V2.8.0新增 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"checkInId":授权ID
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID
}
}
删除小程序(推送)
本地服务器版本:
- V1.5.3
命令值(cmd):
- 309
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
checkInId | 1 | String | 必填 | 授权ID | 可通过接口“房间入住列表同步”获取到房间的入住信息 |
边缘网关发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":门锁号,
"checkInId":授权ID
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
云端响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
制作宾客卡(多门卡)
- 房间封房状态不允许制作宾客卡
本地服务器版本:
- V1.9.0
命令值(cmd):
- 301
服务器接口版本(version):
- 1.1
注意:
1.接口版本1.1支持制作多门卡,多门卡最多支持4个房间 2.多门卡只支持第一个房间为套房,后面出现套房则自动授权主房间
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | List<String> | 必填 | 门锁号 | 每个房间的门锁号都是唯一 最多4个房间,只支持第一个是套房,其他三个不能是套房 通过房间列表获取 |
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
cardNo | 1 | String | 必填 | 卡号 | |
customerName | 1 | String | 必填 | 房客名称 | |
checkInFlag | 1 | int | 可选 | 入住标记 | 0 立即入住(默认) 以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取入参开始时间(建议为当前时间)作为本次入住授权的开始时间(时间精度为小时) 1 其他时间入住 取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
phoneNo | 1 | String | 可选 | 手机号码 | 公寓场景必传 |
countryCode | 1 | int | 可选 | 国家编码 | |
normallyOpen | 1 | int | 可选 | 常开模式 | 1常开打开,常开模式 2常开关闭,正常模式 不传默认2,常开关闭 |
isLock | 1 | int | 可选 | 反锁功能 | 1:反锁功能开启,可开反锁 2:反锁功能关闭,不能开反锁 不传默认2,反锁功能关闭 |
floorList | 1 | list | 可选 | 可开楼层 | 2.7.3新增 |
floorCode | 2 | int | 可选 | 楼层码 | 2.7.3新增 |
云端发布Pub(示例):
{
"cmd": 301,
"msgId": 122321323,
"version":1.1,
"data": {
"lockCode":["1.2.202","1.2.204"],
"cardDispenserSeq": "MNR63218751FB5",
"customerName":"zzy",
"beginTime":1649984400,
"endTime":1650090000,
"phoneNo":13535455351,
"cardNo":"E370DE92"
"floorList" : [{"floorCode" : 1},{"floorCode" :2,},{"floorCode" :3,},{"floorCode" :4,},{"floorCode" :5,}]
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
list | 1 | List | 必填 | -- | |
lockCode | 2 | String | 必填 | 门锁号 | -- |
checkInId | 2 | String | 必填 | 授权ID | -- |
边缘网关响应Sub(示例):
{
"cmd": 301,
"msgId": 122321323,
"version":1.1,
"data": {
"lockCode": ["5.2.201"],
"cardDispenserSeq": "MNR600E48A4A71",
"customerName": "zzy",
"beginTime": 1693452689,
"endTime": 1696044689,
"phoneNo": 13535455351,
"cardNo": "E35F81A2",
"floorList" : [{"floorCode": 1},{"floorCode": 2},{"floorCode": 3},{"floorCode": 4},{"floorCode": 5}]
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500300 | 房间不存在 |
500322 | 制卡失败,xxx房间信息不全 |
500321 | 制卡失败,xxx没有安装门锁 |
500324 | xxx房间时间段内已有人预约,请调整选择的时间范围 |
500330 | 非立即入住,开始时间不能小于xxx,避免“在住房客”被顶替掉导致无法开锁 |
500331 | 入住的时间段内已有人入住,为避免顶替导致有人无法开锁,请调整选择的时间范围 |
500400 | 非法卡片,不是酒店加密卡 |
500528 | xxx房间已存在授权 |
500533 | 操作失败,房间已封房 |
500404 | 安裝卡,请先进行回收 |
500405 | 操作失败,加密卡非法 |
-- | 其他异常 |
制作宾客卡
- 房间封房状态不允许制作宾客卡
本地服务器版本:
- V1.5.3
命令值(cmd):
- 301
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 唯一 |
cardNo | 1 | String | 必填 | 卡号 | |
customerName | 1 | String | 必填 | 房客名称 | |
checkInFlag | 1 | int | 可选 | 入住标记 | 0 立即入住(默认) 以已入住房客授权的开始时间作为本次入住授权的开始时间,如对应房源内没有已入住的房客,则取入参开始时间(建议为当前时间)作为本次入住授权的开始时间(时间精度为小时) 1 其他时间入住 取入参开始时间作为本次入住授权的起始时间(可以为未来时间,时间精度为小时) 备注: 房间门锁开启顶替功能,如果入住时间触发其他授权顶替,服务器则会有异常提示,第三方需要调整入住时间。 |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
phoneNo | 1 | String | 可选 | 手机号码 | 公寓场景必传 |
countryCode | 1 | int | 可选 | 国家编码 | |
normallyOpen | 1 | int | 可选 | 常开模式 | 1常开打开,常开模式 2常开关闭,正常模式 不传默认2,常开关闭 |
isLock | 1 | int | 可选 | 反锁功能 | 1:反锁功能开启,可开反锁 2:反锁功能关闭,不能开反锁 不传默认2,反锁功能关闭 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
宾客卡数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID
}
}
周期常开设置
本地服务器版本:
- V2.0.0
命令值(cmd):
- 321
门锁必须绑定网关,门锁必须支持周期常开设置功能
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 可选 | 门锁号 | 每个房间的门锁号都是唯一 门锁号或门锁Mac 二者必填其一 通过房间列表获取 |
lockMac | 1 | String | 可选 | 门锁Mac | 门锁号或门锁Mac 二者必填其一 通过房间列表获取 |
cycleNormallyOpen | 1 | int | 必填 | 周期常开 | 1 开启 2 关闭 |
beginTime | 1 | long | 可选 | 开始时 | 时间戳,单位:秒 |
endTime | 1 | long | 可选 | 结束时间 | 时间戳,单位:秒 |
weeks | 2 | int | 可选 | 星期数据 | bit位域表示 例如: bit.0=1 表示周一 bit.1=2 表示周二 bit.2=4 表示周三 |
timeList | 2 | List | 可选 | 时间段 | 最多设置7个 |
dayStartTimes | 3 | String | 可选 | 每日起始时间 | HH:mm |
dayEndTimes | 3 | String | 可选 | 每日结束时间 | HH:mm |
serialNumber | 3 | String | 可选 | 序列号 | 1~7 |
云端发布Pub(示例):
周期常开关闭
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.1",
"cycleNormallyOpen":2
}
}
周期常开开启
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode": "1.2.1",
"cycleNormallyOpen": 1,
"beginTime": 1653494400,
"endTime": 1653580799,
"list": [{
"weeks": "1",
"timeList": [{
"dayStartTimes": "11:00",
"dayEndTimes": "12:10",
"remark": "1",
"serialNumber": 1
}]
}, {
"weeks": "2",
"timeList": [{
"dayStartTimes": "12:10",
"dayEndTimes": "13:20",
"remark": "3",
"serialNumber": 1
}]
}]
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
图片处理
- 下发人脸时,图片数据必须较过此接口校验通过获取
本地服务器版本:
- V2.5.0
命令值(cmd):
- 329
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
picture | 1 | String | 必填 | Base64编码图片 | -- |
lockCode | 1 | String | 可选 | 门锁号 | V2.7.5新增 通过房间列表获取 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"picture":"xcvawesdfsadfsdad"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
picture | 1 | String | 必填 | Base64编码图片 | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"picture":"xcvawesdfsadfsdad"
}
}
小程序入住
本地服务器版本:
- V1.5.3
命令值(cmd):
- 308
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
checkInId | 1 | String | 必填 | 授权ID | |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
phoneNo | 1 | String | 必填 | 手机号码 | |
countryCode | 1 | int | 必填 | 国家编码 | |
miniProgramKey | 1 | int | 可选 | 微信授权 | 0或不填,表示不授权 1授权 |
边缘网关发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
小程序入住数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
云端响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
待处理入住列表
本地服务器版本:
- V1.8.0
命令值(cmd):
- 312
入参说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 否 | 开始记录数 | 默认为0 |
pageSize | 1 | int | 否 | 分页大小 | 默认10,最大50 |
buildingCode | 1 | int | 否 | 楼栋码 | -- |
floorCode | 1 | int | 否 | 楼层码 | -- |
roomName | 1 | String | 否 | 房间名称 | -- |
customerName | 1 | String | 否 | 房客名称 | -- |
cardNo | 1 | String | 否 | 卡号 | -- |
checkInAuthType | 1 | int | 否 | 入住类型 | 1 指纹 2自定义密码 3离线卡片 4手机授权 5离线密码 6下发卡片 7人脸识别 8二维码(V2.5.0新增) 9人脸下发(V2.5.0新增) |
state | 1 | int | 否 | 状态 | 2待下发退房 3待下发入住 5待下挂失 6待下发续住 |
边缘网关发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum": 0,
"pageSize": 10
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
listSum | 1 | int | 必填 | 总数 | -- |
totalPages | 1 | int | 必填 | 总页数 | -- |
list | 1 | list | 可选 | -- | |
checkInId | 2 | String | 可选 | 入住ID | -- |
lockCode | 2 | String | 可选 | 门锁号 | -- |
updateTime | 2 | long | 可选 | 时间 | -- |
buildingName | 2 | String | 可选 | 楼栋名 | -- |
floorCode | 2 | int | 可选 | 楼层码 | -- |
roomName | 2 | String | 可选 | 房间名 | -- |
checkInName | 2 | String | 可选 | 姓名 | -- |
checkInAuthType | 2 | int | 可选 | 授权类型 | 1.指纹 2自定义密码 3离线卡片 4手机授权 5离线密码 6下发卡片 7人脸识别 8二维码(V2.5.0新增) 9人脸下发(V2.5.0新增) |
state | 2 | int | 可选 | 状态 | 2待下发退房 3待下发入住 5待下发挂失 6待下发续住 |
keyContent | 2 | String | 可选 | 钥匙内容 | -- |
响应示例 |
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 1,
"totalPages": 1,
"list": [{
"checkInId": "+LD/tJyceg=",
"lockCode": "1.1.103",
"updateTime": 1642750740,
"buildingName": "A栋",
"floorCode": 1,
"roomName": "A103",
"checkInName": "QWEQWE",
"checkInAuthType": 2,
"state": 3
}]
}
}
忽略待处理入住
本地服务器版本:
- V1.8.0
命令值(cmd):
- 313
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | 通过接口“待处理入住列表”获取 |
边缘网关发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"checkInId": "+LD/tJysceg="
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
响应示例 |
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
房间入住列表同步
本地服务器版本:
- V1.5.3
命令值(cmd):
- 307
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":门锁号
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
list | 1 | List | 可选 | -- | |
checkInId | 2 | String | 必填 | 授权ID | |
state | 2 | int | 必填 | 状态 | 1正常 3 待下发生效 4 挂失 5 待下发挂失 6待下发续住 7冻结 |
authType | 2 | int | 必填 | 授权类型 | 1.指纹 2密码 4卡片 16二维码 64人脸下发 128 APP远程 129微信授权 256 人脸识别授权 |
authorMode | 2 | int | 必填 | 有效期类型 | 1有效时间段 2周期 3永久 4临时 |
addMode | 2 | int | 可选 | 授权添加方式 | 1远程下发 3离线生成 |
weeks | 2 | int | 可选 | 周期 | authorMode = 0x02有效,按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效。 若authorMode!= 0x02,则Weeks = 0 如1001011就表示周日,周四,周二,周一 |
dayStartTimes | 2 | String | 可选 | 每日起始时间 | 格式:hh:mm |
dayEndTimes | 2 | String | 可选 | 每日结束时间 | 格式:hh:mm |
idType | 2 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
countryCode | 2 | int | 可选 | 国家编码 | |
appKey | 2 | int | 可选 | 手机APP授权 | 0或不填 ,表示不授权 1授权 |
miniProgramKey | 2 | int | 可选 | 微信授权 | 0或不填,表示不授权 1授权 |
useNum | 2 | int | 可选 | 使用次数 | 不填或255表示无限次 限制次数,最大是254次 |
normallyOpen | 2 | int | 可选 | 常开模式 | 1常开打开,常开模式 2常开关闭,正常模式 不传默认2,常开关闭 |
isLock | 2 | int | 可选 | 反锁功能 | 1:反锁功能开启,可开反锁 2:反锁功能关闭,不能开反锁 不传默认2,反锁功能关闭 |
password | 2 | String | 可选 | 密码 | -- |
picture | 2 | String | 可选 | Base64编码图片 | authType = 64 或 authType = 256 有效 2.5.0版本新增 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"list": [
{
入住数据
}
]
}
}
房间解封/封房
- 门锁必须要绑定网关
本地服务器版本:
- V2.1.0
命令值(cmd):
- 323
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
enableType | 1 | int | 必填 | 操作类型 | 1解封 2封房 |
云端发布Pub(示例):
房间解封/封房
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.1",
"enableType":1
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 |
roomState | 1 | int | 必填 | 房间状态 | 1 闲置 2 出租 3预定 4到期 5打扫 6维护 7封房 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"lockCode": "1.2.1",
"roomState":1
}
}
房间退房
本地服务器版本:
- V1.5.3
命令值(cmd):
- 306
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":门锁号
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
房间退房
本地服务器版本:
- V1.9.0
命令值(cmd):
- 306
服务器接口版本(version):
- 1.1
注意:
1.全部退房,所有的授权直接退房,(宾客卡相当无卡退房) 2.房间退房,先回收宾客卡(多门卡)授权,再退房间授权,房间授权存在其他宾客卡则该房间只删除卡号相关的授权不退房其他授权 3.宾客卡(多门卡)也可使用回收卡片,回收成功后删除宾客卡其房间相关授权达到退房效果
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | List<String> | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
operType | 1 | int | 必填 | 操作类型 | 1.全部退房 2.房间退房 |
cardDispenserSeq | 1 | String | 可选 | 发卡器序列号 | operType=2有效且必填 |
cardNo | 1 | String | 可选 | 卡号 | operType=2 有效且必填 |
delaySend | 1 | int | 可选 | 是否延时下发 | 1: 延时下发 非1 或 空 默认下发方式 V2.8.0新增 |
云端发布Pub(示例):
{
"cmd": 306,
"msgId": 122321323,
"version":1.1,
"data": {
"operType":2,
"lockCode":["1.2.202","1.2.204"],
"cardDispenserSeq": "MNR63218751FB5",
"cardNo":"E370DE92"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
手机授权
- 房间封房状态不允许手机授权
本地服务器版本:
- V1.9.0
命令值(cmd):
- 315
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
countryCode | 1 | int | 可选 | 国家编码 | |
appKey | 1 | int | 可选 | 手机APP授权 | 0或空表示不授权 1 表示授权 appKey和miniProgramKey 二者必填其一 |
miniProgramKey | 1 | int | 可选 | 微信授权 | 0或空表示不授权 1 表示授权 appKey和miniProgramKey 二者必填其一 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
手机授权数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500002 | 授权失败,请稍后再试 |
500003 | 授权失败,锁已被初始化,请重新添加门锁 |
500007 | 操作失败 |
500300 | 房间不存在 |
500316 | 房间未关联门锁 |
500503 | 重复授权 |
500504 | 不支持该功能 |
500530 | 未开启该功能 |
500541 | 未开启远程通讯功能,请先开启远程通讯功能 |
手机授权
- 房间封房状态不允许制作宾客卡
本地服务器版本:
- V2.1.0
命令值(cmd):
- 315
支持APP邮箱、APP手机、微信小程序授权
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
1 | String | 可选 | 邮箱 | 1.邮箱或手机号码必填其一 2.高级设置需要开启APP授权(邮箱),此参数有效 3.V2.1.0版本新增 | |
phoneNo | 1 | String | 可选 | 手机号码 | 1.邮箱或手机号码必填其一 2.高级设置需要开启APP授权(手机号)或微信授权,此参数有效 |
countryCode | 1 | int | 可选 | 国家编码 | |
appKey | 1 | int | 可选 | 手机APP授权 | 0或空表示不授权 1 表示授权 appKey和miniProgramKey 二者必填其一 高级设置需要开启APP授权(邮箱)或APP授权(手机号),此参数有效 |
miniProgramKey | 1 | int | 可选 | 微信授权 | 0或空表示不授权 1 表示授权 appKey和miniProgramKey 二者必填其一 高级设置需要开启微信授权权限,此参数有效 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
手机授权数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500002 | 授权失败,请稍后再试 |
500003 | 授权失败,锁已被初始化,请重新添加门锁 |
500007 | 操作失败 |
500300 | 房间不存在 |
500316 | 房间未关联门锁 |
500503 | 重复授权 |
500504 | 不支持该功能 |
500530 | 未开启该功能 |
500541 | 未开启远程通讯功能,请先开启远程通讯功能 |
手机授权使能/禁用
- 房间封房状态不允许手机授权使能/禁用
- 授权冻结状态不允许授权授权使能/进制
本地服务器版本:
- V1.9.0
命令值(cmd):
- 316
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
checkInId | 1 | String | 必填 | 授权ID | 可通过接口“房间入住列表同步”获取 |
authType | 1 | int | 必填 | 授权类型 | 128 APP远程 129微信授权 |
enableType | 1 | int | 必填 | 操作类型 | 1启用 2禁用 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
指纹下发
- 房间封房状态不允许指纹下发
本地服务器版本:
- V1.9.0
命令值(cmd):
- 318
注意:
1.发卡器读取指纹
2.门锁绑定网关,门锁和网关都需要支持指纹下发
3.指纹下发结果通过319命令推送给第三方
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | 获取指纹标识所在发卡器 |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
fingerPrintSign | 1 | String | 可选 | 指纹标识 | fingerPrint和fingerPrintSign二者必填其一 发卡器获取 |
云端发布Pub(示例):
{
"cmd": 318,
"msgId": 122321323,
"data": {
"lockCode":"1.2.204",
"cardDispenserSeq": "MNR63218751FB5",
"customerName":"zzy",
"beginTime":1649984400,
"endTime":1649990000,
"fingerPrintSign":1649990938227
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
state | 1 | int | 必填 | 状态 | 1 已入住 3 待下发入住 |
customerName | 1 | String | 必填 | 房客名称 | v2.2.0新增 |
fingerPrintSign | 1 | String | 必填 | 指纹标识 | 发卡器获取 v2.2.0新增 |
边缘网关响应Sub(示例):
{
"cmd":318,
"msgId":122321323,
"rslt":0,
"rsn":"Success",
"data":{
"checkInId":"NmXMbUhcMk0=",
"state":3
}
}
离线密码
- 1、如果密码的有效期小于1年,密码的有效期,精确到小时 如: 开始时间:2019-06-21 11:16:14 结束时间:2019-06-21 13:16:14 那么有效时间为:2019-06-21 11:00:00---2019-06-21 13:00:00
- 2、如果密码的有效期大于1年,密码的有效期精确到月 如: 开始时间:2019-06-21 11:16:14 结束时间:2020-09-21 11:16:14 那么有效时间为:2019-06-01 00:00:00---2020-09-01 00:00:00
如果密码开不了锁,在三方面进行排查 1、门锁时间是否正确(通过同步门锁时间来解决) 2、生成密码的aesKey、鉴权码是否和门锁上的一致(门锁初始化后,aesKey和鉴权码都会重新生成) 3、同一个时间生成的第一个密码输入可以开门,删除后再次相同开始结束时间生成的密码是无法开门的
- 房间封房状态不允许授权离线密码
本地服务器版本:
- V1.5.3
命令值(cmd):
- 304
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
phoneNo | 1 | String | 可选 | 手机号码 | |
countryCode | 1 | int | 可选 | 国家编码 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
离线密码数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID
}
}
续住
- 房间封房状态不允许续住
- 授权冻结状态不允许续住
本地服务器版本:
- V1.9.0
命令值(cmd):
- 317
注意:
- 离线密码不支持续住
- 单个续住支持手机、指纹、密码、宾客卡(不包括多门卡)、下发卡片授权
- 卡号续住支持宾客卡续住(包括多门卡)
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
operType | 1 | int | 必填 | 操作类型 | 1 单个续住 2 卡号续住(包括多门卡) |
checkInId | 1 | String | 可选 | 授权ID | operType=1 必填,可通过接口“房间入住列表同步”获取 |
endTime | 1 | long | 必填 | 结束时间 | 单位:秒 |
cardDispenserSeq | 1 | String | 可选 | 发卡器序列号 | operType=2 或者 operType=1且授权为离线开卡 必填 |
cardNo | 1 | String | 可选 | 卡号 | operType=2 或者 operType=1且授权为离线开卡 必填 |
delaySend | 1 | int | 可选 | 是否延时下发 | 1: 延时下发 非1 或 空 默认下发方式 V2.8.0新增 |
云端发布Pub(示例):
{
"cmd": 317,
"msgId": 122321323,
"data": {
"checkInId":"09dyHkOYj6Q=",
"operType":1,
"endTime":1660525200
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
自定义卡片下发
- 房间封房状态不允许自定义卡片下发
本地服务器版本:
- V1.5.3
命令值(cmd):
- 302
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
cardNo | 1 | String | 必填 | 卡号 | |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
phoneNo | 1 | String | 可选 | 手机号码 | 公寓场景必传 |
countryCode | 1 | int | 可选 | 国家编码 | |
authorMode | 1 | int | 必填 | 有效期授权方式 | 1:有效期授权 2:周期重复时间段授权 |
weeks | 1 | int | 可选 | 周期 | authorMode = 0x02有效,按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效。 若authorMode!= 0x02,则Weeks = 0 如1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | 格式:hh:mm |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | 格式:hh:mm |
useNum | 1 | int | 可选 | 使用次数 | 不填或255表示无限次 限制次数,最大是254次 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
自定义卡片数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500008 | 不支持Emoji表情 |
500104 | 手机号码错误 |
500204 | 门锁不支持该功能 |
500300 | 房间不存在 |
500316 | 房间未关联门锁 |
500324 | xxx房间时间段内已有人预约,请调整选择的时间范围 |
500330 | 非立即入住,开始时间不能小于xxx,避免“在住房客”被顶替掉导致无法开锁 |
500331 | 入住的时间段内已有人入住,为避免顶替导致有人无法开锁,请调整选择的时间范围 |
500503 | 重复授权 |
500533 | 操作失败,房间已封房 |
500707 | 卡片已被房客xxx录入使用,请从房客xxx的卡片列表删除或更换卡片 |
-- | 其他异常 |
自定义卡片下发
- 房间封房状态不允许自定义卡片下发
本地服务器版本:
- V2.1.0
命令值(cmd):
- 302
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
cardNo | 1 | String | 必填 | 卡号 | |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
phoneNo | 1 | String | 可选 | 手机号码 | 公寓场景必传 |
countryCode | 1 | int | 可选 | 国家编码 | |
authorMode | 1 | int | 必填 | 有效期授权方式 | 1:有效期授权 2:周期重复时间段授权 |
weeks | 1 | int | 可选 | 周期 | authorMode = 0x02有效,按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效。 若authorMode!= 0x02,则Weeks = 0 如1001011就表示周日,周四,周二,周一 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | 格式:hh:mm |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | 格式:hh:mm |
useNum | 1 | int | 可选 | 使用次数 | 不填或255表示无限次 限制次数,最大是254次 |
delaySend | 1 | int | 可选 | 是否延时下发 | 1: 延时下发 非1 或 空 默认下发方式 V2.8.0新增 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
自定义卡片数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 V2.1.0版本新增 |
cardNo | 1 | String | 必填 | 卡号 | V2.1.0版本新增 |
customerName | 1 | String | 必填 | 房客名称 | V2.1.0版本新增 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID,
"lockCode":"1.1.201",
"cardNo":"AFAFAFAF",
"customerName":"XXXX"
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500008 | 不支持Emoji表情 |
500104 | 手机号码错误 |
500204 | 门锁不支持该功能 |
500300 | 房间不存在 |
500316 | 房间未关联门锁 |
500324 | xxx房间时间段内已有人预约,请调整选择的时间范围 |
500330 | 非立即入住,开始时间不能小于xxx,避免“在住房客”被顶替掉导致无法开锁 |
500331 | 入住的时间段内已有人入住,为避免顶替导致有人无法开锁,请调整选择的时间范围 |
500503 | 重复授权 |
500533 | 操作失败,房间已封房 |
500707 | 卡片已被房客xxx录入使用,请从房客xxx的卡片列表删除或更换卡片 |
-- | 其他异常 |
自定义密码
- 房间封房状态不允许自定义密码
本地服务器版本:
- V1.5.3
命令值(cmd):
- 303
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
password | 1 | String | 必填 | 密码 | 6-16位数字 |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
phoneNo | 1 | String | 可选 | 手机号码 | 公寓场景必传 |
countryCode | 1 | int | 可选 | 国家编码 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
自定义密码数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500002 | 文件异常,请联系供应商处理! |
500204 | 门锁不支持该功能 |
500300 | 房间不存在 |
500316 | 房间未关联门锁 |
500324 | xxx房间时间段内已有人预约,请调整选择的时间范围 |
500330 | 非立即入住,开始时间不能小于xxx,避免“在住房客”被顶替掉导致无法开锁 |
500331 | 入住的时间段内已有人入住,为避免顶替导致有人无法开锁,请调整选择的时间范围 |
500533 | 操作失败,房间已封房 |
-- | 其他异常 |
自定义密码
- 房间封房状态不允许自定义密码
本地服务器版本:
- V2.1.0
命令值(cmd):
- 303
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
password | 1 | String | 必填 | 密码 | 6-16位数字 |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
phoneNo | 1 | String | 可选 | 手机号码 | 公寓场景必传 |
countryCode | 1 | int | 可选 | 国家编码 | -- |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
自定义密码数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 V2.1.0版本新增 |
customerName | 1 | String | 必填 | 房客名称 | V2.1.0版本新增 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID,
"lockCode":"1.1.201",
"customerName":"zzy"
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500002 | 文件异常,请联系供应商处理! |
500204 | 门锁不支持该功能 |
500300 | 房间不存在 |
500316 | 房间未关联门锁 |
500324 | xxx房间时间段内已有人预约,请调整选择的时间范围 |
500330 | 非立即入住,开始时间不能小于xxx,避免“在住房客”被顶替掉导致无法开锁 |
500331 | 入住的时间段内已有人入住,为避免顶替导致有人无法开锁,请调整选择的时间范围 |
500533 | 操作失败,房间已封房 |
-- | 其他异常 |
自定义密码
- 房间封房状态不允许自定义密码
本地服务器版本:
- V2.2.0
命令值(cmd):
- 303
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
password | 1 | String | 必填 | 密码 | 6-16位数字 |
customerName | 1 | String | 必填 | 房客名称 | |
beginTime | 1 | long | 必填 | 开始时间 | 时间戳:秒 |
endTime | 1 | long | 必填 | 结束时间 | 时间戳:秒 |
idType | 1 | int | 可选 | 证件类型 | 1身份证 2护照 3回乡证 4军官证 5士兵证 6学生证 7导游证 8驾驶证 |
phoneNo | 1 | String | 可选 | 手机号码 | 公寓场景必传 |
countryCode | 1 | int | 可选 | 国家编码 | -- |
authorMode | 1 | int | 必填 | 有效期授权方式 | 1:有效期授权 2:周期重复时间段授权 v2.2.0新增 |
weeks | 1 | int | 可选 | 周期 | authorMode = 0x02有效,按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效。 若authorMode!= 0x02,则Weeks = 0 如1001011就表示周日,周四,周二,周一 v2.2.0新增 |
dayStartTimes | 1 | String | 可选 | 每日起始时间 | 格式:hh:mm v2.2.0新增 |
dayEndTimes | 1 | String | 可选 | 每日结束时间 | 格式:hh:mm v2.2.0新增 |
useNum | 1 | int | 可选 | 使用次数 | 不填或255表示无限次 限制次数,最大是254次 v2.2.0新增 |
delaySend | 1 | int | 可选 | 是否延时下发 | 1: 延时下发 非1 或 空 默认下发方式 V2.8.0新增 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
自定义密码数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
checkInId | 1 | String | 必填 | 授权ID | -- |
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 V2.1.0版本新增 |
customerName | 1 | String | 必填 | 房客名称 | V2.1.0版本新增 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"checkInId": 授权ID,
"lockCode":"1.1.201",
"customerName":"zzy"
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500002 | 文件异常,请联系供应商处理! |
500204 | 门锁不支持该功能 |
500300 | 房间不存在 |
500316 | 房间未关联门锁 |
500324 | xxx房间时间段内已有人预约,请调整选择的时间范围 |
500330 | 非立即入住,开始时间不能小于xxx,避免“在住房客”被顶替掉导致无法开锁 |
500331 | 入住的时间段内已有人入住,为避免顶替导致有人无法开锁,请调整选择的时间范围 |
500533 | 操作失败,房间已封房 |
-- | 其他异常 |
获取周期常开设置
本地服务器版本:
- V2.0.0
命令值(cmd):
- 322
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 可选 | 门锁号 | 每个房间的门锁号都是唯一 门锁号或门锁Mac 二者必填其一 通过房间列表获取 |
lockMac | 1 | String | 可选 | 门锁Mac | 门锁号或门锁Mac 二者必填其一 通过房间列表获取 |
云端发布Pub(示例):
周期常开关闭
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.1"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockMac | 1 | String | 必填 | 门锁Mac | -- |
lockCode | 1 | String | 可选 | 门锁号 | 可选,门锁未绑定房间则门锁号为空 |
cycleNormallyOpen | 1 | int | 必填 | 周期常开 | 1 开启 2 关闭 |
beginTime | 1 | long | 可选 | 开始时 | 时间戳,单位:秒 |
endTime | 1 | long | 可选 | 结束时间 | 时间戳,单位:秒 |
weeks | 2 | int | 可选 | 星期数据 | bit位域表示 例如: bit.0=1 表示周一 bit.1=2 表示周二 bit.2=4 表示周三 |
timeList | 2 | List | 可选 | 时间段 | 最多设置7个 |
dayStartTimes | 3 | String | 可选 | 每日起始时间 | HH:mm |
dayStartTimes | 3 | String | 可选 | 每日结束时间 | HH:mm |
serialNumber | 3 | String | 可选 | 序列号 | 1~7 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"lockCode": "1.2.1",
"lockMac": "AAAA123132"
"cycleNormallyOpen": 1,
"beginTime": 1653494400,
"endTime": 1653580799,
"list": [{
"weeks": 1,
"timeList": [{
"dayStartTimes": "11:00",
"dayEndTimes": "12:10",
"serialNumber": 1,
"remark": "1"
}]
}, {
"weeks": 2,
"timeList": [{
"dayStartTimes": "12:10",
"dayEndTimes": "13:20",
"serialNumber": 1,
"remark": "3"
}]
}]
}
}
获取门锁系统参数和状态V3.0.0
本地服务器版本:
- V3.0.0
命令值(cmd):
- 332
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.1.111"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
lockTime | 1 | long | 可选 | 门锁系统当前时间 | 时间戳,单位秒 |
electricNum | 1 | int | 可选 | 最新电量 | -- |
electricNumTime | 1 | long | 可选 | 最后上报电量时间 | 时间戳,单位秒 |
isSound | 1 | int | 可选 | 语音启闭 | 0: 无关门启闭设置功能 1: 开关门语音打开 2: 开关门语音关闭 |
sysVolume | 1 | int | 可选 | 系统音量 | 0: 表示音量不可调节 其他表示正常系统音量 |
sysLanguage | 1 | int | 可选 | 系统语言 | 1: 简体中文 2: 繁体中文 3: 英文 4: 越南语 5: 泰语 |
lockOpen | 1 | int | 可选 | 开锁模式 | 0: 无开锁模式设置功能 1: 单一开锁 2: 组合开锁 |
normallyOpen | 1 | int | 可选 | 软件版本 | 0: 无常开模式设置功能 1: 常开模式启用 2: 常开模式关闭 |
isLock | 1 | int | 可选 | 反锁功能启闭 | 0: 无反锁功能 1: 反锁功能启用 2: 反锁功能关闭 |
isTamperWarn | 1 | int | 可选 | 防撬报警启闭 | 0: 无防撬报警功能 1: 防撬报警功能启用 2: 防撬报警功能关闭 |
isLockCoreWarn | 1 | int | 可选 | 锁芯报警启闭 | 0: 无锁芯报警功能 1: 锁芯报警功能启用 2: 锁芯报警功能关闭 |
isLockCap | 1 | int | 可选 | 锁头盖报警启闭 | 0: 无锁头盖报警功能 1: 锁头盖报警启用 2: 锁头盖报警关闭 |
initStatus | 1 | int | 可选 | 初始状态标志 | 0: 门锁未初始化状态 1: 非初始状态 |
timezoneOffset | 1 | int | 时区 | 门锁时区 | -- |
noPowerOpenNo | 1 | int | 可选 | 低电量后剩余开锁次数 | -- |
normallyOpenFlag | 1 | int | 可选 | 锁常卡状态标志 | 0: 已关锁 1: 已开锁,门锁处于常开状态 |
isLockFlag | 1 | int | 可选 | 反锁状态标识 | 0: 无反锁开关 1: 未打开反锁 2: 已打开反锁 |
bigBoltFlag | 1 | int | 可选 | 大方舌标志 | 0: 无大方舌开关 1: 大方舌缩进状态 2 :大方舌伸出状态(锁门状态) |
boltFlag | 1 | int | 可选 | 斜舌标志 | 0: 无斜舌开关 1: 斜舌缩进状态 2: 斜舌伸出状态 |
isNoOpenFlag | 1 | int | 可选 | 防撬开关标志 | 0: 无防撬开关检测 1: 防撬开关未动作 2: 防撬开关已动作(可能触发强拆事件) |
isCover | 1 | int | 可选 | 锁头盖开关状态 | 0: 无锁头盖开关 1: 锁头盖报警启用 2: 锁头盖报警关闭 |
isClose | 1 | int | 可选 | 已关门标志 | 0: 无关门开关检测 1: 已开门 2: 已关门 |
coreFlag | 1 | int | 可选 | 锁芯开关 | 0: 无锁芯检测 1: 锁芯未插入钥匙 2: 锁芯已插入钥匙 |
replaceFunction | 1 | 否 | int | 顶替功能 | 0: 不支持 1:开启 2:关闭 |
antiCopyFunction | 1 | 否 | int | 防复制功能 | 0: 不支持 1:开启 2:关闭 |
keyTrialErrorAlarmEn | 1 | 否 | int | 试错告警 | 0: 不支持 1:开启 2:关闭 |
noneCloseVoiceAlarmEn | 1 | 否 | int | 未关门告警语音使能 | 0: 不支持 1:开启 2:关闭 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
设置门锁系统参数V3.0.0
本地服务器版本:
- V3.0.0
命令值(cmd):
- 331
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
sysLanguage | 1 | int | 可选 | 门锁语言 | 1简体中文,2繁体中文,3英文,4越南语,5泰语 注意: 如果填了该参数下面参数不建议填 |
isSound | 1 | int | 可选 | 门锁语音 | 0:不更改设置1:语音开启2:语音关闭 |
sysVolume | 1 | int | 可选 | 门锁音量1-5 | 0:不更改设置1~5:系统音量 |
lockOpen | 1 | int | 可选 | 开锁模式 | 0:不改变开锁模式,1:单一开锁,2:组合开锁 |
normallyOpen | 1 | int | 可选 | 常开模式 | 0:不更改常开模式;1:启用常开模式;2:关闭常开模式; |
isLock | 1 | int | 可选 | 反锁功能 | 0:不更改设置 1:反锁功能开启 2:反锁功能关闭 |
isTamperWarn | 1 | int | 可选 | 防撬报警 | 0:不更改设置 1:防撬报警开启 2:防撬报警关闭 |
isLockCoreWarn | 1 | int | 可选 | 锁芯报警 | 0:不更改设置 1:锁芯报警开启 2:锁芯报警关闭 |
isLockCap | 1 | int | 可选 | 锁头盖报警 | 0:不更改设置 1:锁头盖报警开启 2:锁头盖报警关闭 |
replaceFunction | 1 | int | 可选 | 顶替功能 | 0:不更改设置 1:开启 2:关闭 |
antiCopyFunction | 1 | int | 可选 | 防复制功能 | 0:不更改设置 1:开启 2:关闭 |
keyTrialErrorAlarmEn | 1 | int | 可选 | 试错告警 | 0:不更改设置 1:开启 2:关闭 |
noneCloseVoiceAlarmEn | 1 | int | 可选 | 未关门告警语音使能 | 0:不更改设置 1:开启 2:关闭 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode": "1.9.901",
"isSound": "0",
"sysVolume": "0",
"lockOpen": "0",
"normallyOpen": "0",
"isLock": "0",
"isTamperWarn": "0",
"isLockCoreWarn": "0",
"isLockCap": "0",
"replaceFunction": "1",
"antiCopyFunction": "1",
"keyTrialErrorAlarmEn": "0",
"noneCloseVoiceAlarmEn": "0"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
远程开锁
本地服务器版本:
- V1.7.0
命令值(cmd):
- 311
####### 门锁必须要绑定网关
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.1"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500110 | 邮箱格式错误 |
500104 | 手机号码错误 |
500300 | 房间不存在 |
500503 | 重复授权 |
500530 | 未开启该功能 |
500537 | 操作失败,房间xxx已存在xxx二维码授权 |
500533 | 操作失败,房间已封房 |
500504 | 不支持该功能 |
500316 | 房间未关联门锁 |
-- | 其他异常 |
远程开锁
本地服务器版本:
- V1.9.0
命令值(cmd):
- 311
####### 门锁必须要绑定网关
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 可选 | 门锁号 | 每个房间的门锁号都是唯一 lockCode和lockMac二者必填其一 通过房间列表获取 |
lockMac | 1 | String | 可选 | 门锁号 | 门锁Mac lockCode和lockMac二者必填其一 通过房间列表获取 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.1"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
异常码
异常码 | 异常描述 |
---|---|
500001 | 参数异常 |
500110 | 邮箱格式错误 |
500104 | 手机号码错误 |
500300 | 房间不存在 |
500503 | 重复授权 |
500530 | 未开启该功能 |
500537 | 操作失败,房间xxx已存在xxx二维码授权 |
500533 | 操作失败,房间已封房 |
500504 | 不支持该功能 |
500316 | 房间未关联门锁 |
-- | 其他异常 |
重新下发待处理入住
本地服务器版本:
- V1.8.0
命令值(cmd):
- 314
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
relaId | 1 | String | 必填 | 联动授权关系ID | 请在“入住详情”接口中获取该参数 |
边缘网关发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"relaId": "ycMbDLEtfXY="
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
响应示例 |
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
HTLock MQTT接入指南
MQTT是一个安全级别很高的接入方式,这个接入可以让客户的信息进行安全的传输,但是这种接入方式会比较困难,最少需要用到两台电脑或两台服务器进行部署HTLock系统和EMQX服务,这两个服务是必须要分开放的,具体如何接入可以看MQTT对接流程。
注意:MQTT通常都会有DESKEY进行加解密数据的,如要不加密传输可以去666后台设置那边把DESKEY关闭即可。
发布:/localhost_hotel/酒店AppId/dev_pub 订阅:/localhost_hotel/酒店AppId/dev_sub 例子: /localhost_hotel/b5d0769c550d4f6699c8ecbd668f8132/dev_pub /localhost_hotel/b5d0769c550d4f6699c8ecbd668f8132/dev_sub
MQTT因为跟HTTP的对接方式有点区别,MQTT只需要把需要收到订阅的服务器连接到EMQX服务上并且订阅了HTLock的消息,就会收到订阅。
远程操作是指门锁关联了网关的情况下,对门锁进行的操作。具体功能如下: 自定义下发密码 自定义下发卡片 离线密码 房间入住列表 入住详情 远程开锁 待处理列表 手机授权 续住 周期常开设置 获取周期常开信息 设置门锁系统参数 读取门锁系统参数和状态
HTLock MQTT对接支持两种方式删除授权,一种是只对单个入住进行退房的删除单个授权。 还有一种是房间退房,该接口可以把一个房间里面的所有授权都退房处理,也可以对离线卡片的授权进行退房操作。
HTLock MQTT是支持对授权进行续住操作的,续住只需要调续住接口即可。
下发的授权是在HTLock是支持冻结/解冻的,只需要调入住冻结/解冻接口即可。
在房间关联网关的情况下,可以对房间进行封房/解封的操作,已经封房的房间是无法进行下发授权等操作的,只能解封后才能下发。
找不到宾客卡的情况下,可以通过制作挂失卡让丢失的宾客卡进行挂失处理,调挂失卡片接口即可。
当门锁下发失败的时候可以通过看待处理列表进行确认哪个授权是下发失败的,然后调重新下发待处理接口。 如若是想下发新授权,不想对待处理列表的授权进行处理的话,可以调忽略待处理入住接口。
首先需要把发卡器指纹采集仪添加到该HTLock下。 然后通过发卡器MAC调发卡器录入指纹模式接口,然后方手指上去进行按压。 按压过程中可以通过订阅发卡器按压指纹推送查看按压次数和相关推送。 在推送中拿到指纹标识或指纹特征值给到指纹下发接口进行下发,订阅后即可收到成功下发指纹推送。 注意:发卡器按压指纹的时候只有最后一包才会有指纹标识和指纹特征值推送。
把需要下发的人脸转换成baes64编码,然后调我们的图片处理接口对编码进行处理。 拿到图片处理返回的baes64编码后调下发人脸接口进行下发,订阅后能看到下发结果。
二维码授权是只有个别门锁才支持的功能,调二维码授权接口成功后会返回baes64编码,把编码转换成图片后扫二维码即可开门。
MQTT对接是支持对HTLock的房源进行操作的。具体功能如下: 楼栋列表 房间列表 房间类型列表 添加楼栋 修改楼栋 删除楼栋 添加房间 修改房间 删除房间 添加房间类型 修改房间类型 删除房间类型 房间电量 房间网关信号
想要一张卡开HTLock所有的门锁可以通过制作总卡接口制作出来,该卡片可以开HTLock下所有的房间。 楼栋卡是对指定楼栋制作一张开门的卡,该卡片可以开指定楼栋的所有房间,可通过制作楼栋卡接口完成。 楼层卡是对指定楼栋楼层制作一张开门卡,该卡片可以对指定的楼栋楼层进行开锁的卡片,可通过制作楼层卡接口完成。
查看房间操作日志可以通过房间日志列表进行查询。 HTLock事件推送会通过事件推送接口进行推送。
数据加密
####服务器版本V2.4.0开始由HTLock本地设置开启MQTT加密并设置DES秘钥,本地不开启对接则以明文模式(JSON)通讯。
保证数据安全,针对房源管理、设备操作、授权操作、卡片操作、日志同步,data里数据进行DES加密
请求格式:
{
"cmd": 命令值,
"msgId": 122321323,
"data": "xxxxxxxxxxxxxxx"
}
响应格式:
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码",
"rsn": "原因",
"data": "xxxxxxxxxxxxxxx"
}
日志同步
事件推送
注意:method参数为固定值,第三方可以根据该参数做对应格式解析
本地服务器版本:
- V1.9.0
命令值(cmd):
- 501
####1.通用事件推送
入参说明:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjCommonEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 |
logTypeFlag | 1 | 否 | int | 事件Flag | 当eventType=18时有效,为空时,表示未知异常,0 按键短路,1 存储器异常,2 触摸芯片异常,3 低压检测电路异常,4 读卡电路异常,5 检卡电路异常,6 指纹通讯异常,7 RTC晶振电路异常 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
####2.添加钥匙事件推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjAddKeyEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=8 表示添加钥匙事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
authorMode | 1 | 是 | int | 授权方式 | 1 有效期授权 2 周期授权 |
beginTime | 1 | 是 | long | 授权开始时间 | 单位:秒 |
endTime | 1 | 是 | long | 授权结束时间 | 单位:秒 |
weeks | 1 | 否 | int | 星期数 | bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效,bit0=1 星期一 authorMode=2 有效 |
dayStartTimes | 1 | 否 | String | 每日起始时间 | authorMode=2 有效 |
dayEndTimes | 1 | 否 | String | 每日结束时间 | authorMode=2 有效 |
keyContent | 1 | 否 | String | 钥匙内容 | keyType = 2 表示密码 keyType =4 表示卡号 |
useNum | 1 | 否 | int | 使用次数 | 0~254:表示剩余有效次数 255:表示无限次 |
####3.删除钥匙事件推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjDeleteKeyEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=9 表示删除钥匙事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
logTypeFlag | 1 | 是 | int | 删除方式 | 0 按编号删除 1 按类型删除 2 按内容删除 3 按用户ID删除 |
keyGroupId | 1 | 否 | int | 钥匙所属用户ID | logTypeFlag=3有效 |
keyGroupName | 1 | 否 | String | 钥匙所属用户名 | logTypeFlag=3有效 |
keyType | 1 | 否 | int | 钥匙类型 | logTypeFlag=1 按位域置1,则删除指定钥匙类型钥匙 logTypeFlag=2 结合lockKeyId固定一个钥匙删除 |
lockKeyId | 1 | 否 | int | 钥匙ID | logTypeFlag=0有效 |
keyContent | 1 | 否 | int | 钥匙内容 | 适用离线密码未使用 按内容删除 |
####4.周期关闭事件推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjCycleCloseEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=49 表示周期关闭事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
beginTime | 1 | 是 | long | 授权开始时间 | 单位:秒 |
endTime | 1 | 是 | long | 授权结束时间 | 单位:秒 |
weeks | 1 | 否 | int | 星期数 | bit0~bit6分别表示,对应bit位数置1,则表示关闭当天的周期开锁,bit0=1 星期一 |
####5.周期开启事件推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjCycleOpenEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=48 表示周期开锁开启事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
beginTime | 1 | 是 | long | 授权开始时间 | 单位:秒 |
endTime | 1 | 是 | long | 授权结束时间 | 单位:秒 |
weeks | 2 | 是 | int | 星期数 | bit0~bit6分别表示,对应bit位数置1,则表示当天周期开启 例如:bit0=1 星期一 |
dayEndTimes | 3 | 是 | String | 每日结束时间 | - |
####6.使能禁止钥匙事件推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjEnableKeyEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=28 表示使能进制设置事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
logTypeFlag | 1 | 是 | int | 使能禁止flag | logTypeFlag=1按钥匙ID使能 logTypeFlag=2按钥匙类型使能 logTypeFlag=3按用户ID使能 logTypeFlag=4按钥匙ID禁止 logTypeFlag=5按钥匙类型禁止 logTypeFlag=6按用户ID禁止 |
keyType | 1 | 否 | int | 钥匙类型 | logTypeFlag=2 和 logTypeFlag=5 生效 |
lockKeyId | 1 | 否 | int | 钥匙ID | logTypeFlag=1 和 logTypeFlag=4 生效 |
keyGroupId | 1 | 否 | int | 用户ID | logTypeFlag=3 和 logTypeFlag=6 生效 |
keyGroupName | 1 | 否 | String | 用户名 | logTypeFlag=3 和 logTypeFlag=6 生效 |
####7.错误开锁事件推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjErrorOpenEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=41 表示错误开锁事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
logTypeFlag | 1 | 是 | int | 钥匙校验结果 | 1钥匙在门锁端无法通过校验, 开锁失败 2钥匙在门锁端可以通过校验, 但门锁反锁, 钥匙无法开反锁, 开锁失败 |
keyContent | 1 | 是 | int | 钥匙内容 | keyType=2 keyContent为密码 keyType=4 keyContent为卡号 |
####8.开锁事件推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjOpenLockEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=4 表示开锁事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
combine | 1 | 是 | int | 是否组合 | 0非组合 1组合 |
normalOpen | 1 | 是 | int | 是否常开 | 0非常开 1常开 |
insideOpen | 1 | 是 | int | 是否门内开锁 | 0门外 1门内 |
keyContent1 | 1 | 否 | String | 钥匙内容 | keyType=2 keyContent1为密码 keyType=4 keyContent1为卡号 |
keyGroupId2 | 1 | 否 | int | 用户ID | combine=1有效 |
keyGroupName2 | 1 | 否 | String | 用户名 | combine=1有效 |
keyType2 | 1 | 否 | int | 钥匙类型 | combine=1有效 |
lockKeyId2 | 1 | 否 | int | 钥匙ID | combine=1有效 |
useNum2 | 1 | 否 | int | 剩余有效次数 | combine=1有效 |
####9.系统参数设置推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjSystemSetEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=27 表示系统参数事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
lockOpen | 1 | 可选 | int | 开锁模式 | 1~2,1-单一开锁; 2-组合开锁 |
normallyOpen | 1 | 可选 | int | 常开模式 | 1~2,1-常开模式启用; 2-常开模式关闭 |
isSound | 1 | 可选 | int | 语音启闭 | 1~2,1开关门语音打开; 2开关门语音关闭 |
sysVolume | 1 | 可选 | int | 系统音量 | 0~5,0-表示音量不可调节,其他表示音量大小 |
isTamperWarn | 1 | 可选 | int | 防撬报警启闭 | 0无防撬报警功能; 1防撬报警启动; 2防撬报警功能关闭 |
isLockCoreWarn | 1 | 可选 | int | 锁芯报警启闭 | 0无锁芯报警功能;1锁芯报警启动; 2锁芯报警功能关闭 |
isLock | 1 | 可选 | int | 反锁功能启闭 | 0~2 0无反锁开关;1-反锁功能启用; 2-反锁功能关闭 |
isLockCap | 1 | 可选 | int | 锁头盖报警启闭 | 1~2,1-启用,2关闭 |
sysLanguage | 1 | 可选 | int | 系统语言 | 1~5,1:简体中文 2:繁体中文 3:英文 4:越南文 5:泰文 |
####10.按内容修改钥匙事件推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjUpdateKeyByContentEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=46 表示按内容修改钥匙事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
authorMode | 1 | 是 | int | 授权方式 | 1 有效期授权 2 周期授权 |
beginTime | 1 | 是 | long | 授权开始时间 | 单位:秒 |
endTime | 1 | 是 | long | 授权结束时间 | 单位:秒 |
weeks | 1 | 否 | int | 星期数 | bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效,bit0=1 星期一 authorMode=2 有效 |
dayStartTimes | 1 | 否 | String | 每日起始时间 | authorMode=2 有效 |
dayEndTimes | 1 | 否 | String | 每日结束时间 | authorMode=2 有效 |
keyContent | 1 | 否 | String | 钥匙内容 | keyType = 2 表示密码 keyType =4 表示卡号 |
useNum | 1 | 否 | int | 使用次数 | 0~254:表示剩余有效次数 255:表示无限次 |
####11.修改密码事件推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjUpdatePwEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=24 表示修改密码事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
lockKeyId | 1 | 是 | int | 钥匙ID | - |
####12.修改钥匙有效期事件推送 |
入参说明
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
method | 1 | 是 | String | 标识方法 | 固定值:hxjUpdateKeyValidityEventPush |
lockCode | 1 | 是 | String | 房间的门锁号 | -- |
eventType | 1 | 是 | int | 事件类型 | 详情见附录:事件类型 eventType=34 表示修改钥匙有效期事件 |
electricNum | 1 | 是 | int | 门锁电量 | -- |
eventTime | 1 | 是 | long | 事件触发时间 | 单位:秒 |
logTypeFlag | 1 | 是 | int | 修改方式 | 1 按钥匙ID修改 2 按用户ID修改 |
authorMode | 1 | 是 | int | 授权方式 | 1 有效期授权 2 周期授权 |
beginTime | 1 | 是 | long | 授权开始时间 | 单位:秒 |
endTime | 1 | 是 | long | 授权结束时间 | 单位:秒 |
weeks | 1 | 否 | int | 星期数 | bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效,bit0=1 星期一 authorMode=2 有效 |
dayStartTimes | 1 | 否 | String | 每日起始时间 | authorMode=2 有效 |
dayEndTimes | 1 | 否 | String | 每日结束时间 | authorMode=2 有效 |
keyContent | 1 | 否 | String | 钥匙内容 | keyType = 2 表示密码 keyType =4 表示卡号 |
useNum | 1 | 否 | int | 使用次数 | 0~254:表示剩余有效次数 255:表示无限次 |
边缘网关发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
事件数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
云端响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
事件推送(废弃)
- V1.5.3起支持
- V1.9.0废弃
本地服务器版本:
- V1.5.3
命令值(cmd):
- 501
触发:告警事件上报、电量变动事件
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 |
eventType | 1 | int | 必填 | 事件类型 | 0x01:强拆报警 0x02:非法操作报警(错误次数超限等),系统已锁定 0x03:低电量报警 0x05:布防 0x06:撤防 0x0a:反锁 0x0b:反锁解除 0x0c:撬锁芯报警 0x12:故障报警 |
eventFlag | 1 | int | 可选 | 故障类型 | 当eventType=0x12时故障类型为空,表示未知异常 0 按键短路 1 存储器异常 2 触摸芯片异常 3 低压检测电路异常 4 读卡电路异常 5 检卡电路异常 6 指纹通讯异常 7 RTC晶振电路异常 |
electricNum | 1 | int | 可选 | 电量 | -- |
边缘网关发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
事件数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
云端响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
房间日志列表
本地服务器版本:
- V1.5.3
命令值(cmd):
- 502
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 房间唯一 |
beginTime | 1 | long | long | 事件开始时间 | 时间戳 单位:秒 2.7.0版本新增 |
endTime | 1 | 否 | long | 事件结束时间 | 时间戳 单位:秒 2.7.0版本新增 |
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
pageSize | 1 | int | 可选 | 获取数量 | 默认 10 最大 50 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":门锁号,
"startNum":开始节点,
"pageSize":"获取数量"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
eventTime | 2 | long | 必填 | 事件触发时间 | 单位:秒 |
ectricNum | 2 | int | 必填 | 电量 | |
logType | 2 | int | 必填 | 日志类型 | |
logData | 2 | Map<String,Object> | 必填 | 日志内容 | 不同日志类型,日志内容不同 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum":总数,
"totalPages":总页数,
"list":[
{
"eventTime":日志触发时间,
"ectricNum":电量,
"logType":"日志类型",
"logData":{
日志内容
}
}
]
}
}
当logType为 4 开锁事件 41 开锁失败 10 门锁反锁 11 门锁解除 30 门已上锁 32 机械钥匙开锁 17 常开:关锁 43 周期常开:开锁
logData定义如下:
| 参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
| ----- | ---- | ---- | ---- | ---- | ---- ||combine |3| int| 可选| 是否组合开锁| 当logType=4有效
1表示组合开锁
normalOpen | 3 | int | 可选 | 是否常开 | 当logType=4有效 1表示常开 |
---|---|---|---|---|---|
keyGroupName | 3 | String | 可选 | 用户名 | |
keyGroupId | 3 | int | 可选 | 用户ID | |
keyType | 3 | int | 可选 | 钥匙类型 | 1 指纹 2 密码 4 卡片 8 遥控 128 电子钥匙 |
8添加钥匙 | |||||
9删除钥匙 | |||||
24修改钥匙 | |||||
28使能钥匙 |
logData定义如下:
| 参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
| ----- | ---- | ---- | ---- | ---- | ---- ||logTypeFlag| 3| int| 可选 |日志类型标志| logType=8添加:
logTypeFlag=0自定义下发
logTypeFlag=1算法生成
logType=9删除:
logTypeFlag=0按钥匙ID
logTypeFlag=1按钥匙类型
logTypeFlag=2按钥匙内容
logTypeFlag=3按用户ID
logType=24修改密码:
logTypeFlag=0修改密码
logTypeFlag=1按钥匙ID
logTypeFlag=2按用户
logTypeFlag=3按内容
logType=28使能:
logTypeFlag=1按钥匙ID
logTypeFlag=2按钥匙类型
logTypeFlag=3按用户ID
logType=28禁止:
logTypeFlag=4按钥匙ID
logTypeFlag=5按钥匙类型
logTypeFlag=6按用户ID|
|keyType| 3| int| 可选| 钥匙类型| |
|lockKeyId |3 |int| 可选| 钥匙ID| |
|keyGroupId|3 |int |可选| 用户ID| |
|keyGroupName |3| String| 可选| 用户名| |
|beginTime |3 |int |可选| 钥匙有效期开始时间| 时间戳:秒|
|endTime| 3| int| 可选| 钥匙有效期结束时间| 时间戳:秒|
|weeks| 3 |int| 可选| 周期| 按位域bit0~bit6分别表示,对应bit位数置1,则表示当天钥匙有效。
bit0表示周一,bit6表示日。如周二、周三有效,weeks=6,6=0000110|
|dayStartTime| 3| String |可选 |周期时间段| 开始时间|
|dayEndTime |3 |String| 可选| 周期时间段| 结束时间|
|vaildNumber |3| int |可选| 剩余次数| 空或255表示无限 ,0-254表示相应的次数|
|operUserName| 3 |String |可选 |操作人| |
|operUserId |3| int| 可选| 操作人ID|--|
当logType为
1强拆
2非法操作
3低电量
12撬锁芯报警
14门未关好
15未关门报警
18故障报警
21系统锁定状态解除
35两天未开锁
47未验证开锁
######logData定义如下:
| 参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
| ----- | ---- | ---- | ---- | ---- | ---- ||logTypeFlag| 3 |int |可选 |日志类型标志 |logType=18
为空时,表示未知异常
logTypeFlag=0按键短路
logTypeFlag=1存储器异常
logTypeFlag=2触摸芯片异常
logTypeFlag=3低压检测电路异常
logTypeFlag=4读卡电路异常
logTypeFlag=5检卡电路异常
logTypeFlag=6指纹通讯异常
logTypeFlag=7RTC晶振电路异常|
当logType为 27门锁系统设置 5布防 6撤防 19状态更新事件 20切换系统语言 22申请时间同步 48 周期性门锁开启 49 周期性门锁关闭 ######logData定义如下:
| 参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
| ----- | ---- | ---- | ---- | ---- | ---- ||openMode |3 |int| 可选| 开锁模式| logType=27有效
0不改变
1单一开锁
2组合开锁
normallyOpenMode | 3 | int | 可选 | 常开模式 | logType=27有效 0不改变 1启用 2关闭 |
---|---|---|---|---|---|
volume | 3 | int | 可选 | 音量大小 | logType=27有效 |
preventionAlram | 3 | int | 可选 | 防撬报警 | logType=27有效 0不改变 1启用 2关闭 |
lockCylinderAlram | 3 | int | 可选 | 锁芯报警 | logType=27有效 0不改变 1启用 2关闭 |
antiLockFunction | 3 | int | 可选 | 反锁功能 | logType=27有效 0不改变 1启用 2关闭 |
lockCoverAlarm | 3 | int | 可选 | 锁头盖报警 | logType=27有效 0不改变 1启用 2关闭 |
language | 3 | int | 可选 | 系统语言 | logType=27有效 1简体中文 2繁体中文 3英文 4越南语 5泰语 |
设备异常码
异常码
异常码 | 异常描述 |
---|---|
406 | 超时 |
501 | 设备不在线或未连接云端 |
30001 | 没有检测到卡片 |
30002 | 鉴权失败 |
30003 | 写卡失败 |
30004 | 读卡失败 |
30005 | 请放入对应卡片 |
30006 | 不支持该卡片 |
30101 | 传感器异常 |
30102 | 检测不到指纹 |
30103 | 采集失败 |
30104 | 接收包有误 |
30105 | 指令执行有误 |
30106 | 功能与加密等级不匹配 |
30201 | 网络繁忙 |
30202 | 参数错误 |
30203 | 不支持的命令 |
异常码
异常码 | 异常描述 |
---|---|
403 | 设备正忙,请稍后再试 |
406 | 超时 |
501 | 设备不在线或未连接云端 |
700010 | 扫描超时 |
700011 | 连接门锁失败 |
700012 | 协议错误 |
700013 | 网关没有绑定此设备 |
700014 | 网关设备已满 |
700015 | 解密异常 |
700016 | 网关不存在此设备 |
700017 | 扫描不到蓝牙设备 |
700018 | 请重新绑定一下门锁 |
700019 | 不支持的指令 |
700020 | 参数错误 |
700022 | 设备非空 |
700099 | 未知异常 |
设备操作
发卡器列表
本地服务器版本:
- V1.5.3
命令值(cmd):
- 204
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum": 开始节点,
"getNum": 获取数量
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
listSum | 1 | int | 必填 | 总数 | -- |
totalPages | 1 | int | 必填 | 总页数 | -- |
list | 1 | list | 可选 | -- | |
cardDispenserMac | 2 | String | 必填 | 发卡器MAC(唯一) | |
cardDispenserSeq | 2 | String | 必填 | 发卡器序列号(唯一) | |
cardDispenserName | 2 | String | 必填 | 发卡器名称 | |
hardwareVersion | 2 | String | 必填 | 硬件版本号 | |
softwareVersion | 2 | String | 必填 | 软件版本号 | |
cardDispenserState | 2 | int | 必填 | 状态 | 3在线 4离线 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总条数,
"totalPages": 总页数,
"list": [{
发卡器数据
}]
}
}
发卡器录指纹模式
本地服务器版本:
- V1.9.0
命令值(cmd):
- 207
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | -- |
云端发布Pub(示例):
{
"cmd": 207,
"msgId": 122321323,
"data": {
"cardDispenserSeq": "MNR63218751FB5"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 207,
"msgId": 122321323,
"rslt": 0,
"rsn": "Success"
}
发卡器指纹(推送)
本地服务器版本:
- V1.9.0
命令值(cmd):
- 208
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
resultCode | 1 | 是 | int | 确认码 | 0 成功 其他失败 |
reason | 1 | 否 | String | 失败原因 | -- |
indexNum | 1 | 否 | int | 当前次数 | 成功:必填 |
totalNum | 1 | 否 | int | 总次数 | 成功:必填 indexNum = totalNum表示按压完成 |
fingerPrintSign | 1 | 否 | String | 指纹标识 | indexNum = totalNum必填 1 小时内有效 V2.0.0版本永久有效 |
cardDispenserSeq | 1 | 是 | String | 发卡器序列号 | V2.0.0版本新增 |
fingerPrint | 1 | 否 | String | 指纹特征值 | indexNum = totalNum必填 V2.7.3新增 |
边缘网关发布Pub(示例):
{
"cmd": 208,
"msgId": 1108326094,
"data": {
"fingerPrintSign": 1649926886723,
"resultCode": 0,
"indexNum": 4,
"totalNum": 4
}
}
云端不需要响应
发卡器读卡数据上报(推送)
本地服务器版本:
- V1.5.3
命令值(cmd):
- 205
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号(唯一) | |
isblank | 1 | int | 必填 | 白卡判断 | 0表示白卡 1表示异常卡 2正常卡 3空卡 4无卡 |
cardType | 1 | int | 可选 | 卡片类型 | 1 设置卡 2 设置验证卡 3 清除卡 4 安装卡 5 校时卡 6 入网卡 7 退网卡 32 宾客卡 33 总卡 34 楼栋卡 35 楼层 36 挂失卡 37 退房卡 |
value | 2 | String | 可选 | -- |
边缘网关发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
读卡数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
云端响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
取电开关全局设置
本地服务器版本:
- V3.1.1
命令值(cmd):
- 210
房间必须已经添加网络取电开关
不满足取电条件的延时断电时间
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
powerOffTime | 1 | int | 必填 | 不满足取电条件的延时断电时长 | 单位:秒 不填表示不设置 |
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"powerOffTime":3
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
取电开关取电模式设置
本地服务器版本:
- V3.1.1
命令值(cmd):
- 211
房间必须已经添加网络取电开关
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.1",
"mode":1
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
取电开关白名单设置
本地服务器版本:
- V3.1.1
命令值(cmd):
- 212
房间必须已经添加网络取电开关
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | string | 必填 | 门锁号 | 可通过房间列表获取 |
addType | 1 | int | 必填 | 添加类型 | 1 新增 2 删除 3 覆盖 |
keyType | 1 | int | 必填 | 授权类型 | 4 卡片 |
authList | 1 | List<String> | 是 | 卡号 | 格式:["23FDAA43","23FDAF13"] addType!=2必填 一个取电开关最多下发20张卡号,如若超过将不做保存并且无法对该取电开关生效 |
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.1",
"addType": 1,
"keyType": 4,
"authList": ["23FDAA43","23FDAF13"]
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
异常取电记录
本地服务器版本:
- V3.1.1
命令值(cmd):
- 213
房间必须已经添加网络取电开关
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始记录数 | 默认为0 |
pageSize | 1 | int | 可选 | 分页大小 | 默认10,最大50 |
buildingCode | 1 | int | 可选 | 楼栋码 | -- |
floorCode | 1 | int | 可选 | 楼层码 | -- |
roomName | 1 | String | 可选 | 房间名称 | -- |
beginTime | 1 | long | 可选 | 开始时间 | 单位: 秒 |
endTime | 1 | long | 可选 | 结束时间 | 单位: 秒 |
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
list | 1 | long | 可选 | -- | 单位: 秒 |
eventTime | 2 | long | 可选 | 操作时间 | 时间戳,单位:秒 |
operUserName | 2 | string | 可选 | 操作人 | -- |
logContent | 2 | string | 可选 | 操作内容 | -- |
subRoomName | 2 | String | 否 | 套房号 | A-Z大写 |
keyContent | 2 | string | 可选 | 钥匙内容 | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
房间取电记录
本地服务器版本:
- V3.1.1
命令值(cmd):
- 214
房间必须已经添加网络取电开关
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始记录数 | 默认为0 |
pageSize | 1 | int | 可选 | 分页大小 | 默认10,最大50 |
switchState | 1 | int | 可选 | 状态 | 1 正常 2 异常 不传全部 |
beginTime | 1 | long | 可选 | 开始时间 | 单位: 秒 |
endTime | 1 | long | 可选 | 结束时间 | 单位: 秒 |
lockCode | 1 | string | 必填 | 门锁号 | 可通过房间列表获取 填了此参数下方参数无效 |
buildingCode | 1 | int | 可选 | 楼栋码 | -- |
floorCode | 1 | int | 可选 | 楼层码 | -- |
roomName | 1 | String | 可选 | 房间名称 | -- |
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.1",
"mode":1
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
list | 1 | long | 可选 | -- | 单位: 秒 |
subRoomName | 2 | String | 否 | 套房号 | A-Z大写 |
eventTime | 2 | long | 可选 | 操作时间 | 时间戳,单位:秒 |
currentState | 2 | int | 可选 | 当前状态 | 1远程送电 2远程断电 3供电 4断电 5开锁后,临时取电1分钟 |
lastState | 2 | int | 可选 | 上一个状态 | 1远程送电 2远程断电 3供电 4断电 5开锁后,临时取电1分钟 |
stateChangeMode | 2 | int | 可选 | 状态切换方式 | 1计时结束 2前台操作 3宾客卡 4反锁 5管理卡 |
keyContent | 2 | string | 可选 | 钥匙内容 | -- |
switchState | 2 | int | 可选 | 状态 | 1:正常 2:异常 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
房间的取电状态
本地服务器版本:
- V3.1.1
命令值(cmd):
- 215
房间必须已经添加网络取电开关
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.1"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
electricState | 1 | int | 可选 | 状态 | 1:断电 2:供电 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
房间送电/断电/恢复设置
本地服务器版本:
- V1.9.1
命令值(cmd):
- 320
房间必须已经添加网络取电开关
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
lockCode | 1 | String | 必填 | 门锁号 | 每个房间的门锁号都是唯一 通过房间列表获取 |
operMode | 1 | INT | 必填 | 操作方式 | 1 送电 2 断电 3恢复正常模式 |
endTime | 1 | LONG | 可选 | 结束时间,时间戳,单位:秒 | operMode=1时,必填,表示送电结束时间 例如endTime=1660299768,1660299768表示的时间为:2022-08-12 18:22:48,表示一直到2022-08-12 18:22:48,房间都是送电的状态 operMode=2时,必填,表进断电结束时间 |
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"lockCode":"1.2.1",
"operMode":1,
"endTime":1650948541
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
更新发卡器信息(推送)
发卡器信息发生变化时,边缘网关推送发卡器数据给第三方云端
本地服务器版本:
- V1.5.3
命令值(cmd):
- 203
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserMac | 1 | String | 必填 | 发卡器MAC(唯一) | |
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号(唯一) | |
hardwareVersion | 1 | String | 必填 | 硬件版本号 | |
softwareVersion | 1 | String | 必填 | 软件版本号 | |
cardDispenserState | 1 | int | 必填 | 状态 | 3在线 4离线 |
边缘网关发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
发卡器数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
云端响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
更新网关/网络取电开关信息(推送)
网关/网络取电开关信息发生变化时,边缘网关推送数据给第三方云端
本地服务器版本:
- V1.5.3
命令值(cmd):
- 201
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
gatewaySeq | 1 | String | 可选 | 网关序列号(唯一) | 类型为1、2、3网关时必填,网络取电开关没序列号 |
gatewayName | 1 | String | 必填 | 网关/网络取电开关名称 | |
gatewayState | 1 | int | 必填 | 状态 | 3在线 4离线 |
gatewayType | 1 | int | 必填 | 类型 | 1:433+蓝牙网关 2:433网关 3:单蓝牙网关 5:网络取电开关 V2.0.0新增 |
边缘网关发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
网关数据
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
云端响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
网关/网络取电开关列表
本地服务器版本:
- V1.5.3
命令值(cmd):
- 202
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
gatewayTypes | 1 | List<Integer> | 可选 | 类型 | 1.网关列表[1,2,3](为空默认查询网关) 2.网络取电开关列表[5] V2.0.0新增 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum": 开始节点,
"getNum": 获取数量
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
listSum | 1 | int | 必填 | 总数 | -- |
totalPages | 1 | int | 必填 | 总页数 | -- |
list | 1 | list | 可选 | -- | |
gatewayMac | 2 | String | 必填 | 网关/取电开关MAC(唯一) | |
gatewaySeq | 2 | String | 可选 | 网关序列号(唯一) | 类型为1、2、3网关时必填,网络取电开关没序列号 |
gatewayName | 2 | String | 必填 | 网关/取电开关名称 | |
hardwareVersion | 2 | String | 必填 | 硬件版本号 | |
softwareVersion | 2 | String | 必填 | 软件版本号 | |
gatewayState | 2 | int | 必填 | 状态 | 3在线 4离线 |
gatewayType | 2 | int | 必填 | 类型 | 1:433+蓝牙网关 2:433网关 3:单蓝牙网关 5:网络取电开关 V2.0.0新增 |
lockCode | 2 | String | 可选 | 门锁号 | gatewayType=5有效,lockCode存在表示取电开已关绑定房间 V2.0.0新增 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总条数,
"totalPages": 总页数,
"list": [{
网关数据
}]
}
}
退出发卡器录指纹模式
本地服务器版本:
- V2.1.0
命令值(cmd):
- 209
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
cardDispenserSeq | 1 | String | 必填 | 发卡器序列号 | -- |
云端发布Pub(示例):
{
"cmd": 209,
"msgId": 122321323,
"data": {
"cardDispenserSeq": "MNR63218751FB5"
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 209,
"msgId": 122321323,
"rslt": 0,
"rsn": "Success"
}
门禁/梯控列表
本地服务器版本:
- V1.5.3
命令值(cmd):
- 206
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
lockType | 1 | int | 必填 | 类型 | 9门禁 10梯控 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum": 开始节点,
"getNum": 获取数量,
"lockType":9
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
listSum | 1 | int | 必填 | 总数 | -- |
totalPages | 1 | int | 必填 | 总页数 | -- |
list | 1 | list | 可选 | -- | |
lockMac | 2 | String | 必填 | Mac(唯一) | |
lockName | 2 | String | 必填 | 名称(唯一) | |
lockType | 2 | int | 必填 | 类型 | |
electricNum | 2 | int | 可选 | 电量 | |
lockState | 2 | String | 必填 | 状态 | 3在线 4离线 |
hardwareVersion | 2 | int | 必填 | 硬件版本 | -- |
softwareVersion | 2 | int | 必填 | 软件版本 | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总条数,
"totalPages": 总页数,
"list": [{
门禁/梯控数据
}]
}
}
门禁/梯控列表
本地服务器版本:
- V2.1.0
命令值(cmd):
- 206
入参说明:
参数名 | 层级 | 类型 | 条件 | 说明 | 备注 |
---|---|---|---|---|---|
startNum | 1 | int | 可选 | 开始节点 | 默认 0 |
getNum | 1 | int | 可选 | 获取数量 | 默认 50 |
lockType | 1 | int | 必填 | 类型 | 9门禁 10梯控 |
云端发布Pub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"startNum": 开始节点,
"getNum": 获取数量,
"lockType":9
}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
listSum | 1 | int | 必填 | 总数 | -- |
totalPages | 1 | int | 必填 | 总页数 | -- |
list | 1 | list | 可选 | -- | |
lockMac | 2 | String | 必填 | Mac(唯一) | |
lockName | 2 | String | 必填 | 名称(唯一) | |
lockType | 2 | int | 必填 | 类型 | |
electricNum | 2 | int | 可选 | 电量 | |
lockState | 2 | String | 必填 | 状态 | 3在线 4离线 |
hardwareVersion | 2 | int | 必填 | 硬件版本 | -- |
softwareVersion | 2 | int | 必填 | 软件版本 | -- |
adminAuthCode | 2 | String | 必填 | 管理员鉴权码 | 有权限调用所有蓝牙接口 V2.1.0版本新增 |
generalAuthCode | 2 | String | 必填 | 普通用户鉴权码 | 没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限 V2.1.0版本新增 |
tempAuthCode | 2 | String | 必填 | 临时鉴权码 | 与普通授用户权码一样,没有OTA升级和删除蓝牙锁这2个接口权限,其它蓝牙接口都有权限 V2.1.0版本新增 |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"listSum": 总条数,
"totalPages": 总页数,
"list": [{
门禁/梯控数据
}]
}
}
鉴权
更新秘钥
####服务器版本V2.4.0废弃本接口,由HTLock本地设置开启MQTT加密并设置DES秘钥,本地不开启对接则以明文模式(JSON)通讯。
本地服务器版本:
- V1.5.3
命令值(cmd):
- 12
入参说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
desKey | 1 | String | 必填 | Des秘钥 | 由终端服务管理 AES加密(参照附录) 自定义的秘钥长度=8 |
expireTime | 1 | int | 可选 | 有效时间 | 单位:秒 不填为永久 |
{
"cmd": 命令值,
"msgId": 122321323,
"data": {
"desKey":"xxffff==",
"expireTime":20000
}
}
响应参数说明:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
边缘网关响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
}
}
获取秘钥
本地服务器连接MQTT服务成功后,随机5-60秒内向终端服务获取Des秘钥
####服务器版本V2.4.0废弃本接口,由HTLock本地设置开启MQTT加密并设置DES秘钥,本地不开启对接则以明文模式(JSON)通讯。
本地服务器版本:
- V1.5.3
命令值(cmd):
- 11
入参说明:
参数名 | 层级 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|---|
-- | -- | -- | -- | -- | -- |
{
"cmd": 命令值,
"msgId": 122321323,
"data": {}
}
响应参数说明:
参数名 | 层级 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|---|
desKey | 1 | String | 必填 | Des秘钥 | 由终端服务管理 AES加密后传递给本地服务(参照附录) 终端生成秘钥长度=8 |
expireTime | 1 | int | 可选 | 有效时间 | 单位:秒 不填为永久 |
云端响应Sub(示例):
{
"cmd": 命令值,
"msgId": 122321323,
"rslt": "状态码:0成功,其他失败",
"rsn": "原因",
"data": {
"desKey": "xxxxxxx="
}
}
附录
###AES加密
作用:终端Des秘钥加密,涉及获取秘钥和更新秘钥接口
加密说明:
1.根据规则生成AES秘钥
2.将生成的AES秘钥当作AES加密的向量以及加密的KEY,填充模式为”AES/CBC/PKCS5Padding”,对Des秘钥加密。
3.加密结果进行base64编码。
Java代码:
private static String encrypt(String desKey, String aesKey) throws Exception {
IvParameterSpec zeroIv = new IvParameterSpec(aesKey.getBytes());
SecretKeySpec key = new SecretKeySpec(aesKey.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv);
return Base64.getEncoder().encodeToString(cipher.doFinal(desKey.getBytes("UTF-8")));
}
###DES加密
生成DES加密KEY
DES的KEY:abcdefgh 偏移量:abcdefgh 填充模式:DES/CBC/PKCS5Padding
1.先DES加密
2.再base64编码
如123456,进行DES加密,得到byte数组
再进行Base64编码:opfVWWpnmcY=
Java代码:
加密:
public static String encrypt(String data, String desKey) throws Exception {
if (data == null) return null;
DESKeySpec dks = new DESKeySpec(desKey.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, securekey, new IvParameterSpec(desKey.getBytes()));
return new BASE64Encoder().encode(cipher.doFinal(data.getBytes()));
}
解密:
public static String decrypt(String data, String desKey) throws Exception {
if (data == null) return null;
BASE64Decoder decoder = new BASE64Decoder();
byte[] buf = decoder.decodeBuffer(data);
DESKeySpec dks = new DESKeySpec(desKey.getBytes());
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, securekey, new IvParameterSpec(desKey.getBytes()));
byte[] bt= cipher.doFinal(buf);
return new String(bt);
}
命令定义
鉴权
| 功能 | 命令值 |备注| | :------------: | :------------: | |获取秘钥| 11|--| |更新秘钥| 12|--|
房源类
| 功能 | 命令值 |备注| | :------------: | :------------: | |楼栋列表| 101|--| |房间列表 |102 |--| |房间类型列表| 103 |--| |添加楼栋 |104 |--| |修改楼栋| 105 |--| |删除楼栋| 106 |--| |添加房间| 107 |--| |修改房间| 108 |--| |删除房间| 109 |--| |添加房间类型 |110 |--| |修改房间类型| 111 |--| |删除房间类型|112 |--| |房间电量|113 |V1.9.0新增| |房间门锁网关信号|114 |V1.9.0新增|
设备类
| 功能 | 命令值 |备注| | :------------: | :------------: | |添加/更新网关|201 |--| |网关列表| 202 |--| |添加/更新发卡器| 203 |--| |发卡器列表| 204 |--| |发卡器读卡数据上报| 205 |--| |门禁/梯控列表| 206 |--| |发卡器录指纹模式| 207 |V1.9.0新增| |发卡器指纹推送| 208 |V1.9.0新增|
授权类
| 功能 | 命令值 |备注| | :------------: | :------------: | |制作宾客卡| 301 |--| |自定义卡片下发| 302 |--| |自定义密码| 303 |--| |离线密码 |304 |--| |删除单个授权| 305 |--| |房间退房 |306 |--| |房间入住列表同步 |307 |--| |小程序授权 |308 |--| |取消小程序授权 |309 |--| |入住详情 |310 |--| |远程开锁 |311 |--| |待处理入住列表 |312 |--| |忽略待处理入住 |313 |--| |重新下发待处理入住 |314 |--| |手机授权| 315 |V1.9.0新增| |手机授权使能/禁用| 316 |V1.9.0新增| |续住| 317 |V1.9.0新增| |指纹下发| 318 |V1.9.0新增| |下发指纹结果推送| 319 |V1.9.0新增| |送电/断电/恢复设置| 320 |V1.9.1新增|
卡片操作
| 功能 | 命令值 |备注| | :------------: | :------------: | |制作总卡| 401|-- | |总卡列表| 402|-- | |制作楼栋卡| 403|-- | |楼栋卡列表| 404|-- | |制作楼层卡| 405|-- | |楼层卡列表| 406|-- | |收回卡片| 407|-- | |退房卡| 408|V1.9.0新增|
日志同步
| 功能 | 命令值 |备注| | :------------: | :------------: | |事件上报| 501|--| |房间日志列表| 502|--|
日志类型eventType
注意:第三方可以根据需求解析eventType处理
值 | 描述 |
---|---|
01 | 强拆报警 |
02 | 非法操作报警(错误次数超限等),系统已锁定 |
03 | 低电量报警 |
04 | 开锁 |
05 | 布防 |
06 | 撤防 |
07 | 胁迫开锁 |
08 | 添加授权 |
09 | 删除授权 |
10 | 反锁 |
11 | 反锁解除 |
12 | 撬锁芯报警 |
13 | 门铃事件 |
14 | 门未关好(假锁报警) |
15 | 未关门报警 |
17 | 门锁已关闭常开 |
18 | 故障报警 |
20 | 切换系统语言 |
21 | 系统锁定状态解除 |
22 | 时间同步 |
23 | 恢复出厂设置 |
24 | 修改密码 |
25 | 未拔钥匙事件 |
26 | 打开锁头盖事件 |
27 | 系统参数设置事件 |
28 | 使能与禁止 |
30 | 上锁事件 |
31 | 斜舌缩进事件(压把手事件) |
32 | 机械钥匙开锁事件 |
34 | 修改钥匙有效期 |
41 | 错误开锁事件 |
43 | 自动开锁 |
46 | 按照钥匙内容修改钥匙信息事件 |
47 | 未验证开锁 |
48 | 周期开启事件 |
49 | 周期关闭事件 |
生成AES秘钥规则
酒店AppId:b5d0769c550d4f6699c8ecbd668f8132
1.对AppId取MD5:41B35B7B1EC2207533E59E391D39E3B8(大写) md5生成摘要,固定长度32,范围为0-9,A-F
2.将摘要信息 前8个字节后8个字节异或 41 B3 5B 7B 1E C2 20 75 33 E5 9E 39 1D 39 E3 B8 41 ^ 33 = 72 B3 ^ E5 = 56 5B ^ 9E = C5 7B ^ 39 = 42 1E ^ 1D = 03 C2 ^ 39 = FB 20 ^ E3 = C3 75^ B8= CD 得:7256C54203FBC3CD
3.将摘要信息截取12~20 得:207533E5
4.将7256C54203FBC3CD 第2 4 6 8 个字节与 207533E5异或 56 ^ 20 = 76 42 ^ 75 = 37 FB ^ 33 = C8 CD ^ E5 = 28 得:7637C828
5.7637C828替换7256C54203FBC3CD的第 1 3 5 7个字节 72 56 C5 42 03 FB C3 CD 76 37 C8 28 得AES秘钥:76563742C8FB28CD
钥匙类型keyType
值 | 描述 |
---|---|
1 | 指纹 |
2 | 密码 |
4 | 卡片 |
8 | 遥控器 |
128 | APP远程 |
129 | 微信 |
256 | 人脸识别 |
一卡通对接
边缘网关(服务器)通过同步第三方系统中间库人员数据,进行房间操作
接入说明
1.接入方式
便于第三方快速接入,少改动的原则,对接方式采用“中间库的方式”。由第三方提供“数据库”和“人员表”,联网工程锁系统通过第三方提供的“数据库”将“人员表”中的数据同步本地。
增量同步数据:“人员表”中“更新时间”为必填项,联网工程锁系统每次同步中间库数据都是根据“更新时间”,只有“人员表”中发生变化数据的“更新时间”大于上次同步数据的“最大更新时间”才会同步到本地。如未同步过的人员且已注销,则不会同步到师生人员列表里面。
2.人员表定义
表名:sync_usercard_all
字段:
字段名 | 类型 | 条件 | 描述 | 备注 |
---|---|---|---|---|
userId | String | 必填 | 人员主键 | -- |
userName | String | 可选 | 人员姓名 | -- |
userNumb | String | 必填 | 人员编号 | 编号唯一 |
sex | int | 可选 | 人员性别 | 0-未知 1-男 2-女 |
deptName | String | 可选 | 部门名称 | -- |
category | int | 可选 | 人员类型 | 第三方自定义 |
userStatus | int | 可选 | 人员状态 | 0-正常 1-注销 |
cardNo | int | 可选 | 卡流水号 | -- |
factoryFixId | String | 可选 | 物理卡号 | userStatus为0或者cardStatus为1有物理卡 userStatus为1或者cardStatus不为1物理卡号就为空 酒店版本v1.6.0开始卡号必须为16进制,同发卡器读卡一致,字段类型由long变更为String 酒店版本v2.2.0开始卡号可自行设置规则 |
cardStatus | int | 可选 | 卡状态 | 1-正常 2-挂失 3-无卡 4-退卡 7-冻结 |
createTime | datetime | 必填 | 创建时间 | -- |
updateTime | datetime | 必填 | 更新时间 | -- |
目前边缘服务器,提供了[HTTP]与[MQTT]两种对接方式:
1.若服务器与第三方的应用在同一个局域网内,http的功能接口满足项目功能需求的情况下,建议考虑优先使用HTTP的方式对接。
2.若服务器与第三方的应用不在一个局域网内,类似于云PMS的,建议可以考虑MQTT的对接方式。
关于一卡通对接,指的类似于一卡通、企业员工管理平台等平台将员工的卡号信息同步到边缘服务器的数据库中,可以有效更好的同步更新授权。