智能云停车场系统接口文档
一、文档说明
1.1 适用对象
该接口文档针对第三方开发人员,第三方系统架构人员,第三方互联网软件公司,第三方系统集成公司。快速接入停车场系统,可作为第三方系统的一部分,直接实现停车系统的各种功能。
1.2 版本说明
  • 2018-10-31 版本1.01 基本外接接口
1.3 术语说明
  • 本地接口:指在局域网内使用的同本地智能云停车系统中间件进行通信的接口,分为推送和接收两个部分。
  • 远程接口:指在互联网上中间件接口,该中间件由第三方系统自行安装在云端,该中间件自动和本地智能云停车系统中间件进行通信,达到远程控制的能力。该接口只有接收部分。
  • 中间件:这里中间件是指智能云停车场系统和第三方系统之间联系的中间服务系统程序。
  • 推送:这里推送是相对于中间件而言,对第三方系统是被动接收信息,包括本地停车场出入场,车道修改,或登记车添加、修改、删除,收费标准修改等信息。
  • 接收:这里接收也是相对于中间件而言,对第三方系统是主动发送信息。
二、接口规则
2.1 接口概述
该接口分为本地接口和远程接口,如果第三方系统只在局域网中使用直接安装本地中间件,使用本地接口即可,如果第三方系统有在云端(互联网)的应用,需安装远程中间件,接入到远程接口。 本地接口可分为推送和接收两个部分。远程接口只有接收部分。本地接口和远程接口均采用API模式,具体协议规则见2.2,其中推送数据不用进行签名,接收数据需要签名验证
2.2 协议规则
传输方式 采用HTTP传输。
提交方式 采用POST方法提交。
数据格式 提交和返回数据都为json。
字符编码 统一采用UTF-8字符编码。
签名算法 MD5,后续会兼容SHA1、SHA256、HMAC等。
签名要求 请求和接收数据均需要校验签名,详细方法请参考2.3。
判断逻辑 先判断协议字段返回,再判断业务返回。
2.3 签名规则
签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式 (即key1=value1&key2=value2…),拼接成字符串stringA。 特别注意以下重要规则:
  • 参数名ASCII码从小到大排序(字典序)。
  • 如果参数的值为空不参与签名。
  • 参数名区分大小写。
  • 传送的sign参数不参与签名。
例:appid=hello&nonceStr=5K8264ILTKSI&parkingStr=A00001&signType=MD5
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
例:appid=hello&nonceStr=5K8264ILTKSI&parkingStr=A00001&signType=MD5&key=U2FsdGVkXMD5,运算后得到:sign: BB591B8D9135214F06DF6244C18D5C7D
三、API接口列表
3.1 本地接口接收API列表
第三方接口调用API,获取相关信息,地址为配置文件中的IP地址+端口号,即http://本地IP:9512
3.1.1 获取所有卡(车)类型
  • 功能:通过该接口,获取所有卡类名称。
  • 接口:/ParkAPI/GetCardType。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
    data Json字符串 {}
    lists Json数组 cardType:车辆类型,monthPay:月租费标准,单位元
3.1.2 获取停车费
  • 功能:调用该接口,获取车辆应收停车费(按照本地端设置的收费标准)。
  • 接口:/ParkAPI/GetStopFee。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    intime 入场时间 yyyy-MM-dd HH:mm:ss String(24) 必填
    outtime 出场时间 yyyy-MM-dd HH:mm:ss String(24) 必填
    cardType 车辆类型 例如:临时车A String(10) 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 1成功 其它失败
    messages 返回信息 成功为SUCCES
    data Json字符串 {“parkingFee”:00.00}
    lists Json数组 null
3.1.3 增加或更改登记车信息
  • 功能:第三方系统增加或修改的登记车,同步到本地数据库,如果本地有该车即更新否则增加。
  • 接口:/ParkAPI/RegistPlate。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    plateNo 车牌号 例如:川A09090 String(12) 必填
    cardNo 登记编号 例如:C2222111 String(24) 必填
    cardType 车辆类型 例如:临时车A String(10) 必填
    startDT 开始日期 yyyy-MM-dd HH:mm:ss String(24) 必填
    endDT 到期日期 yyyy-MM-dd HH:mm:ss String(24) 必填
    fee 储值卡余额 0.00 (两位小数) decimal(18,2) 选填
    createDT 开卡日期 yyyy-MM-dd HH:mm:ss String(24) 选填
    yardParking 车场车位 例:A2-3-101 String(32) 选填
    sharedParkingNo 共享车位数 正整数 String(5) 选填
    personNo 车主编号 例:184522331 String(30) 选填
    personName 车主姓名 例:李四 String(30) 选填
    personPhone 车主电话 例:13882213333 String(20) 选填
    homeAddress 家庭住址 例:四川成都 String(100) 选填
    bIsDel 是否删除 true false bool 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
    data Json字符串 {}
    lists Json数组 null
