传统门禁服务API
更新时间:2020-08-31 19:06:39
传统门禁通行解决方案
接口文档
接口以阿里云IoT统一网关HTTP接口的形式提供(使用方法参考API网关客户端)。
访问域名:api.link.aliyun.com,接口协议:HTTPS。
通用对象
人员信息UserDTO
| 字段 | 类型 | 备注 |
|---|---|---|
| identityId | String | 统一身份ID。 |
| name | String | 人员称谓。 |
| extInfo | String | 自定义信息。 |
门禁卡权限CardDTO
| 字段 | 类型 | 备注 |
|---|---|---|
| iotId | String | 门禁设备的iotId |
| expiryTime | String | 密码有效期,时间格式 yyyy-MM-dd HH:mm:ss" |
| cardId | String | 门禁卡id |
| identityId | String | 统一身份ID |
接口列表
| 模块 | 接口名称 | 接口说明 |
|---|---|---|
| 人员信息管理 | 添加或更新人员信息 | 添加或更新人员信息 |
| 删除人员信息 | 删除某人员信息 | |
| 查询人员信息 | 查询人员信息 | |
| 查询人员列表 | 查询人员列表 | |
| 刷卡门禁权限管理 | 批量设置门禁卡权限 | 批量设置门禁卡权限 |
| 删除刷卡门禁上某用户的权限 | 删除刷卡门禁上某用户的权限 | |
| 查询用户的门禁卡权限信息 | 查询人在指定门禁卡设备上的门禁卡权限信息 | |
| 查询门禁设备上的权限信息 | 查询门禁设备上的权限信息 | |
| 查询门禁设备的常开门状态 | 查询门禁设备的常开门状态 | |
| 设置门禁设备的常开门状态 | 设置门禁设备的常开门状态 | |
| 二维码门禁通行方式 | 生成二维码 | 分配二维码 |
| 二维码权限配置 | 为指定门禁设备配置二维码权限 | |
| 二维码权限删除 | 删除刷卡门禁上某用户的权限 | |
| 生成二维码并配置权限(旧) | 生成二维码并为指定门禁设备配置权限 | |
| 密码门禁通行方式 | 设置门禁密码 | 为密码门禁通行设置门禁密码 |
| 远程控制开门 | 远程控制开门 | 远程控制开门 |
| 设备消息订阅 | 增加设备消息推送订阅 | 授权租户想接收设备上报的事件 |
| 查询订阅消息推送设备列表 | 查询订阅消息推送设备列表 | |
| 删除设备消息推送订阅 | 删除设备消息推送订阅 |
人员信息管理
添加或更新人员信息
接口定义
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/user/modify | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| identityId | String | 是 | 统一身份ID。若identityId在库里存在走更新流程,若identityId在库里不存在走创建流程 |
| name | String | 否 | 人员称谓。在更新的时候,如不传不会对原有值做修改。在创建的时候必须传。 |
| extInfo | String | 否 | 自定义信息。在更新的时候,如不传不会对原有值做修改。在创建时候可以不填。 |
出参
返回结果使用通用结果类型,data域为空。
示例
请求示例
{
"identityId":"50acopfd3a94900494085ed2699e052432c34452",
"name":"王先生",
"extInfo":{}
}
返回示例
{
"code": 200,
"id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
"message": null,
"localizedMsg": null
}
删除人员信息
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/user/delete | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| identityId | String | 是 | 统一身份ID。 |
示例
请求示例
{
"identityId":"50acopfd3a94900494085ed2699e052432c34452"
}
返回示例
{
"code": 200,
"id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
"message": null,
"localizedMsg": null
}
查询人员信息
接口定义
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/user/get | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| identityId | String | 是 | 统一身份ID。 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSON |
人员信息 |
示例
请求示例
{
"identityId":"50acopfd3a94900494085ed2699e052432c34452"
}
返回示例
{
"code": 200,
"data": {{
"identityId":"50acopfd3a94900494085ed2699e052432c34452"
"name": "馄饨面",
"extInfo":{}
},
"id": "4a70179d-47d8-4fdf-9067-8a5eedf63483",
"message": null,
"localizedMsg": null
}
人员列表
接口定义
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/user/query | 1.0.0 | 否 |
入参
| pageSize | Integer | 是 | 分页查询一页内的记录数,上限100 |
|---|---|---|---|
| pageNo | Integer | 是 | 分页数,从1开始 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSONObject |
返回的分页数据对象 |
分页数据对象PageDTO
| pageSize | Integer | 传入的pageSize |
|---|---|---|
| pageNo | Integer | 传入的pageNo |
| total | Long | 总记录数 |
| data | JSONArray |
人员信息 |
示例
请求示例
{
"pageSize":10,
"pageNo":1
}
返回示例
{
"code": 200,
"data": {
"total": 1,
"data": [{
"identityId":"50acopfd3a94900494085ed2699e052432c34452"
"name": "馄饨面",
"extInfo":{}
}]
},
"id": "4a70179d-47d8-4fdf-9067-8a5eedf63483",
"message": null,
"localizedMsg": null
}
刷卡门禁权限管理
批量设置门禁卡权限
接口定义
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/perm/card/batchmodify | 1.0.2 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| cards | JSONArray |
是 | 待创建对象列表,上限1000 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSONArray |
处理失败的记录,建议可以依照这个列表重新添加 |
FailureResultDTO
| 字段 | 类型 | 备注 |
|---|---|---|
| iotId | String | 门禁设备的iotId |
| cardId | String | 门禁卡id |
| identityId | String | 统一身份ID |
示例
请求示例
{
"cards": [{
"identityId": "50acopfd3a94900494085ed2699e052432c34452",
"iotId": "p2OsgId2N2kXMWThRCQP000101",
"expiryTime": "2020-03-04 18:00:00",
"cardId":"3d8deae9402d38adfji38"
}]
}
返回示例
{
"code": 200,
"id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
"data":[{
"identityId": "50acopfd3a94900494085ed2699e052432c34452",
"iotId":"p2OsgId2N2kXMWThRCQP000101",
"cardId":"3d8deae9402d38adfji38"
}],
"message": null,
"localizedMsg": null
}
删除刷卡门禁上某用户的权限
删除门禁卡的权限实际是删除这个设备上的人的权限
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/perm/card/batchdelete | 1.0.1 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| list | JSONArray |
是 | 待删除对象列表 |
PermDTO
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| identityId | String | 是 | 统一身份ID |
| iotId | String | 是 | 门禁id |
| cardId | String | 是 | 门禁卡id,最大长度255字符 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSONArray |
删除失败的列表 |
ModifyResultDTO
| 字段 | 类型 | 备注 |
|---|---|---|
| iotId | String | 门禁设备的iotId |
| cardId | String | 门禁卡id |
| identityId | String | 统一身份ID |
示例
请求示例
{
"list": [{
"iotId": "p2OsgId2N2kXMWThRCQP000101",
"identityId": "50acopfd3a94900494085ed2699e052432c34452",
"cardId":"3d8deae9402d38adfji38"
}]
}
返回示例
{
"code": 200,
"id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
"data":[],
"message": null,
"localizedMsg": null
}
查询用户的门禁卡权限信息
接口定义
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/user/perm/query | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| identityId | String | 是 | 统一身份ID |
| iotIds | JSONArray |
是 | 门禁设备列表,上限100 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSONObject |
分页对象 |
分页数据对象PermDTO
| identityId | String | 统一身份ID |
|---|---|---|
| data | JSONArray |
门禁卡权限对象 |
示例
请求示例
{
"identityId":"50acopfd3a94900494085ed2699e052432c34452",
"iotIds":[
"p2OsgId2N2kXMWThRCQP000101"
]
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null,
"data":{
"identityId": "p2OsgId2N2kXMWThRCQP000101",
"data":[{
"iotId": "50acopfd3a94900494085ed2699e052432c34452",
"identityId": "p2OsgId2N2kXMWThRCQP000101",
"expiryTime": "2020-03-04 18:00:00",
"cardId":"3d8deae9402d38adfji38"
}]
}
}
查询门禁设备上的权限信息
接口定义
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/device/perm/query | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| iotId | String | 是 | 刷卡门禁设备的iotId |
| pageSize | Integer | 是 | 分页查询一页内的记录数,上限100 |
| pageNo | Integer | 是 | 分页数,从1开始 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSONObject |
分页对象 |
分页数据对象PageDTO
| pageSize | Integer | 传入的pageSize |
|---|---|---|
| pageNo | Integer | 传入的pageNo |
| total | Long | 总记录数 |
| data | JSONArray |
门禁卡权限对象列表 |
示例
请求示例
{
"iotId":"p2OsgId2N2kXMWThRCQP000101",
"pageSize":10,
"pageNo":1
}
返回示例
{
"code": 200,
"message": null,
"localizedMsg": null
"data":{
"total":1,
"pageSize":10,
"pageNo":1,
"data":[{
"identityId": "50acopfd3a94900494085ed2699e052432c34452",
"iotId": "p2OsgId2N2kXMWThRCQP000101",
"expiryTime": "2020-03-04 18:00:00",
"cardId":"3d8deae9402d38adfji38"
}],
}
}
查询门禁设备的常开门状态
接口定义
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/keepopen/get | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| iotId | String | 是 | 刷卡门禁设备的iotId |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | Boolean | 设备是否处于常开状态 |
示例
请求示例
{
"iotId":"p2OsgId2N2kXMWThRCQP000101"
}
返回示例
{
"code": 200,
"message": null,
"data": false
}
设置门禁设备的常开门状态
接口定义
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/keepopen/set | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| iotId | String | 是 | 刷卡门禁设备的iotId |
| keepOpen | Boolean | 是 | 是否常开 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
示例
请求示例
{
"iotId":"p2OsgId2N2kXMWThRCQP000101",
"keepOpen":true
}
返回示例
{
"code": 200,
"message": null
}
二维码门禁通行方式
生成二维码
| path | 版本 | 是否需要登录 |
|---|---|---|
| /homelink/common/qrcode/generate | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| identityId | String | 是 | 申请二维码人员的统一身份ID |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | String | 二维码 |
示例
请求示例
{
"identityId":"50acopfd3a94900494085ed2699e052432c34452"
}
返回示例
{
"code": 200,
"id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
"data":"24DD9END8CD3",
"message": null,
"localizedMsg": null
}
二维码权限配置
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/perm/qrcode/config | 1.0.1 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| qrCode | String | 是 | 二维码 |
| iotIds | JSONArray | 是 | 待配置权限的门禁设备iotId |
| identityId | String | 是 | 申请二维码人员的统一身份ID |
| effectiveTime | String | 否 | 二维码生效期,时间格式 yyyy-MM-dd HH:mm:ss 默认为当前时间 |
| expiryTime | String | 是 | 二维码失效期,时间格式 yyyy-MM-dd HH:mm:ss |
| maxScanTimes | Integer | 否 | 最大刷卡次数,默认为-1不做次数限制 |
| maxScanScope | String | 否 | 最大刷码次数作用范围,默认为每个设备独立计数。SHARE – 共享; DEVICE – 设备 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSONArray | 权限配置结果 |
| ->iotId | String | 门禁设备ID |
| ->code | Integer | 成功为200 |
| ->message | String | 错误信息 |
示例
请求示例
{
"qrCode": "24DD9END8CD3",
"identityId":"50acopfd3a94900494085ed2699e052432c34452",
"iotIds": [
"p2OsgId2N2kXMWThRCQP000101"
],
"effectiveTime":"2019-03-04 18:00:00",
"expiryTime":"2020-03-04 18:00:00"
}
返回示例
{
"code": 200,
"id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
"message": null,
"localizedMsg": null,
"data": [
{
"iotId": "p2OsgId2N2kXMWThRCQP000101",
"code": "200"
}
]
}
二维码权限删除
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/perm/qrcode/remove | 1.0.1 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| qrCode | String | 是 | 二维码 |
| identityId | String | 是 | 申请二维码人员的统一身份ID |
| iotIds | JSONArray | 是 | 门禁设备iotId |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSONArray | 权限配置结果 |
| ->iotId | String | 门禁设备ID |
| ->code | Integer | 成功为200 |
| ->message | String | 错误信息 |
示例
请求示例
{
"qrCode": "24DD9END8CD3",
"iotIds": [
"p2OsgId2N2kXMWThRCQP000101"
],
"identityId":"50acopfd3a94900494085ed2699e052432c34452"
}
返回示例
{
"code": 200,
"id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
"message": null,
"localizedMsg": null,
"data": [
{
"iotId": "p2OsgId2N2kXMWThRCQP000101",
"code": "200"
}
]
}
生成二维码并配置权限(旧)
该接口有限流,每个租户每秒最多设置2000次门禁二维码
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/perm/qrcode/generate | 1.0.1 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| iotIds | JSONArray |
是 | 待配置权限的门禁设备iotId,最多支持500个设备 |
| identityId | String | 是 | 申请二维码人员的统一身份ID |
| expiryTime | String | 是 | 二维码有效期,时间格式 yyyy-MM-dd HH:mm:ss 不能超过生效期时间+24h |
| effectiveTime | String | 否 | 二维码生效期,时间格式 yyyy-MM-dd HH:mm:ss 不能小于当前时间,如为空则取当前时间 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | String | 二维码 |
示例
请求示例
{
"identityId":"50acopfd3a94900494085ed2699e052432c34452",
"iotIds":[
"p2OsgId2N2kXMWThRCQP000101"
],
"expiryTime":"2020-03-04 18:00:00",
"effectiveTime":"2020-03-03 18:00:01"
}
返回示例
{
"code": 200,
"id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
"data":"24DD9END8CD3",
"message": null,
"localizedMsg": null
}
密码门禁通行方式
设置门禁密码
该接口有限流,每个租户每秒最多设置2000次门禁密码
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/perm/passwd/modify | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| passwords | JSONArray |
是 | 密码信息。最长100条记录 |
PasswordDTO对象
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| identityId | String | 是 | 统一身份ID。若identityId+iotId在数据库中存在走更新流程,若identityId+iotId不存在走创建流程 |
| iotId | String | 是 | 门禁设备的iotId |
| password | String | 是 | 密码信息。最大长度255字符 |
| number | Integer | 是 | 密码编号,一个密码门禁有可能有多个密码。 |
| expiredDate | String | 是 | 密码有效期,时间格式 yyyy-MM-dd HH:mm:ss |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSONArray |
设置失败的记录列表 |
ModifyResultDTO
| 字段 | 类型 | 备注 |
|---|---|---|
| iotId | String | 门禁设备的iotId |
示例
请求示例
{
"identityId": "50acopfd3a94900494085ed2699e052432c34452",
"passwords": [{
"iotId": "p2OsgId2N2kXMWThRCQP000101",
"password": "a2d34f84dfafe",
"number": "030",
"expiryDate": "2020-03-04 18:00:00"
}]
}
返回示例
{
"code": 200,
"id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
"data":[
"iotId":"p2OsgId2N2kXMWThRCQP000101"
],
"message": null,
"localizedMsg": null
}
远程控制开门
远程控制开门
接口定义
| path | 版本 | 是否需要登录 |
|---|---|---|
| /cloud/thing/service/invoke | 1.0.1 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| iotId | String | 是 | 门禁设备的iotId |
| identifier | String | 是 | 固定值“remoteOpen” |
| args | JSNOObject | 是 | 固定值{} |
出参
返回结果使用通用结果类型,data域为空。
示例
请求示例
{
"identifier": "remoteOpen",
"iotId": "p2OsgId2N2kXMWThRCQP000101",
"args": {}
}
返回示例
{
"code": 200,
"id":"4a70179d-47d8-4fdf-9067-8a5eedf63483",
"message": null,
"localizedMsg": null
}
传统门禁通行事件
设备消息订阅(推荐使用数据模型订阅)
增加设备消息推送订阅
当存在跨租户给设备授权的时候,被授权租户想接收设备上报的事件,需要调用这个接口来做授权
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/device/subscription/modify | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| iotIds | JASONArray |
是 | 待订阅的设备iotId列表,上限50 |
| subscribed | Integer | 否 | 1 订阅,0取消订阅;默认是1 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSONArray |
订阅设置失败的设备iotId |
ModifyResultDTO
| 字段 | 类型 | 备注 |
|---|---|---|
| iotId | String | 门禁设备的iotId |
示例
请求示例
{
"iotId": "50acopfd3a94900494085ed2699e052432c34452",
"passwords": [{
"iotId": "p2OsgId2N2kXMWThRCQP000101"
}]
}
查询订阅消息推送设备列表
查询已经订阅消息的设备列表,包括已经取消了订阅的设备
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/device/subscription/query | 1.0.0 | 否 |
入参
| pageSize | Integer | 是 | 分页查询一页内的记录数,上限100 |
|---|---|---|---|
| pageNo | Integer | 是 | 分页数,从1开始 |
出参
| 字段 | 类型 | 备注 |
|---|---|---|
| code | Integer | 返回码 |
| message | String | 返回信息 |
| data | JSONObject |
返回的分页数据对象 |
分页数据对象PageDTO
| pageSize | Integer | 传入的pageSize |
|---|---|---|
| pageNo | Integer | 传入的pageNo |
| total | Long | 总记录数 |
| data | JSONArray |
订阅数据列表 |
DeviceTenantRelationDTO
| 字段 | 类型 | 备注 |
|---|---|---|
| iotId | String | 设备iotId |
| deviceName | String | 设备dn |
| productKey | String | 设备pk |
| categoryKey | String | 设备品类 |
| tenantId | String | 租户Id |
| subscribed | Integer | 是否订阅消息 |
| gmtCreate | Date | 订阅创建时间 |
| gmtModified | Date | 订阅更新时间 |
示例
请求示例
{
"pageSize":10,
"pageNo":1
}
返回示例
{
"code": 200,
"data": {
"total": 1,
"data": [{
"bizCode": "bizTypeTest",
"categoryKey": "categoryKeyTest",
"deviceName": "deviceNameTest",
"gmtCreate": 1556517249000,
"gmtModified": 1556517249000,
"iotId": "iotTest",
"productKey": "productKeyTest",
"subscribed": 1,
"tenantId": "tenantTest"
}]
},
"id": "4a70179d-47d8-4fdf-9067-8a5eedf63483",
"message": null,
"localizedMsg": null
}
删除设备消息推送订阅
删除订阅关系
| path | 版本 | 是否需要登录 |
|---|---|---|
| /entrance/paas/device/subscription/delete | 1.0.0 | 否 |
入参
| 字段 | 类型 | 是否必传 | 备注 |
|---|---|---|---|
| iotIds | JASONArray |
是 | 待订阅的设备iotId列表,上限50 |
出参
返回结果使用通用结果类型,data域为空。
示例
请求示例
{
"iotIds":[
"p2OsgId2N2kXMWThRCQP000101"
]
}
返回示例
{
"code": 200,
"id": "4a70179d-47d8-4fdf-9067-8a5eedf63483",
"message": null,
"localizedMsg": null
}