锁的服务
更新时间: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"
       }
    ]
}
错误码
请参考公共错误码