测试环境全局变量(替换后面{{}}中的值)
key | value |
---|---|
host |
test.park.wx.91xft.cn |
socket类接口
总体描述
1、消息体的传输使用google的protobuf进行序列化
2、传送的内容格式为:
消息体长度(int类型 4个字节)+消息体类型编码(int类型4个字节)+消息体
3、MsgId:每个消息体都会有一个msgId,接入方必须保证自己的msgId唯一
4、消息体proto文件,见附件
5、响应编码见附录
消息体
客服端发送到服务端的消息体
客服端响应消息体 (clientResp.proto 消息体编码:2000)
当客服端收到服务端主动推送的消息体时(如支付回调),
需要对服务端做出响应,否则服务端会重复发送4次请求,
如果一直没有收到响应,服务端会默认为客服端没有收到该消息。
消息体结构
message ClientResp {
required string msgId = 1; //消息ID(和服务端请求的msgId一样)
required string code = 2; //响应编码
required string msg = 3; //响应消息
}
客服端心跳请求消息体 (heartbeatReq.proto 消息体编码:2010)
客服端登录以后,需要每隔一段时间(建议10-30秒)向服务端发送心跳检测包以检测连接是否正常,
如果连续3次以上没有收到服务端的响应,请重新连接服务端,并重新登录。
若服务端长时间没有收到客服端的心跳包,服务端会提示接入方的负责人。
消息体结构
message HeartbeatReq {
required string msgId = 1; //消息ID(客服端自己生成,并保证全局唯一)
}
客服端登录请求消息体 (loginReq.proto 消息体编码:2020)
客服端连接成功以后,
需要发送登录请求,说明自己是哪个车场,哪个岗亭,哪个车道等信息。
消息体结构
message LoginReq {
required string msgId = 1; //消息ID(客服端自己生成,并保证全局唯一)
required uint64 id = 2; //车场ID(平台分配的车场ID)
required string uuid = 3; //车场UUID(平台分配的车场UUID)
required string boxName = 4; //岗亭名字(在平台注册的岗亭名字)
required string gateName = 5; //车道名字(在平台注册的车场名字)
required uint64 type = 6; //车道类型 ,进口(1),出口(2)
}
场内扫码提前支付查询响应 (queryNeedPayMoneyResp.proto 消息体编码:2030)
场内提前扫码预支付时,
返回该订单或者车牌需要支付的金额,以及需要提前离场的时间。
消息体结构
message QueryNeedPayMoneyResp {
required string msgId = 1; //消息ID
required string code = 2; //响应编码
required string msg = 3; //响应消息
required string orderNo = 4; //停车订单号
required string carNo = 5; //车牌号
required uint64 totalAmount = 6; // 需要支付的总金额(单位分)
required string enterTime = 7; // 进场时间
required uint64 leaveTime = 8; // 需要多少时间内离场(单位分)
}
服务端发送到客服端的消息体
服务端响应消息体 (serverResp.proto 消息体编码:3000)
当服务端收到客服端主动推送的消息体时(如登录,心跳等),会对客服端做出响应。
消息体结构
message ServerResp{
required string msgId = 1; //消息ID(和客服端请求的msgId一样)
required string code = 2; //响应编码
required string msg = 3; //响应消息
}
支付完成消息体 (payFinishReq.proto 消息体编码:3010)
当用户完成支付以后,服务端会向客服端发送用户支付完成的消息体
消息体结构
message PayFinishReq {
required string msgId = 1; //消息ID(服务端生成,全局唯一)
required string boxName = 2; //岗亭名字
required string gateName = 3; //车道名字
required string orderNo = 4; //订单编号(该停车记录的订单号)
required string payChannel = 5; //支付渠道
required string payType = 6; //支付类型
required uint64 payAmount = 7; //实际支付金额(单位分)
required string outTradeNo = 8; //支付订单号
required uint64 totalAmount = 9; //应该需要支付总金额(单位分)
required uint64 discountAmount = 10; //优惠券减免的金额(如果使用了优惠券)
}
场内扫码提前支付查询请求 (queryNeedPayMoneyReq.proto 消息体编码:3020)
场内提前扫码预支付时,
查询订单(或者车牌)需要支付的金额等信息。
消息体结构
message QueryNeedPayMoneyReq {
required string msgId = 1; //消息ID
required string orderNo = 2; //停车订单号
required string carNo = 3; //车牌号
}
无牌车进场,同步虚拟车牌 (virtualCarNoSynReq.proto 消息体编码:3030)
无牌车进场的时候,用户扫码车道码,
生成虚拟车牌,并同步到停车场软件
消息体结构
message VirtualCarNoSynReq {
required string msgId = 1; //消息ID
required string carNo = 2; //虚拟车牌号
required string boxName = 3; //岗亭名
required string gateName = 4; //车道名
}
无牌车支付完成,请求出场消息体(virtualCarNoOutReq.proto 消息体编码:3050)
无牌车支付完成,请求出场
消息体结构
message VirtualCarNoOutReq {
required string msgId = 1; //消息ID
required string carNo = 2; //虚拟车牌号
required string boxName = 3; //岗亭名字
required string gateName = 4; //车道名字
required string orderNo = 5; //订单编号
required string payChannel = 6; //支付渠道
required string payType = 7; //支付类型
required uint64 payAmount = 8; //实际需要支付金额(单位分)
required string outTradeNo = 9; //支付订单号
required uint64 totalAmount = 10; //应该需要支付总金额(单位分)
required uint64 discountAmount = 11; //优惠券减免的金额(如果使用了优惠券)
}
月卡信息同步消息体(monthCardSynReq.proto 消息体编码:3040)
月卡信息同步
消息体结构
message MonthCardSynReq {
required string msgId = 1; //消息ID
required string userCode = 2; //用户唯一编号
required string userName = 3; //用户名
required string linkPhone = 4; //用户联系电话
required string address = 5; //住址
required uint64 parkingCount = 6; //用户拥有车位数
required string parkingNo = 7; //车位编号
required string cardName = 8; //月卡名称
required string carNo = 9; //车牌号码
required string startTime = 10; //月卡起始时间
required string endTime = 11; //月卡结束时间
required uint64 status = 12; //月卡状态【0:禁用;1:启用】
}
车道闸门开启消息体(openGateReq.proto 消息体编码:3060)
服务端主动向车场车道闸门发送开启命令的消息体
消息体结构
message OpenGateReq {
required string msgId = 1; // 消息ID
required uint64 parkingLotId = 2; // 停车场ID
required string boxName = 3; // 岗亭名字
required string gateName = 4; // 车道名字
required uint64 type = 5; // 车道类型(1-进口 2-出口)
required uint64 command = 6; // 开闸关闸(1-开闸 2-关闸)
}
月租车续费金额同步消息体(monthCardAmountSynReq.proto 消息体编码:3090)
服务端主动向车场发送月租车的续费金额的消息体
消息体结构
required string msgId = 1; //消息ID
required string carNo = 2; //车牌号码
required string cardName = 3; //月卡名称
required string orderNo = 4; // 充值订单号
required uint64 payCount = 5; // 购买数量
required uint64 payAmount = 6; // 支付金额
required string rechargeDate = 7; // 充值日期
required string extr = 8; // 其他(json字符串,做扩展用。例:{"operate":"续费"})
附录
响应编码
值 | 描述 |
---|---|
SUCCESS |
成功 |
ERROR |
失败 |
回调类接口
扫码支付回调
当用户扫码完成支付,并且设置了支付回调地址的时候,云停车平台会将支付完成的结果回调给对接方。对接方接到回到以后回复"SUCCESS"即可。
POST 由对接方提供回调地址
请求参数
参数名 | 类型 | 描述 |
---|---|---|
boxName |
string | 离场岗亭名字 |
gateName |
string | 离场车道名字 |
orderNo |
string | 停车订单号 |
carNo |
string | 车牌号码 |
payChannel |
string | 支付渠道 |
payType |
string | 支付方式 |
payAmount |
number | 支付金额(单位分) |
outTradeNo |
string | 支付订单号 |
返回示例
"SUCCESS"
主动调用类接口
时序图
调用接口规则
智享云停车平台接口采用http协议,如果没有特殊说明,使用post方式。
调用接口时,参数包括 uuid,random,以及params。
uuid为停车场的uuid(智享云平台分配),
random为随机数(建议时间戳+随机字符串),
params为AES加密(详情见附录-AES加密)的请求参数,加密的秘钥由智享云平台分配。
例如:某停车场的uuid为A, 调用某个接口需要的参数为B,C,D 那么参数加密的过程为:
step1:将请求参数拼接为json字符串{"B":"xx","C":"xx","D":"xx"},得到json字符串str
step2:将str进行AES加密,得到机密后的字符串str2=AES(str)
step3:请求接口的最终参数就为:uuid=A¶ms=str2&random=xxx
返回结果说明
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
code |
string | 结果编码(编码表见附录-返回结果code) |
msg |
string | 结果信息 |
result |
string | 调用接口结果 |
data |
string | 调用接口返回的数据 |
上传车辆进场数据(#1)
车辆进入车场时,将车辆入场信息上传到智享云平台
POST https://{{host}}/record/api/record/park/enter/upload
请求参数
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
parkingLotId |
number | 是 | 停车场ID(平台分配) | 23 |
carNo |
string | 是 | 车牌号码 | 湘A11111 |
orderNo |
string | 否 | 订单号 | 154986668615537eca8a02532(上传重复入场数据时,必须带上) |
enterTime |
string | 是 | 车辆进场时间(yyyy-MM-dd HH:mm:ss) | 2019-03-20 11:01:23 |
carType |
string | 是 | 车辆类型(可取值:大型车,小型车) | 小型车 |
gateName |
string | 是 | 进场车道名字(需要提前在平台登记) | 进口车道1 |
boxName |
string | 是 | 进场岗亭名字(需要提前在平台登记) | 东门岗亭 |
operatorName |
string | 是 | 操作员 | admin |
imgUrl |
string | 否 | 进场车辆图片(后面调用4.10接口补上,上传方式见附录:上传进出场图片) | http://files.91xft.cn/xft-parking-cloud/23/西门岗亭/2019-03-20/in/湘A12345_09:10:00.jpg |
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
"orderNo": "154986668615537eca8a02532"
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
orderNo |
string | 停车订单号 |
上传车辆离场数据(#2)
车辆行驶到车道口还未离场时,将车辆离场信息上传到智享云
POST https://{{host}}/record/api/record/park/out/upload
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
parkingLotId |
string | 是 | 停车场ID(平台分配) | 22 |
carNo |
string | 是 | 车牌号码 | 湘A11111 |
orderNo |
string | 否 | 停车订单号(进场时返回的订单号,如果不传,会生成新的订单号) | 154986668615537eca8a02532 |
enterTime |
string | 是 | 车辆进场时间(yyyy-MM-dd HH:mm:ss) | 2019-03-20 11:01:23 |
outTime |
string | 是 | 车辆离场时间(yyyy-MM-dd HH:mm:ss) | 2019-03-20 12:05:51 |
carType |
string | 是 | 车辆类型(可取值:大型车,小型车) | 小型车 |
gateName |
string | 是 | 离场车道名字(需要提前在平台登记) | 出口车道1 |
boxName |
string | 是 | 离场岗亭名字(需要提前在平台登记) | 东门岗亭 |
operatorName |
string | 否 | 操作员 | admin |
totalAmount |
number | 是 | 停车费(单位分) | 1000 |
imgUrl |
string | 否 | 离场车辆图片(后面调用4.10接口补上,上传方式见附录:上传进出场图片) | http://files.91xft.cn/xft-parking-cloud/23/西门岗亭/2019-03-20/out/湘A12345_09:10:00.jpg |
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
"orderNo": "154986668615537eca8a02532",
"errorCode":"",
"errorMsg":"",
"isAllow":true,
"payChannel":"WECHAT",
"payType":"WECHAT_PARKING",
"totalAomunt":1500,
"discountAmount":1000,
"outTradeNo":"1106011109397102593",
"payAmount":500
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
orderNo |
string | 停车订单号 |
errorCode |
string | 错误编码(如果有错误) |
errorMsg |
string | 错误信息(如果有错误) |
isAllow |
boolean | 是否允许放行(如果为true说明该车辆已经完成支付可以直接放行) |
payChannel |
string | 支付渠道 |
payType |
string | 支付方式 |
totalAomunt |
number | 应付总金额(单位分) |
discountAmount |
number | 减免的金额(如果有通过停车券减免了金额,单位分) |
outTradeNo |
string | 无感订单号(如果支付方式为无感) |
payAmount |
number | 实际需要支付的金额(单位分) |
确认车辆离场订单 (#3)
主动确认车辆离场订单的收费方式
POST https://{{host}}/record/api/record/park/confirm
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
orderNo |
string | 是 | 停车订单号 | 154986668615537eca8a02532 |
payChannel |
string | 是 | 支付渠道 | CASH |
payType |
string | 是 | 支付方式 | CASH |
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
"orderNo": "154986668615537eca8a02532",
"errorCode":"",
"errorMsg":"",
"payChannel":"WECHAT",
"payType":"WECHAT_PARKING",
"totalAmount":1500,
"discountAmount":1000,
"payAmount":500
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
orderNo |
string | 停车订单号 |
errorCode |
string | 错误编码(如果有错误) |
errorMsg |
string | 错误信息(如果有错误) |
payChannel |
string | 支付渠道 |
payType |
string | 支付方式 |
totalAmount |
number | 应付总金额(单位分) |
discountAmount |
number | 减免的金额(如果有通过停车券减免了金额,单位分) |
payAmount |
number | 实际需要支付的金额(单位分) |
查询车辆离场订单信息(#4)
查询车辆离场的订单信息(用来确定订单支付状态)
POST https://{{host}}/record/api/record/park/query
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
orderNo |
string | 否 | 停车订单号(如果不传该字段,需要传下面所有字段) | 154986668615537eca8a02532 |
parkingLotId |
number | 否 | 停车场ID(平台分配) | 22 |
carNo |
string | 否 | 车牌号码 | 湘A11111 |
enterTime |
string | 否 | 车辆进场时间(yyyy-MM-dd HH:mm:ss) | 2019-03-20 11:01:23 |
outTime |
string | 否 | 车辆离场时间(yyyy-MM-dd HH:mm:ss) | 2019-03-20 12:05:51 |
carType |
string | 否 | 车辆类型(可取值:大型车,小型车) | 小型车 |
gateName |
string | 否 | 离场车道名字(需要提前在平台登记) | 出口车道1 |
boxName |
string | 否 | 离场岗亭名字(需要提前在平台登记) | 东门岗亭 |
totalAmount |
number | 否 | 停车费(单位分) | 1000 |
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
"orderNo": "154986668615537eca8a02532",
"errorCode":"",
"errorMsg":"",
"isAllow":true,
"payChannel":"WECHAT",
"payType":"WECHAT_PARKING",
"totalAmount":1500,
"discountAmount":1000,
"outTradeNo":"1106011109397102593",
"payAmount":500
}
}
返回参数
参数名 | 类型 | 描述 |
---|---|---|
orderNo |
string | 停车订单号 |
errorCode |
string | 错误编码(如果有错误) |
errorMsg |
string | 错误信息(如果有错误) |
isAllow |
string | 是否允许放行(如果为true说明该车辆已经完成支付可以直接放行) |
payChannel |
string | 支付渠道 |
payType |
string | 支付方式 |
totalAmount |
number | 应付总金额(单位分) |
discountAmount |
number | 减免的金额(如果有通过停车券减免了金额,单位分) |
outTradeNo |
string | 无感订单号(如果支付方式为无感) |
payAmount |
number | 实际需要支付的金额(单位分) |
上传车辆进出场的离线数据 (#5)
<p>当网络出现问题时,先将数据离线保存到本地,等到有网络时再将离线数据上传到智享云</p>
POST https://{{host}}/record/api/record/park/offline
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
parkingLotId |
number | 是 | 停车场ID(平台分配) | 22 |
recordType |
number | 是 | 停车记录类型(1:进场;2:出场,默认出场) | 2 |
carNo |
string | 是 | 车牌号码 | 湘A11111 |
orderNo |
string | 是 | 停车订单号(进场时返回的订单号,如果不传,会生成新的订单号) | 154986668615537eca8a02532 |
enterTime |
string | 是 | 车辆进场时间(yyyy-MM-dd HH:mm:ss) | 2019-03-20 11-01:23 |
outTime |
string | 否 | 车辆离场时间(yyyy-MM-dd HH:mm:ss)【上传出场的离线数据时必传】 | 2019-03-20 12-05:51 |
carType |
string | 是 | 车辆类型(可取值:大型车,小型车) | 小型车 |
gateName |
string | 是 | 离场车道名字(需要提前在平台登记) | 出口车道1 |
boxName |
string | 是 | 离场岗亭名字(需要提前在平台登记) | 东门岗亭 |
operatorName |
string | 是 | 操作员 | admin |
totalAmount |
number | 否 | 停车费(单位分,车辆实际支付的金额)【上传出场的离线数据时必传】 | 1000 |
imgUrl |
string | 是 | 离场车辆图片(后面调用4.10接口补上,上传方式见附录:上传进出场图片) | http://files.91xft.cn/xft-parking-cloud/23/西门岗亭/2019-03-20/out/湘A12345_09:10:00.jpg |
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
"orderNo": "15615398737497d959d161845"
}
}
获取上传车辆进出场图片token (#6)
智享云使用的七牛云上传服务(客服端直传七牛云模式)。
通过本接口获取上传七牛云的token,然后根据自己的语言在七牛云的官网选择
上传的SDK进行文件上传。
上传文件的格式为:/【车场ID】/【岗亭名字】/【yyyy-MM-dd】/【in(out)】/【车牌】【HHmmss】.jpg
上传成功后会获取到文件的全路径。
七牛云SDK地址:https://developer.qiniu.com/kodo/sdk/1255/cpp
POST https://{{host}}/record/api/upload-file/getUploadToken
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
parkingLotId |
number | 是 | 停车场ID(平台分配) | 22 |
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
"expireTime": 3700,
"token": "epx-FQR0_yjtM_Cp9nYJhop2u9qOh9cDS7UuMxKJ:ViAzpy_gOIgFRt_fhriAfEKMGjg=:eyJzY29wZSI6InhmdC1wYXJraW5nLWNsb3VkIiwicmV0dXJuQm9keSI6IntcImtleVwiOlwiaHR0cDovL3BvNmtzZXFqaS5ia3QuY2xvdWRkbi5jb20vJChrZXkpXCIsXCJoYXNoXCI6XCIkKGV0YWcpXCJ9IiwiZGVhZGxpbmUiOjE1NTM4NDgzMjZ9"
}
}
返回参数
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
token |
string | 是 | 图片上传的token | epx-FQR0xxx |
expireTime |
number | 是 | token过期时间(单位秒) | 3700 |
上传车辆进出场图片 (#7)
当图片上传完七牛云以后,需要将图片补到相关的停车记录上面(详情流程请见附录图片上传)
POST https://{{host}}/record/api/record/park/imgUrl/upload
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
parkingLotId |
number | 是 | 停车场ID(平台分配) | 22 |
type |
number | 是 | 记录类型 (1-进场 2-离场) | 1 |
orderNo |
String | 否 | 停车订单号(与carNo,enterTime,outTime必须传一组) | 154986668615537eca8a02532 |
carNo |
String | 否 | 车牌号 | 湘A12345 |
enterTime |
String | 否 | 车辆进场时间(yyyy-MM-dd HH:mm:ss) | 2019-05-05 12:20:20 |
outTime |
String | 否 | 车辆离场时间(yyyy-MM-dd HH:mm:ss) | 2019-05-05 13:30:30 |
imgUrl |
String | 是 | 车辆进出场图片 | http://files.91xft.cn/xft-parking-cloud/23/西门岗亭/2019-03-20/out/湘A12345_09:10:00.jpg |
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
"orderNo": "154986668615537eca8a02532",
"errorCode":"",
"errorMsg":""
}
}
返回参数
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
orderNo |
string | 否 | 停车记录订单号 | 154986668615537eca8a02532 |
errorCode |
String | 否 | 错误编码 | 4101 |
errorMsg |
String | 否 | 错误信息 | 无效的参数 |
被扫支付授权码支付 (#8)
当用户在车道需要付款时,使用机器人扫用户出示的付款码完成支付放行
POST https://{{host}}/pay/api/pay/barCode
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
parkingLotId |
number | 是 | 停车场ID(平台分配) | 22 |
orderNo |
String | 是 | 停车订单号 | 154986668615537eca8a02532 |
payChannel |
String | 是 | 支付授权码渠道(WECHAT,ALIPAY) | |
authCode |
String | 是 | 支付授权码 | 2019-05-05 12:20:20 |
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
"orderNo": "154986668615537eca8a02532",
"state":"00",
"payChannel":"WECHAT",
"payType":"WECHAT_BAR_CODE_PAY",
"outTradeNo":"1549866683qc537eca8a02532",
"totalAmount":"2000",
"payAmount":"1000",
"discountAmount":"1000"
}
}
返回参数
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
orderNo |
string | 是 | 停车记录订单号 | 154986668615537eca8a02532 |
state |
String | 是 | 订单状态(具体值见附录"订单状态") | 00 |
payChannel |
String | 是 | 支付渠道 | |
payType |
String | 是 | 支付方式 | WECHAT_BAR_CODE_PAY |
outTradeNo |
String | 是 | 支付订单号 | 1549866683qc537eca8a02532 |
totalAmount |
int | 是 | 停车订单总金额(分) | 2000 |
payAmount |
int | 是 | 实际支付金额(分) | 1000 |
discountAmount |
int | 是 | 优惠券减免的金额(分) | 1000 |
errorCode |
String | 否 | 错误编码 | 4001 |
errorMsg |
String | 否 | 错误信息 | 无效的参数 |
撤销支付 (#9)
当用户撤销支付时,调用该接口
POST https://{{host}}/pay/api/pay/cancel
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
parkingLotId |
number | 是 | 停车场ID(平台分配) | 22 |
orderNo |
String | 是 | 停车订单号 | 154986668615537eca8a02532 |
outTradeNo |
String | 是 | 支付订单号 | 15498662a0ec128ca8a02532 |
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
"errorCode": "0000",
"errorMsg":"成功",
"orderNo": "停车记录订单号",
"outTradeNo":"支付订单号"
}
}
返回参数
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
orderNo |
string | 是 | 停车记录订单号 | 154986668615537eca8a02532 |
outTradeNo |
String | 是 | 支付订单号 | 1549866683qc537eca8a02532 |
errorCode |
String | 是 | 错误编码 | 0000 |
errorMsg |
String | 是 | 错误信息 | 成功 |
同步月租车 (#10)
同步月租车
POST https://{{host}}/bms/api/month/card/car/sync
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
parkingLotId |
number | 是 | 停车场ID(平台分配) | 22 |
userCode |
String | 是 | 用户编号 | ZS-00001 |
userName |
String | 是 | 用户名称 | 正式服-测试001 |
linkPhone |
String | 是 | 联系电话 | 18833332222 |
address |
String | 是 | 居住地址 | A-1栋 902 |
parkingCount |
number | 是 | 用户拥有的车位数量 | 1 |
parkingNo |
String | 是 | 车位编号 | 1562314448857c750c8a8 |
cardName |
String | 是 | 月卡名称 | 月卡A |
carNo |
String | 是 | 车牌号码 | 湘A12345 |
startTime |
String | 是 | 月卡开始时间 | 2019-07-08 11:21:20 |
endTime |
String | 是 | 月卡开始时间 | 2019-07-08 11:21:20 |
cardCarStatus |
number | 是 | 月卡车状态 | 1(0:禁用;1:启用) |
返回示例
{
"code": "0000",
"msg": "操作成功",
"result": true,
"data": {
"errorCode": "0000",
"errorMsg":"成功"
}
}
返回参数
参数名 | 类型 | 必需 | 描述 | 示例 |
---|---|---|---|---|
errorCode |
String | 是 | 错误编码 | 0000 |
errorMsg |
String | 是 | 错误信息 | 成功 |
附录
AES加密
AES加密:
加密模式:ECB
填充模式:pkcs5padding
数据块:128位
输出字符串转码方式:HEX ,并且全部大写
字符集:UTF-8
验证地址:http://tool.chacuo.net/cryptaes
返回结果code
值 | 描述 |
---|---|
0000 |
成功 |
4000 |
失败 |
4001 |
停车券过期 |
4002 |
停车券领完 |
4003 |
停车券已被领取 |
4004 |
停车券有问题 |
4100 |
无效的订单号 |
4101 |
无效的参数 |
4200 |
重复数据 |
4300 |
查不到记录 |
4010 |
用户未签约无感支付 |
4011 |
车场未开通无感支付 |
支付渠道payChannel
值 | 描述 |
---|---|
NO_PAY |
未支付 |
CASH |
现金支付 |
COUPON |
停车券支付(停车券能够全部抵扣车费) |
WECHAT |
微信支付 |
ALIPAY |
支付宝支付 |
支付类型payType
值 | 描述 |
---|---|
NO_PAY |
未支付 |
CASH |
现金支付 |
COUPON |
停车券支付(停车券能够全部抵扣车费) |
WECHAT_ON_SITE_SCAN_CODE |
微信场内扫码提前支付 |
WECHAT_GATE_WAY_STATIC_CODE |
微信车道静态码支付 |
WECHAT_PARKING |
微信无感支付 |
ALIPAY_PARKING |
支付宝无感支付 |
ALIPAY_GATE_WAY_STATIC_CODE |
支付宝车道静态码支付 |
ALIPAY_ON_SITE_SCAN_CODE |
支付宝场内扫码提前支付 |
WECHAT_BAR_CODE_PAY |
微信付款码支付 |
ALIPAY_BAR_CODE_PAY |
支付宝付款码支付 |
订单状态
值 | 描述 |
---|---|
00 |
支付成功 | c
01 |
支付失败 |
06 |
已撤销 |
98 |
已关闭 |
99 |
支付超时 |
上传车辆进出场图片
准备工作:
1、进入七牛云官网(https://www.qiniu.com/)
2、选择服务与支持-开发者中心(https://developer.qiniu.com/?ref=www.qiniu.com)
3、选择SDK & 工具-官方 SDK(https://developer.qiniu.com/sdk#official-sdk),在对象存储中选择相应的开发语言。
实现流程:
1、调用获取上传车辆进出场图片token接口(4.9)获取上传的token
2、参见七牛云的SDK文档中的简单上传方法,上传图片,并获取返回的图片地址
3、调用上传车辆进出场图片接口(4.10),将相应的数据上传至平台