3.1.4 添加充值延期记录
  • 功能:第三方系统充值后,添加充值记录到智能云停车系统本地端数据库。
  • 接口:/ParkAPI/ChargeRecord。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    plateNo 车牌号 例如:川A09090 String(12) 必填
    cardNo 登记编号 例如:C222111 String(24) 必填
    cardType 车辆类型 例如:临时车A String(10) 必填
    endDT 到期日期 月租车充值后的到期日期,如果车辆类型是月租车该项必选,格式:yyyy-MM-dd HH:mm:ss String(24) 可选
    fee 充值金额 如果车辆类型为储值车,该项必选。如:300.00(两位小数) decimal(18,2) 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
    data Json字符串 {}
    lists Json数组 null
3.1.5 获取车道信息
  • 功能:获取停车场系统车道设置信息。
  • 接口:/ParkAPI/GetChannel。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
    data Json字符串 {}
    lists Json数组 ID:车道编号,sTyep:车道类型,sName:车道名称,VideoIP:摄像机IP,CtrlIP:控制机IP,BigSmall:大小车场
3.1.6 发送开闸命令
  • 功能:车辆已经被识别,但未返回开闸命令,等待下达开闸命令(目前是出口),标识是车场、车道名称和车牌号为判断标准。这个命令是配合3.2.2使用,单独使用无效。
  • 接口:/ParkAPI/OpenGate。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    plateNo 车牌号 例:川A00001 String(12) 必填
    channelName 车道名称 例:出口车道1 String(100) 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
    data Json字符串 {}
    lists Json数组 null
3.2 本地接口推送API列表
推送地址由设置界面中自定义设置,用户需要接收POST数据的地址,数据格式为JSON,由三部分构成{“command”:”cmdInParking”,”parkingStr”:”12345”,”info”:”{不同接口不同定义的字段}”}。 接口推送是流水作业,按事件推送,不会重复。
3.2.1 车辆入场信息
  • 功能:车辆入场时推送相关信息。
  • 推送数据:
    参数名 含义 说明
    command 功能模块 cmdInParking
    parkingStr 车场编号 车场编号(中间件中设置)
    Info JSON(参数全部为字符串) plateNo:车牌号,cardType:车辆类型(例:临时车A),cardNo:车辆编号,inTime:进场时间(格式:yyyy-MM-dd HH:mm:ss),inChannel:车道名称,inType:入场类型,inPic:入场图片(选择推送图片,会有此项,jpg转化成BASE64格式)
  • 返回参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
3.2.2 已识别但未出场车辆
  • 功能:车辆已经被识别,但是还未出场,等待开闸时推送的信息,如果直接放行返回开闸OK,否则等待下一步命令如:3.1.6 或本地端软件开闸或系统自有云开闸或3.3.6开闸。
  • 推送数据:
    参数名 含义 说明
    command 功能模块 cmdPreOutParking
    parkingStr 车场编号 车场编号(中间件中设置)
    Info JSON(参数全部为字符串) plateNo:车牌号,cardType:车辆类型(例:临时车A),cardNo:车辆编号,inTime:进场时间(格式:yyyy-MM-dd HH:mm:ss),outChannel:出场车道,receive:应收金额(例:30)
  • 返回参数:
    参数名 描述 说明
    code 返回代号 10010开闸 10011等待 10012 禁止放行 10013 已锁车 其它见4说明
    messages 返回信息 开闸为OPEN(大写) 等待为WAIT(大写) 禁止放行CLOSE(大写) 已锁车LOCK(大写)
