锁的服务
更新时间:2018-10-19 11:29:34
锁的服务
提供一组锁SaaS专用的接口,方便对锁相关产品进行快速开发。
钥匙与虚拟用户绑定
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/key/user/bind |
1.0.0 |
钥匙与虚拟用户进行绑定,只允许锁设备绑定的管理员进行操作 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
virtualUserId |
String |
是 |
虚拟用户ID,与账户下创建的虚拟用户对应 |
lockUserId |
String |
是 |
钥匙ID(对应锁端的锁用户ID,由设备上报获得) |
lockUserType |
Integer |
是 |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
lockUserPermType |
Integer |
是 |
钥匙权限(1-普通用户; 2-管理员用户; 3-胁迫用户 ) |
iotId |
String |
是 |
设备ID |
返回参数
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"virtualUserId" : "10B6336EFE05374FF99BDD428F58AA5A18",
"lockUserId" : "10",
"lockUserType" : 1,
"lockUserPermType" : 2,
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10"
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": null
}
错误码
错误码 |
错误信息 |
来源 |
描述 |
28530 |
lock user has been bound to other virtual user. |
业务 |
钥匙已经和其他虚拟用户绑定 |
钥匙与虚拟用户解绑
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/key/user/unbind |
1.0.0 |
钥匙与虚拟用户进行解除绑定,只允许锁设备绑定的管理员进行操作 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
virtualUserId |
String |
是 |
虚拟用户ID,与账户下创建的虚拟用户对应 |
lockUserId |
String |
是 |
钥匙ID(对应锁端的锁用户ID,由设备上报获得) |
lockUserType |
Integer |
是 |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
iotId |
String |
是 |
设备ID |
返回参数
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"virtualUserId" : "10B6336EFE05374FF99BDD428F58AA5A18",
"lockUserId" : "10",
"lockUserType" : 1,
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10"
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": null
}
错误码
请参考公共错误码
查询虚拟用户和某批钥匙的绑定关系
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/key/users/bindinfo/get |
1.0.0 |
查询虚拟用户和某个设备下某批钥匙的绑定关系,如果存在绑定关系则返回相应的关系信息。限定锁设备绑定的管理员查询方有效 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
virtualUserId |
String |
是 |
虚拟用户ID,与账户下创建的虚拟用户对应 |
originalLockUsers |
List |
是 |
钥匙ID列表(对应锁端的锁用户ID,由设备上报获得) |
originalLockUsers列表结构
参数 |
类型 |
描述 |
iotId |
String |
设备ID |
lockUserId |
String |
钥匙ID(对应锁端的锁用户ID,由设备上报获得) |
lockUserType |
Integer |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
返回参数
参数 |
类型 |
必有 |
描述 |
lockUsers |
List |
否 |
存在绑定关系的钥匙列表 |
lockUsers列表结构
参数 |
类型 |
描述 |
iotId |
String |
设备ID |
lockUserId |
String |
钥匙ID(对应锁端的锁用户ID,由设备上报获得) |
lockUserType |
Integer |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
lockUserPermType |
Integer |
钥匙权限(1-普通用户; 2-管理员用户; 3-胁迫用户 ) |
userId |
String |
虚拟用户ID |
identityId |
String |
账户身份ID |
tenantId |
String |
租户ID |
isolationId |
String |
资源隔离ID |
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"virtualUserId" : "10B6336EFE05374FF99BDD428F58AA5A18",
"originalLockUsers" : [
{
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"lockUserId": "10",
"lockUserType" : 1
},
{
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"lockUserId": "12",
"lockUserType" : 2
}
]
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": [
{
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"lockUserId": "10",
"lockUserType" : 1,
"lockUserPermType": 2,
"userId": "10B6336EFE05374FF99BDD428F58AA5A18",
"identityId": "5070opb4c20352a76092886e6970731e258b2250",
"tenantId": "C9A56275D954421FAAE9875CDE5F01B3",
"isolationId": "a103cg3XCLYnTrF8"
}
]
}
错误码
请参考公共错误码
查询虚拟用户和某个钥匙的绑定关系
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/key/user/bindinfo/get |
1.0.0 |
查询虚拟用户和某个钥匙的绑定关系,如果存在绑定关系则返回相应的关系信息,不存在则返回空。限定锁设备绑定的管理员查询方有效 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
virtualUserId |
String |
是 |
虚拟用户ID,与账户下创建的虚拟用户对应 |
lockUserId |
String |
是 |
钥匙ID(对应锁端的锁用户ID,由设备上报获得) |
lockUserType |
Integer |
是 |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
iotId |
String |
是 |
设备ID |
返回参数
参数 |
类型 |
必有 |
描述 |
iotId |
String |
是 |
设备ID |
lockUserId |
String |
是 |
钥匙ID(对应锁端的锁用户ID,由设备上报获得) |
lockUserType |
Integer |
是 |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
lockUserPermType |
Integer |
是 |
钥匙权限(1-普通用户; 2-管理员用户; 3-胁迫用户 ) |
userId |
String |
是 |
虚拟用户ID |
identityId |
String |
是 |
账户身份ID |
tenantId |
String |
是 |
租户ID |
isolationId |
String |
是 |
资源隔离ID |
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"virtualUserId" : "10B6336EFE05374FF99BDD428F58AA5A18",
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"lockUserId": "10",
"lockUserType" : 1
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": {
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"lockUserId": "10",
"lockUserType" : 1,
"lockUserPermType": 2,
"userId": "10B6336EFE05374FF99BDD428F58AA5A18",
"identityId": "5070opb4c20352a76092886e6970731e258b2250",
"tenantId": "C9A56275D954421FAAE9875CDE5F01B3",
"isolationId": "a103cg3XCLYnTrF8"
}
}
错误码
请参考公共错误码
过滤还未绑定虚拟用户的钥匙信息
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/key/user/unbind/filter |
1.0.0 |
过滤出当前还未绑定的钥匙列表。限定锁设备绑定的管理员查询方有效 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
originalLockUsers |
List |
是 |
钥匙ID列表(对应锁端的锁用户ID,由设备上报获得) |
originalLockUsers列表结构
参数 |
类型 |
描述 |
iotId |
String |
设备ID |
lockUserId |
String |
钥匙ID(对应锁端的锁用户ID,由设备上报获得) |
lockUserType |
Integer |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
lockUserPermType |
Integer |
钥匙权限(1-普通用户; 2-管理员用户; 3-胁迫用户 ) |
返回参数
参数 |
类型 |
必有 |
描述 |
originalLockUsers |
List |
否 |
过滤后的钥匙ID列表(对应锁端的锁用户ID) |
originalLockUsers列表结构
参数 |
类型 |
描述 |
iotId |
String |
设备ID |
lockUserId |
String |
钥匙ID(对应锁端的锁用户ID,由设备上报获得) |
lockUserType |
Integer |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
lockUserPermType |
Integer |
钥匙权限(1-普通用户; 2-管理员用户; 3-胁迫用户 ) |
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"originalLockUsers": [
{
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"lockUserId": "10",
"lockUserType" : 1,
"lockUserPermType": 2
},
{
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"lockUserId": "12",
"lockUserType" : 2,
"lockUserPermType": 1
}
]
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": [
{
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"lockUserId": "10",
"lockUserType" : 1,
"lockUserPermType": 2
}
]
}
错误码
请参考公共错误码
查询虚拟用户绑定的钥匙列表
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/key/user/bindlist/get |
1.0.0 |
查询虚拟用户下绑定的钥匙列表 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数
|
类型
|
必填
|
描述
|
virtualUserId
|
String
|
是
|
虚拟用户ID,与账户下创建的虚拟用户对应
|
lockUserType
|
Integer
|
否
|
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) 不填表示查询全部类型
|
lockUserPermType
|
Integer
|
否
|
钥匙权限(1-普通用户; 2-管理员用户; 3-胁迫用户 ) 不填表示查询全部类型
|
返回参数
参数 |
类型 |
必有 |
描述 |
lockUsers |
List |
否 |
存在绑定关系的钥匙列表 |
lockUsers列表结构
参数 |
类型 |
描述 |
iotId |
String |
设备ID |
lockUserId |
String |
钥匙ID(对应锁端的锁用户ID) |
lockUserType |
Integer |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
lockUserPermType |
Integer |
钥匙权限(1-普通用户; 2-管理员用户; 3-胁迫用户 ) |
userId |
String |
虚拟用户ID |
identityId |
String |
账户身份ID |
tenantId |
String |
租户ID |
isolationId |
String |
资源隔离ID |
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"virtualUserId" : "10B6336EFE05374FF99BDD428F58AA5A18",
"lockUserType" : 1,
"lockUserPermType": 2
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": [
{
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"lockUserId": "10",
"lockUserType" : 1,
"lockUserPermType": 2,
"userId": "10B6336EFE05374FF99BDD428F58AA5A18",
"identityId": "5070opb4c20352a76092886e6970731e258b2250",
"tenantId": "C9A56275D954421FAAE9875CDE5F01B3",
"isolationId": "a103cg3XCLYnTrF8"
},
{
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"lockUserId": "12",
"lockUserType" : 2,
"lockUserPermType": 1,
"userId": "109C2D6ED589E54C69A32A38C7D8FA1673",
"identityId": "5070opb4c20352a76092886e6970731e258b2250",
"tenantId": "C9A56275D954421FAAE9875CDE5F01B3",
"isolationId": "a103cg3XCLYnTrF8"
}
]
}
错误码
请参考公共错误码
查询设备下的虚拟用户列表
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/dev/virtual/user/get |
1.0.0 |
查询某个设备下绑定了钥匙的虚拟用户列表信息 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotId |
String |
是 |
设备ID |
返回参数
参数 |
类型 |
必有 |
描述 |
userInfos |
List |
否 |
虚拟用户列表 |
userInfos列表结构
参数 |
类型 |
必填 |
描述 |
userId |
String |
是 |
虚拟用户ID |
attrList |
List |
是 |
用户的属性值(参看虚拟用户对用户属性的定义) |
attrList列表结构
参数 |
类型 |
必填 |
描述 |
attrKey |
String |
是 |
属性Key |
attrValue |
String |
是 |
属性值 |
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10"
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": [
{
"userId" : "10B6336EFE05374FF99BDD428F58AA5A18",
"attrList": [
{
"attrKey": "name",
"attrValue": "小明"
},
{
"attrKey": "birthday",
"attrValue": "1985-07-03"
}
]
},
{
"userId" : "109C2D6ED589E54C69A32A38C7D8FA1673",
"attrList": [
{
"attrKey": "name",
"attrValue": "妈妈"
},
{
"attrKey": "birthday",
"attrValue": "1965-02-15"
}
]
}
]
}
错误码
请参考公共错误码
删除设备的钥匙信息
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/key/user/delete |
1.0.0 |
删除指定设备的钥匙信息,如果钥匙已与虚拟用户绑定,那么该操作会优先触发虚拟用户的解绑,不管最终钥匙删除是否成功,均会解绑虚拟用户,只允许锁设备绑定的管理员进行操作 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
lockUserId |
String |
是 |
钥匙ID(对应锁端的锁用户ID) |
lockUserType |
Integer |
是 |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
iotId |
String |
是 |
设备ID |
返回参数
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"lockUserId" : "10",
"lockUserType" : 1,
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10"
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": null
}
错误码
错误码 |
错误信息 |
来源 |
描述 |
28504 |
device is offline. |
业务 |
设备不在线 |
查询钥匙对应的虚拟用户信息
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/key/virtual/user/get |
1.0.0 |
查询钥匙对应的虚拟用户信息 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
lockUserId |
String |
是 |
钥匙ID(对应锁端的锁用户ID) |
lockUserType |
Integer |
是 |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙) |
iotId |
String |
是 |
设备ID |
返回参数
参数 |
类型 |
必有 |
描述 |
userId |
String |
是 |
虚拟用户ID |
attrList |
List |
否 |
用户的属性值 |
attrList列表结构
参数 |
类型 |
必填 |
描述 |
attrKey |
String |
是 |
属性Key |
attrValue |
String |
是 |
属性值 |
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"lockUserId" : "10",
"lockUserType" : 1,
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10"
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": {
"userId" : "10B6336EFE05374FF99BDD428F58AA5A18",
"attrList": [
{
"attrKey": "name",
"attrValue": "小明"
},
{
"attrKey": "birthday",
"attrValue": "1985-07-03"
}
]
}
}
错误码
错误码 |
错误信息 |
来源 |
描述 |
28601 |
user device not bind. |
业务 |
用户设备没有绑定 |
28527 |
user not bind with lock. |
业务 |
钥匙还未和虚拟用户绑定 |
设置锁设备的昵称
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/nickname/set |
1.0.0 |
设置门锁设备的昵称,设备绑定的用户均可以设置,设置结果将同步所有关联用户 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
nickName |
String |
是 |
昵称信息 |
iotId |
String |
是 |
设备ID |
返回参数
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"nickName" : "大门锁",
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10"
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": null
}
错误码
错误码 |
错误信息 |
来源 |
描述 |
28601 |
user device not bind. |
业务 |
用户设备没有绑定 |
查询锁的事件记录列表
定义描述
path |
版本 |
描述 |
是否需要用户身份的鉴权 |
/lock/event/history/query |
1.0.0 |
查询锁设备的事件记录列表 |
是,客户端SDK需启用身份的鉴权 |
请求参数
参数 |
类型 |
必填 |
描述 |
iotid |
String |
是 |
设备ID |
events |
List |
否 |
需要查询的设备事件类型列表(对应产品功能定义中事件定义的标识符) |
start |
Long |
是 |
查询时间区间的开始时间(毫秒) |
end |
Long |
是 |
查询时间区间的结束时间(毫秒) |
lockUserId |
String |
否 |
钥匙ID(对应锁端的锁用户ID),与lockUserType同时有值或同时为null时有效,否则直接忽略设置 |
lockUserType |
Integer |
否 |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙),与lockUserId同时有值或同时为null时有效,否则直接忽略设置 |
virtualUserId |
String |
否 |
虚拟用户ID,当同时设置了lockUserId,lockUserType和virtualUserId时,将会同时生效,即在虚拟用户绑定的钥匙列表的基础上加上配置的(lockUserId,lockUserType) |
pageNo |
Integer |
是 |
当前页号,从1开始的页序号 |
pageSize |
Integer |
是 |
页大小,单页的记录数量上限(最大50) |
返回参数
参数 |
类型 |
必有 |
描述 |
pageNo |
Integer |
是 |
当前页号 |
pageSize |
Integer |
是 |
页大小 |
total |
Long |
是 |
记录总数 |
data |
List |
否 |
事件记录列表 |
data列表结构
参数 |
类型 |
必填 |
描述 |
iot_id |
String |
是 |
设备ID |
event_code |
String |
是 |
上报事件的标识符 |
service_date |
String |
是 |
服务端记录时间(格式:2018-06-25 17:41:18) |
client_date |
String |
是 |
客户端上报时间(格式:2018-06-25 17:41:18) |
KeyID |
String |
否 |
钥匙ID(对应锁端的锁用户ID,由设备上报获得),当对应的事件具备该出参时,才包含该字段 |
LockType |
Integer |
否 |
钥匙类型(1-指纹, 2-密码, 3-卡, 4-钥匙),当对应的事件具备该出参时,才包含该字段 |
UserLimit |
Integer |
否 |
钥匙权限(1-普通用户; 2-管理员用户; 3-胁迫用户 ),当对应的事件具备该出参时,才包含该字段 |
... |
... |
否 |
其他事件具备的出参信息,以具体的产品功能列表中事件的定义为准 |
示例
请求示例
{
"id": "1509086454180",
"version": "1.0",
"request": {
"apiVer": "1.0.0"
},
"params": {
"iotId" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"events" : ["DoorOpenNotification","HijackingAlarm","DoorUnlockedAlarm"]
"start" : 1629500044000,
"end" : 1629587444000,
"virtualUserId":"10B6336EFE05374FF99BDD428F58AA5A18",
"pageNo" : 1,
"pageSize" : 50
}
}
正常返回示例
{
"code": 200,
"message": "success",
"data": [
{
"iot_id" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"event_code": "DoorOpenNotification",
"service_date" : "2018-06-25 17:41:18",
"client_date": "2018-06-25 17:41:18",
"KeyID": "10",
"LockType": 2
},
{
"iot_id" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"event_code": "HijackingAlarm",
"service_date" : "2018-06-25 17:40:18",
"client_date": "2018-06-25 17:40:18",
"KeyID": "10",
"LockType": 2
},
{
"iot_id" : "ChFrkX2CEx6DO88EHXNH0010803d10",
"event_code": "DoorUnlockedAlarm",
"service_date" : "2018-06-25 17:38:18",
"client_date": "2018-06-25 17:38:18"
}
]
}
错误码
请参考公共错误码