停车场边缘网关接入API
更新时间:2020-03-09 16:27:40
1、名词
白名单车辆:无需缴费,可直接通行的车辆。
黑名单车辆:禁止进入停车场的车辆。
锁定车辆:如果车主需要将车停放在停车场一段时间,为了安全可以锁定自己在停车场中的车辆。车辆被锁定后,禁止出停车场。
普通车辆:有月卡或者购买了车位,没有收费过程。
临时车辆:进出车场受管控,肯定有订单。
2、规约信息
2.1 边缘和本地停车系统建立连接
通信协议基于HTTP,建立双向通道(即先由IoT边缘网关发起连接,成功后再由本地系统/设备发起连接到边缘服务器, 只有双向通道都建立成功后,才能进行业务通信)。
访问格式:http://
: <相对url>,例如 http://127.0.0.1:12345/connect
。时间字段类型:string-utc,单位:无明确说明则为毫秒, 如:"1502175700000"。
文件传输时,路径、文件名一律为英文。
edge 端的车行连接服务端口:10010
传输的图片的格式要求:png, jpg, jpeg, JPG
2.2 订单创建
不需要创建订单的情形:不需要收费的情况无需创建订单,具体例子如下:
- 白名单车辆通行。
- 普通车办理了月卡或者购买了车位,不需要进出车场时每次都缴费。
- 车场免费期:有些车场中,比如停车时间不到30分钟可免费,对于这种情况,车辆进出不需要创建订单。
创建订单的两种方式
- 调用云端创建订单接口,用户通过APP扫码缴费触发
- 用户在出车场前在场内提前缴费
- 用户到达闸机口扫码缴费
- 本地停车系统创建订单,并上报云端。用户到达闸机口缴现金,车场中本地停车系统生成订单,停车系统通过停车区域上报订单事件,将订单信息同步到云端,无需调用云端创建订单接口。
- 调用云端创建订单接口,用户通过APP扫码缴费触发
2.3 停车场无停车区域的情况
部分厂商的停车场中,业务相关的操作绑定在停车场上而非停车区域,例如车辆黑白名单修改,停车场下并不做停车区域的进一步划分。
边缘网关由于要支持多种停车场场景,因此API设计上包含了停车区域相关的操作。不划分区域的停车场可以将停车场看做默认的停车区域。只需要在对应停车区域相关的API参数中使用lotId
代替areaId
即可。
3、接口说明
3.1 连接
相对url: /connect
method: POST
Content-Type:application/json
描述:由边缘网关主动发起, 等连接成功后,再由停车管理服务系统向边缘网关建立连接,只有双向连接建立成功后,边缘端和本地停车管理系统才算成功建立了连接。
调用发起方:
- 边缘网关
- 停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
sn | string | ✓ | 设备sn | N/A |
time | string-utc | ✓ | utc时间戳(单位:秒) | 例如:1502175700 |
ip | string | ✓ | ip地址 | 格式:192.168.1.110,目前的ip参数主要用来做连接时验证签名校验,边缘和停车系统实际使用的对端IP地址需要通过外部配置。 |
mac | string | ✓ | mac地址 | 格式:11:22:33:44:55:66 |
version | string | 版本号 | 格式:major.minor.patch,连接发起方的版本标记 | |
keepalive | int | ✓ | 保活超时时间 | 单位:s,边缘侧发起请求时默认使用30s保活超时时间 |
signMethod | string | ✓ | 签名算法 | 目前支持的有: md5/sha1/sha256 |
sign | string | ✓ | 签名后的内容 | 需要签名的内容封装格式:"TIME{time}MAC{mac}SN{sn}IP{ip}",大括号内的是具体内容(注意,格式中的花括号{}需要保留),其外面的是名称。time要转换成string类型。 |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | 0表示成功,其他非0错误值参见错误码表 |
message | string | ✓ | 返回消息 | 连接结果的可读字符串 |
data | dict | 消息内容 | 该消息必须包含token字段,连接成功的响应中必选,错误情况不需要。该字段的含义:连接成功后,被调用方会颁发身份标示信息,在后续的“心跳包活”、“业务请求”时需要携带。 |
示例:
请求:
{
"sn": "1234567890",
"time": "123456789",
"ip": "192.168.1.110",
"mac": "11:22:33:44:55:66",
"keepalive": 10,
"signMethod": "md5",
"sign": "sdfdgdsghgfdhfghgfhjdfj"
}
连接成功响应:
{
"code": 0,
"message": "success",
"data": {
"token": "234353455456"
}
}
参数无效响应(如IP地址格式错误等情况,message根据具体错误有所不同):
{
"code": 2,
"message": "......"
}
签名验证错误响应:
{
"code": 3,
"message": "Signature is invalid"
}
3.2 停车场-车位上报
相对url: /report/parkingLot/parkingSpaceNum
method: POST
Content-Type:application/json
描述:上报停车场车位总量,由停车管理服务系统发起。和边缘网关成功建立连接后,主动上报该事件给边缘网关。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 停车服务的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
lotId | string | ✓ | 车场ID | |
totalNum | int | ✓ | 车位总数 | |
remainNum | int | ✓ | 剩余空闲的车位个数 |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "123456789",
"lotId": "车场Id",
"totalNum": 100,
"remainNum": 50
}
响应:
{
"code": 0,
"message": ""
}
3.3 查询停车区域列表
相对url: /query/parkingLot/areaList
method: GET
描述:查询所有停车区域列表
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 停车服务的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
lotId | string | ✓ | 车场ID | |
type | int | ✓ | 查询类型 | 0:全量,1:一级区域。对于停车场本身只有一个区域的情形,返回的区域列表中唯一的区域就是停车场ID。 |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 | |
data | dict | ✓ | 消息内容 |
示例
请求:
token="123456789"
lotId="车场ID"
type=0
响应:
{
"code": 0,
"message": "",
"data": {
"areaList": [
{"areaId": "area_id_1", "areaName": "xxx", "totalNum": 100, "remainNum": 50},
{"areaId": "area_id_2", "areaName": "xxx", "totalNum": 100, "remainNum": 50}
...
]
}
}
3.4 查询道闸列表
相对url: /query/parkingLot/barrierGateList
method: GET
描述:查询所有道闸列表
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车系统下发,在规定的时间内未收到心跳,则token失效。 |
lotId | string | ✓ | 车场ID |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 | |
data | dict | ✓ | 消息内容 |
示例
请求:
token="123456789"
lotId="车场ID"
响应:
{
"code": 0,
"message": "",
"data": {
"barrierGateList": [
{"areaId": "mmm", "barrierGateId": "xxx", "barrierGateName": "yyy", "direction": 0/1}, // 0表示进库,1表示出库
{"areaId": "mmm", "barrierGateId": "xxx", "barrierGateName": "yyy", "direction": 0/1},
{"areaId": "mmm", "barrierGateId": "xxx", "barrierGateName": "yyy", "direction": 0/1},
...
]
}
}
3.5 查询车辆信息
相对url: /query/vehicleInfo
method: GET
描述:查询车辆信息
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车系统下发,在规定的时间内未收到心跳,则token失效。 |
lotId | string | ✓ | 车场ID | |
numberPlate | string | ✓ | 车牌号 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 | |
---|---|---|---|---|---|
code | int | ✓ | 返回值 | ||
message | string | ✓ | 返回消息 | ||
data | dict | 消息内容 | 具体内容查看示例 | ||
userId | string | ✓ | 用户ID | ||
userName | string | ✓ | 用户名字 | ||
numberPlate | string | ✓ | 车牌号 | ||
phoneNumber | string | ✓ | 手机号 | ||
lockStartTime | utc-string | 锁车起始时间 | 内容为空或者无字段时,则不锁车 | ||
lockEndTime | utc-string | 锁车截止时间 | 内容为空或者无字段时,则不锁车 | ||
areaId | string | 停车区域ID | 内容为空或者无字段时,则该车未在停车位上 | ||
spaceId | string | 停车位ID | 内容为空或者无字段时,则该车未在停车位上 | ||
permission | list | ✓ | 通行权限 |
示例
请求:
token="1234567890"
lotId="车场ID"
numberPlate="车牌号"
响应:
{
"code": 0,
"message": "",
"data": {
"userId": "用户ID",
"userName": "用户名",
"phoneNumber": "手机号",
"numberPlate": "浙A5566",
"lockStartTime": "锁车起始时间",
"lockEndTime": "锁车截止时间",
"areaId": "停车区域ID",
"spaceId": "停车位ID",
"permission":[
{"barrierGateId": "barrierGateId_1", "effectiveDate": "起始时间", "expiryDate": "截止时间"},
{"barrierGateId": "barrierGateId_2", "effectiveDate": "起始时间", "expiryDate": "截止时间"},
{"barrierGateId": "barrierGateId_3", "effectiveDate": "起始时间", "expiryDate": "截止时间"}
]
}
}
3.6 查询场内车辆列表
相对url: /query/vehicleList
method: GET
描述: 获取车辆列表数据。
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车管理系统下发,在规定的时间内未收到心跳,则token失效。 |
lotId | string | ✓ | 车场ID |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 | |
data | dict | ✓ | 消息内容 | 具体内容查看示例 |
示例
请求:
token="123456789"
lotId="车场ID"
响应:
{
"code": 0,
"message": "success",
"data": {
"numberPlateList": [
"浙A5566",
"浙A5567",
"浙A5568",
...
]
}
}
3.7 同步车辆信息
相对url: /sync/vehicleInfo
method: POST
Content-Type:application/json
描述:新增\修改\删除车辆信息。
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车系统下发,在规定的时间内未收到心跳,则token失效。 |
lotId | string | ✓ | 车场ID | |
changeType | enum | ✓ | 0: 添加用户,1: 删除用户,2: 修改用户 | |
numberPlate | string | ✓ | 车牌号 | |
userId | string | 用户ID | changeType为0 或者2时有效 | |
userName | string | 用户名字 | changeType为0 或者2时有效 | |
phoneNumber | srting | 手机号 | changeType为0 或者2时有效 | |
lockStartTime | utc-string | 锁车起始时间 | 内容为空或者无字段时,则不锁车(changeType为0或2时才有效) | |
lockEndTime | utc-string | 锁车截止时间 | 内容为空或者无字段时,则不锁车(changeType为0或2时才有效) | |
permission | list | 通行权限 | changeType为0 或者2时有效 |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "1234567890",
"lotId": "停车场ID",
"changeType": 0,
"userId": "用户ID",
"userName": "用户名",
"numberPlate": "浙A5566",
"phoneNumber": "手机号",
"lockStartTime": "锁车起始时间",
"lockEndTime": "锁车截止时间",
"permission":[
{"barrierGateId": "barrierGateId_1", "effectiveDate": "起始时间", "expiryDate": "截止时间"},
{"barrierGateId": "barrierGateId_1", "effectiveDate": "起始时间", "expiryDate": "截止时间"},
{"barrierGateId": "barrierGateId_1", "effectiveDate": "起始时间", "expiryDate": "截止时间"},
...
]
}
响应
{
"code": 0,
"message": ""
}
3.8 校正车牌
相对url: /correct/numberPlate
method: POST
Content-Type:application/json
描述: 校正车牌。
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车服务下发,在规定的时间内未收到心跳,则token失效。 |
lotId | string | ✓ | 车场ID | |
numberPlate | string | ✓ | 正确的车牌号 | |
recordId | string | ✓ | 要矫正的本地记录号 | 通过道闸上报通行事件时上报到云端,校正车牌时携带该参数定位要矫正的车牌。 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "1234567890",
"lotId": "asdfghjkl",
"numberPlate": "浙A5566",
"recordId": "xyz123"
}
响应:
{
"code": 0,
"message": ""
}
3.9 上报变更的车辆信息
相对url: /change/vehicleInfo
method: POST
Content-Type:application/json
描述: 本地停车系统上报车辆信息。与从云端同步车辆信息不同,本体上报车辆信息不需要提供手机号字段,手机号信息从云端获取。本地停车系统如果不提供用户信息变更功能,则无需实现该接口。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
lotId | string | ✓ | 车场ID | |
changeType | enum | ✓ | 变更类型:0: 添加用户,1: 删除用户,2: 修改用户 | |
numberPlate | string | ✓ | 车牌号 | |
userId | string | 用户ID | changeType为0 或者2时有效 | |
userName | string | 用户姓名 | changeType为0 或者2时有效 | |
lockStartTime | string | 有效期起始时间 | changeType为0 或者2时有效。当缺失该字段或者字段内容为空,则不锁定车辆 | |
lockEndTime | string | 有效期截止时间 | changeType为0 或者2时有效。当缺失该字段或者字段内容为空,则不锁定车辆 | |
permission | list | 通行权限 | changeType为0 或者2时有效 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
{
"token": "1234567890",
"lotId": "停车场ID",
"changeType": 0,
"userId": "用户ID",
"userName": "用户名",
"numberPlate": "浙A5566",
"phoneNumber": "手机号",
"lockStartTime": "锁车起始时间",
"lockEndTime": "锁车截止时间",
"permission":[
{"barrierGateId": "barrierGateId_1", "effectiveDate": "起始时间", "expiryDate": "截止时间"},
{"barrierGateId": "barrierGateId_2", "effectiveDate": "起始时间", "expiryDate": "截止时间"},
{"barrierGateId": "barrierGateId_3", "effectiveDate": "起始时间", "expiryDate": "截止时间"}
...
]
}
响应:
{
"code": 0,
"message": ""
}
3.10 上报停车场中停车区域的车位数量
相对url: /report/parkingLot/parkingAreaList/parkingSpaceNum
method: POST
Content-Type:application/json
描述:上报所有停车区中每个区域的车位总量和余量。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 停车服务的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
lotId | string | ✓ | 停车场ID | |
areaList | list | ✓ | 发生变更的停车区域信息列表 | 最少包含一条区域更新信息 |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "123456789",
"lotId": "停车场id",
"areaList": [
{"areaId": "area_id_1", "totalNum": 100,"remainNum": 50},
{"areaId": "area_id_2", "totalNum": 70,"remainNum": 20},
...
]
}
响应:
{
"code": 0,
"message": ""
}
3.11 上报停车场中停车区域的静态信息
相对url: /report/parkingLot/parkingAreaList/staticInfo
method: POST
Content-Type:application/json
描述:上报静态信息。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 停车服务的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
lotId | string | ✓ | 停车场ID | |
areaList | list | ✓ | 发生变更的停车区域信息列表 | 最少包含一条区域更新信息 |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "123456789",
"lotId": "停车场Id"
"areaList": [
{"areaId": "area_id_1", "areaName": "name1"},
{"areaId": "area_id_2", "areaName": "name2"},
...
]
}
响应:
{
"code": 0,
"message": ""
}
3.12 查询停车区域的车位列表
相对url: /query/parkingArea/parkingSpaceList
method: GET
描述:查询指定区域中的所有车位。
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车系统下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
token="123456789"
areaId="qwertyuiop"
响应:
{
"code": 0,
"message": "",
"data": {
"parkingSpaceList": [
"parkingSpaceId_1",
"parkingSpaceId_2",
...
]
}
}
3.13 查询停车区域的上下级
相对url: /query/parkingArea/parentAndChildren
method: GET
描述:查询指定停车区域的父区域和子区域列表。
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车系统下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
token="123456789"
areaId="qwertyuiop"
响应:
{
"code": 0,
"message": "",
"data": {
"parentAreaId": "父级区域",
"childrenList": [
"areaid",
"areaid",
...
]
}
}
3.14 停车区域-车辆黑名单增\删
相对url: /adddel/parkingArea/VehicleBlacklist
method: POST
Content-Type:application/json
描述:在指定的停车区域中将给定车辆号牌增加到黑名单或从黑名单删除。
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车系统下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID | |
mode | enum | ✓ | 0:添加,1:删除 | |
numberPlate | string | ✓ | 车牌号 |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "123456789",
"areaId": "qwertyuiop",
"mode": 0,
"numberPlate": "浙A5566"
}
响应:
{
"code": 0,
"message": ""
}
3.15 停车区域-查询车辆黑名单
相对url: /query/parkingArea/VehicleBlacklist
method: GET
描述:查询指定停车区域中的黑名单车牌列表。
调用发起方:边缘网关
参数
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车系统下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
token="123456789"
areaId="qwertyuiop"
响应:
{
"code": 0,
"message": "",
"data": {
"numberPlateList": [
"浙A5566",
"浙A5567",
"浙A5568",
...
]
}
}
3.16 停车区域-车辆白名单增\删
相对url: /adddel/parkingArea/VehicleWhitelist
method: POST
Content-Type:application/json
描述:在指定的停车区域中将给定车辆号牌增加到白名单或从白名单删除。
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车系统下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID | |
mode | enum | ✓ | 0:添加,1:删除 | |
numberPlate | string | ✓ | 车牌号 |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "123456789",
"areaId": "qwertyuiop",
"mode": 0,
"numberPlate": "浙A5566"
}
响应:
{
"code": 0,
"message": ""
}
3.17 停车区域-查询车辆白名单
相对url: /query/parkingArea/VehicleWhitelist
method: GET
描述:查询指定区域中的白名单车牌列表。
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车系统下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID |
- 返回值:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 | |
data | dict | 消息内容 |
示例
请求:
token="123456789"
areaId="qwertyuiop"
响应:
{
"code": 0,
"message": "",
"data": {
"numberPlateList": [
"浙A5566",
"浙A5567",
"浙A5568",
...
]
}
}
3.18 停车区域-上报通行订单
相对url: /report/parkingArea/passOrder
method: POST
Content-Type:multipart/form-data
描述: 上报通行订单事件。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID | |
numberPlate | string | ✓ | 车牌号 | |
inBarrierGateId | string | ✓ | 入场道闸ID | |
inTime | string-utc | ✓ | 入场时间 | |
inNumberPlateImage | file | ✓ | 入场抓拍照片 | |
outBarrierGateId | string | 出场道闸ID | ||
outTime | string-utc | 出场时间 | ||
outNumberPlateImage | file | 出场抓拍照片 | ||
expenseAmount | float | ✓ | 收费金额 | |
orderNumber | string | ✓ | 订单号 | |
orderStatus | enum | ✓ | 支付状态:0: 支付完成,1: 未支付 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:(ps: 请求文本中省略了图片信息)
{
"token": "1234567890",
"areaId": "停车区域ID",
"numberPlate": "浙A5566",
"inBarrierGateId":"入场道闸ID",
"inTime": "入场时间",
"outBarrierGateId": "出场道闸ID",
"outTime": "出场时间",
"expenseAmount": "支付金额",
"orderNumber": "订单号",
"orderStatus": 0
}
响应:
{
"code": 0,
"message": ""
}
3.19 支付确认
相对url: /confirm/passOrder
method: POST
Content-Type:application/json
描述:“支付订单”的确认信息。
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车服务下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID | |
orderNumber | string | ✓ | 订单号 | |
payResult | enum | ✓ | 0:支付完成,1:免费,2:本地支付,3:取消订单 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "1234567890",
"areaId": "asdfghjkl",
"orderNumber": "asdfghjk",
"payResult": 0
}
响应:
{
"code": 0,
"message": ""
}
3.20 创建订单
相对url: /new/passOrder
method: POST
Content-Type:application/json
描述: 边缘网关接收到云端的创建订单请求,下发到本地停车系统。
调用发起方:边缘网关
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID | |
numberPlate | string | ✓ | 车牌号 | |
inBarrierGateId | string | ✓ | 入场道闸ID | |
inTime | string-utc | ✓ | 入场时间 | |
outBarrierGateId | string | 出场道闸ID | 场内支付情况无该字段 | |
outTime | string-utc | 出场时间 | 场内支付情况无该字段 | |
orderStatus | enum | ✓ | 支付状态:0: 支付完成,1: 未支付 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "1234567890",
"areaId": "停车区域ID",
"numberPlate": "浙A5566",
"inBarrierGateId":"入场道闸ID",
"inTime": "入场时间",
"outBarrierGateId": "出场道闸ID",
"outTime": "出场时间",
"orderStatus": 0
}
响应:
{
"code": 0,
"message": ""
}
3.21 停车区域-上报黑名单变更
相对url: /report/parkingArea/VehicleBlacklist
method: POST
Content-Type:application/json
描述: 停车区域的黑名单中有车牌增加或者删除时上报事件。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID | |
mode | enum | ✓ | 0:增加,1:删除 | |
numberPlate | string | ✓ | 车牌号 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "1234567890",
"areaId": "停车区域ID",
"mode":0,
"numberPlate": "浙A5566"
}
响应:
{
"code": 0,
"message": ""
}
3.22 停车区域-上报白名单变更
相对url: /report/parkingArea/VehicleWhitelist
method: POST
Content-Type:application/json
描述: 停车区域的白名单中有车牌增加或者删除时上报事件。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
areaId | string | ✓ | 停车区域ID | |
mode | enum | ✓ | 0:增加,1:删除 | |
numberPlate | string | ✓ | 车牌号 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "1234567890",
"areaId": "停车区域ID",
"mode":0,
"numberPlate": "浙A5566"
}
响应:
{
"code": 0,
"message": ""
}
3.23 道闸-上报运行状态
相对url: /report/barrierGate/runState
method: POST
Content-Type:application/json
描述: 上报道闸状态。Ps: http 连接成功后,Edge端默认所有道闸是运行正常。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由edge下发,在规定的时间内未收到心跳,则token失效。 |
barrierGateId | string | ✓ | 道闸ID | |
state | enum | ✓ | 道闸状态 | 0: 异常,1: 正常 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "1234567890",
"barrierGateId": "zxcvbnm",
"state": 0
}
响应:
{
"code": 0,
"message": ""
}
3.24 道闸-上报开关状态
相对url: /report/barrierGate/switchState
method: POST
Content-Type:application/json
描述: 上报道闸状态。Ps: http 连接成功后,边缘网关默认所有道闸都是关闭的。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
barrierGateId | string | ✓ | 道闸ID | |
state | enum | ✓ | 道闸状态:0: 道闸关,1: 道闸开 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "1234567890",
"barrierGateId": "zxcvbnm",
"state": 0
}
响应:
{
"code": 0,
"message": ""
}
3.25 道闸-远程开关闸
相对url: /manager/barrierGate/remoteOnOff
method: POST
Content-Type:application/json
描述: 设置道闸状态。
调用发起方:边缘网关
参数
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车服务管理系统下发,在规定的时间内未收到心跳,则token失效。 |
barrierGateId | string | ✓ | 道闸ID | |
onOff | enum | ✓ | 开关:0: 道闸关,1: 道闸开 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:
{
"token": "1234567890",
"barrierGateId": "zxcvbnm",
"onOff": 0
}
响应:
{
"code": 0,
"message": ""
}
3.26 道闸-上报通行事件
相对url: /report/barrierGate/passEvent
method: POST
Content-Type:multipart/form-data
描述: 车辆进出车场时上报车辆通行事件。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
recordId | string | ✓ | 停车系统进出闸时本地的记录ID | 该记录号将在校正车牌时使用。 |
barrierGateId | string | ✓ | 道闸ID | |
inOut | enum | ✓ | 0:入场,1:出场 | |
numberPlate | string | ✓ | 车牌号 | |
numberPlateImage | file | ✓ | 车牌图片 | |
orderNumber | string | 订单号 | 出场时,有有效的订单填写,其他情况无需填写 | |
openType | enum | ✓ | 0:正常抬杠,1:异常抬杠 | |
permissionType | enum | ✓ | 0:普通车辆,1:临时车辆,2:白名单车辆 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:(ps:请求文本中省略了图片信息)
{
"token": "1234567890",
"recordId": "xyz123",
"barrierGateId": "",
"inOut": 0,
"numberPlate": "浙A5566",
"orderNumber": "订单号",
"openType": 0,
"permissionType": 0
}
响应:
{
"code": 0,
"message": ""
}
3.27 道闸-识别非法车辆
相对url: /report/barrierGate/illegalVehicle
method: POST
Content-Type:multipart/form-data
描述:在道闸识别到非法车辆时上报该事件。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
barrierGateId | string | ✓ | 道闸ID | |
type | enum | ✓ | 0:锁定的车辆,1:黑名单车辆 | |
numberPlate | string | ✓ | 车牌号 | |
numberPlateImage | file | ✓ | 车牌照片 | |
inOut | enum | ✓ | 0:进场,1:出场 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:(ps: 请求文本中省略了图片信息)
{
"token": "1234567890",
"barrierGateId": "zxcvbnm",
"type":0,
"numberPlate": "浙A5566",
"inOut": 0
}
响应:
{
"code": 0,
"message": ""
}
3.28 上报车位状态
相对url: /report/parkingSpaceState
method: POST
Content-Type:multipart/form-data
描述: 上报车位的占用状态。
调用发起方:停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由边缘网关下发,在规定的时间内未收到心跳,则token失效。 |
spaceId | string | ✓ | 停车位ID | |
spaceState | enum | ✓ | 0:无车,1:有车 | |
numberPlate | string | 车牌号 | spaceState为1时有效 | |
lotSpacePicture | string | 车位图片URL |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
示例
请求:(ps: 请求文本中省略了图片信息)
{
"token": "1234567890",
"spaceId": "asdfghjkl",
"sapceState": 1,
"numberPlate": "浙A5566"
}
响应:
{
"code": 0,
"message": ""
}
3.29 查询车位状态
相对url: /query/parkingSpaceState
method: GET
Content-Type:application/json
描述: 查询车位的占用状态。
调用发起方:边缘网关
参数
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | ✓ | 设备的标识信息 | 在建立连接时,由停车服务下发,在规定的时间内未收到心跳,则token失效。 |
spaceId | string | ✓ | 停车位ID |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 | |
data | dict | ✓ | 消息内容 |
示例
请求:(ps: 请求文本中省略了图片信息)
token="1234567890"
spaceId="asdfghjkl"
响应:
{
"code": 0,
"message": "",
"data": {
"spaceState": 1, // 0表无车, 1表示有车
"numberPlate": "浙A5566" //spaceState 为1时有效
}
}
3.30 心跳
相对url: /keepalive
method: POST
Content-Type:application/json
描述: http client 端发起。每个业务通信都可当作一次心跳,只有链路出现空闲的时候,则发送心跳,若对端长时间未收到心跳,则认为设备掉线,即当前链路通道失效,需要重新做connect操作。
调用发起方:边缘网关,停车系统
参数:
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
token | string | 设备的标识信息 | 在建立连接时,由对端下发,在规定的时间内未收到心跳,则token失效。 |
- 返回值
参数 | 类型 | 必选 | 说明 | 备注 |
---|---|---|---|---|
code | int | ✓ | 返回值 | |
message | string | ✓ | 返回消息 |
{
"code": 0,
"message": ""
}
4、错误码表
错误码 | 说明 |
---|---|
0 | 成功 |
1 | token无效 |
2 | 请求参数无效或非法 |
3 | 连接时签名验证失败 |
6 | 停车场系统地址非法:部署时会将所有停车场设备的IP地址配置在云端,如果边缘侧收到非配置地址中的停车系统连接请求,则返回该错误码 |
7 | 无效的设备,边缘侧调用本地系统服务,或者本地系统上报事件的参数中,包含的设备ID无效。 |
8 | 道闸运行状态“异常”:若上报道闸的业务数据,则该错误 |
99 | 未知错误 |
5、文档发布历史
v2.0.4 2020-03-09
- 【修改】修复文字拼写错误
v2.0.3 2020-01-30
- 【修改】在规则新约中详细说明utc时间戳的单位
v2.0.2 2019-11-30
- 【修改】上报车位状态接口中新增一个可选参数 “车位图片URL”,用于获取停车场系统中的车位照片。
v2.0.1 2019-10-30
【修改】统一同步添加车辆信息,上报变更车辆信息两个API中permission list中使用的生效时间和失效时间变量名为exffectiveTime和expiryTime。
【修复】解决文档转换格式错乱问题。
v2.0.0 2019-08-30
【新增】停车场无停车区域时API的使用方法。
【新增】增加API文档发布版本编号和修改历史描述。
【新增】增加连接错误返回值描述例子。
【修复】连接失败response中不需要data字段,修改data必选为可选,只有在连接成功的response时才需要该字段。
【修复】连接请求中版本号含义描述。
【优化】补充错误码含义描述。
【优化】增加边缘端连接本地系统时的默认保活时间30s。
【删除】去掉用不到的错误码4(查询信息不存在)。
v1.0.0 2019-08-16
停车场边缘网关接入API第一个版本。
支持停车场、停车区域、道闸和车位。