3.2.3 车辆出场信息
  • 功能:车辆已经出场推送的信息。
  • 推送数据:
    参数名 含义 说明
    command 功能模块 cmdOutParking
    parkingStr 车场编号 车场编号(中间件中设置)
    Info JSON(参数全部为字符串) plateNo:车牌号,cardType:车辆类型(例:临时车A),cardNo:车辆编号,inTime:进场时间(格式:yyyy-MM-dd HH:mm:ss),outTime:出场时间(格式:yyyy-MM-dd HH:mm:ss), outChannel:出场车道,outType:出场类型,outUser:出场收费员(例:管理员),outPic:出场图片(选择推送图片,会有此项,jpg转化成BASE64格式),receive:应收金额(例:30)
  • 返回参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
3.2.4 登记车辆信息
  • 功能:登记的车辆添加,修改,删除信息推送。
  • 推送数据:
    参数名 含义 说明
    command 功能模块 cmdRegistPlate
    parkingStr 车场编号 车场编号(中间件中设置)
    Info JSON(参数全部为字符串) plateNo:车牌号,cardType:车辆类型(例:临时车A),cardNo:车辆编号,startDT:开始日期(格式:yyyy-MM-dd HH:mm:ss),endDT:结束日期(格式:yyyy-MM-dd HH:mm:ss), createDT:发行日期(首次上传时填写,格式:yyyy-MM-dd HH:mm:ss),fee:卡内余额(主要用于储值卡余额 其余为0),bIsDel:新增或修改是false,删除时true
  • 返回参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
3.2.5 推送卡(车)类,以及月租车费标准
  • 功能:系统中所有的车类。
  • 推送数据:
    参数名 含义 说明
    command 功能模块 cmdCardType
    parkingStr 车场编号 车场编号(中间件中设置)
    Info JSON(参数全部为字符串) sName:卡类名称(例:临时车A),fee:卡类金额(主要用于月租车,如每月300),sType:卡类编号(例:临时车)
  • 返回参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
3.3 云端接收API列表
云端接收API接口和本都接口接收API一样,不同的是云端接口数据是异步回调模式返回,而不是直接返回;云端API可用于在互联网云端即可进行相关功能操作,有返回数据的,通过本地端推送地址,异步回调推送到云端接收服务器, 回调地址即:本地端配置中的推送地址。调用地址为安装云端中间件服务器的外网IP地址+端口号,即http://外网IP:9512
3.3.1 获取卡类信息
  • 功能:通过该接口,获取所有卡类名称。
  • 接口:/CloudParkAPI/GetCardType。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
    data Json字符串 {}
    lists Json数组 null
  • 异步回调(本地中间件设置的推送地址):
    参数名 描述 说明
    command 功能模块 cmdCloudCardType
    parkingStr 车场编号 车场编号(中间件中设置)
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES(大写)否则为错误信息
    Info JSON(参数全部为字符串) sName:卡类名称(例:临时车A),fee:卡类金额(主要用于月租车,如每月300),sType:卡类编号(临时车)
3.3.2 获取停车费
  • 功能:调用该接口,获取车辆应收停车费(按照本地端设置的收费标准)。
  • 接口:/CloudParkAPI/GetStopFee。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    intime 入场时间 yyyy-MM-dd HH:mm:ss String(24) 必填
    outtime 出场时间 yyyy-MM-dd HH:mm:ss String(24) 必填
    cardType 车辆类型 例如:临时车A String(10) 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 1成功 其它失败
    messages 返回信息 成功为SUCCES
    data Json字符串 {}
    lists Json数组 null
  • 异步回调(本地中间件设置的推送地址):
    参数名 描述 说明
    command 功能模块 cmdCloudParkFee
    parkingStr 车场编号 车场编号(中间件中设置)
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES(大写)否则为错误信息
    Info JSON(参数全部为字符串) parkingFee:停车费(例:10元),remark:备注(例:川A00001)
3.3.3 增加或更改登记车信息
  • 功能:第三方系统增加或修改的登记车,同步到本地数据库,如果本地有该车即更新否则增加。这个接口可以不需要回调,回调消息与返回结果一致。
  • 接口:/CloudParkAPI/RegistPlate。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    plateNo 车牌号 例如:川A09090 String(12) 必填
    cardNo 登记编号 例如:C2222111 String(24) 必填
    cardType 车辆类型 例如:临时车A String(10) 必填
    startDT 开始日期 yyyy-MM-dd HH:mm:ss String(24) 必填
    endDT 到期日期 yyyy-MM-dd HH:mm:ss String(24) 必填
    fee 储值卡余额 0.00 (两位小数) decimal(18,2) 选填
    createDT 开卡日期 yyyy-MM-dd HH:mm:ss String(24) 选填
    yardParking 车场车位 例:A2-3-101 String(32) 选填
    sharedParkingNo 共享车位数 正整数 String(5) 选填
    personNo 车主编号 例:184522331 String(30) 选填
    personName 车主姓名 例:李四 String(30) 选填
    personPhone 车主电话 例:13882213333 String(20) 选填
    homeAddress 家庭住址 例:四川成都 String(100) 选填
    bIsDel 是否删除 true false bool 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
    data Json字符串 {}
    lists Json数组 null
  • 异步回调(本地中间件设置的推送地址):
    参数名 描述 说明
    command 功能模块 cmdCloudRegistPlate
    parkingStr 车场编号 车场编号(中间件中设置)
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES(大写)否则为错误信息
    Info JSON(参数全部为字符串) null
3.3.4 添加充值延期记录
  • 功能:第三方系统充值后,添加充值记录到智能云停车系统本地端数据库。这个接口可以不需要回调,回调消息与返回结果一致。
  • 接口:/CloudParkAPI/ChargeRecord。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    plateNo 车牌号 例如:川A09090 String(12) 必填
    cardNo 登记编号 例如:C222111 String(24) 必填
    cardType 车辆类型 例如:临时车A String(10) 必填
    endDT 到期日期 yyyy-MM-dd HH:mm:ss String(24) 可选
    fee 充值金额 如果车辆类型为储值车,该项必选。如:300.00(两位小数) decimal(18,2) 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
    data Json字符串 {}
    lists Json数组 null
  • 异步回调(本地中间件设置的推送地址):
    参数名 描述 说明
    command 功能模块 cmdCloudChargeRecord
    parkingStr 车场编号 车场编号(中间件中设置)
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES(大写)否则为错误信息
    Info JSON(参数全部为字符串) null
3.3.5 获取车道信息
  • 功能:获取停车场系统车道设置信息。
  • 接口:/CloudParkAPI/GetChannel。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
    data Json字符串 {}
    lists Json数组 null
  • 异步回调(本地中间件设置的推送地址):
    参数名 描述 说明
    command 功能模块 cmdCloudChannel
    parkingStr 车场编号 车场编号(中间件中设置)
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES(大写)否则为错误信息
    Info JSON(参数全部为字符串) ID:车道编号,sType:车道类型,sName:车道名称,VideoIP:摄像机IP,CtrlIP:控制机IP,BigSmall:大小车场
3.3.6 发送开闸命令
  • 功能:车辆已经被识别,但未返回开闸命令,等待下达开闸命令(目前是出口),标识是车场、车道名称和车牌号为判断标准。这个命令是配合3.2.2使用,单独使用无效。这个接口可以不需要回调,回调消息与返回结果一致。
  • 接口:/CloudParkAPI/OpenGate。
  • 输入参数:
    参数名 描述 说明 类型 是否必选
    appid 开发者编号 授权分发的开发者编号 String(32) 必填
    parkingStr 车场编号 车场编号(中间件中设置) String(32) 必填
    plateNo 车牌号 例:川A00001 String(12) 必填
    channelName 车道名称 例:出口车道1 String(100) 必填
    nonceStr 随机字符 不超过32位的随机字符串 String(32) 必填
    signType 注册类型 MD5 目前采用MD5 String(18) 必填
    sign 签名 按照2.3进行签名 String(32) 必填
  • 输出参数:
    参数名 描述 说明
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES
    data Json字符串 {“parkingFee”:00.00}
    lists Json数组 null
  • 异步回调(本地中间件设置的推送地址):
    参数名 描述 说明
    command 功能模块 cmdCloudOpenGate
    parkingStr 车场编号 车场编号(中间件中设置)
    code 返回代号 10001成功 其它见4说明
    messages 返回信息 成功为SUCCES(大写)否则为错误信息
    Info JSON(参数全部为字符串) null
四、返回信息代码
代码编号 说明
10001 返回成功。
10010 返回成功并开闸。
10011 返回成功等待开闸。
10012 返回成功,禁止放行。
10013 返回成功,已锁车。
40001 输入参数不完整。
40002 签名不正确。
40003 输入参数错误。
40004 添加更改数据库失败。
40005 处理失败。