@zushuxin
2017-12-22T03:41:05.000000Z
字数 6710
阅读 126
北京停简单信息技术有限公司
xlshlr
接口如无特殊说明,遵照以下规范。
1. 时间格式约定 "yyyy-MM-dd HH:mm:ss SSS"、"yyyy-MM-dd HH:mm:ss"、"yyyy-MM-dd"、"HH:mm:ss"
2. 金额格式统一为:(最大9位).(最多2位)。需要通过此正则表达式^((([1-9]{1}\d{0,9}))|([0]{1}))((\.(\d){2}))?$。
3. 需要分页时,分页参数start、limit都必须传递,传递一个不会生效
4. 请求参数均为json格式
设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。 特别注意以下重要规则:
* 参数名ASCII码从小到大排序(字典序);
* 参数名区分大小写;
* sign和signType和空值参数不参与签名
* 传递参数的值中如果存在特殊字符(如:&、@等),那么该值需要做URL Encoding,这样请求接收方才能接收到正确的参数。此时,待签名数据应该是原始值而不是encoding之后的值。 举例:
例:假设传送的参数如下: appid: tjd930ea5d5a258f4f charset:utf-8 service:tcwindows.Park.getParkInfo timestamp:2016-04-01 12:11:11 version:1.0
1. 对参数按照key=value的格式,并按照参数名ASCII字典序排序如下: stringA="appid=tjd930ea5d5a258f4f&charset=utf-8&service=tcwindows.Park.getParkInfo=1000×tamp=2016-04-01 12:11:11&version=1.0&.............";
2. 拼接API密钥: stringSignTemp="stringA192006250b4c09247ec02edce69f6a2d"
3. md5签名得到最终sign sign=MD5(stringSignTemp)="9A0A8659F005D6984697E2CA0A9CF3B7"
| 参数 | 类型 | 长度 | 是否必须 | 名称 | 备注 |
|---|---|---|---|---|---|
| version | string | Y | 调用的接口版本 | 固定为:1.0 | |
| sign | string | Y | 请求参数的签名串 | 详见签名 | |
| partner | string | Y | 合作者key | ||
| timestamp | string | Y | 发送请求时间 | 格式" yyyy-MM-dd HH:mm:ss" | |
| charset | string | Y | 字符集 | 如utf-8,gbk | |
| signType | string | Y | 签名类型 | 目前仅支持md5 | |
| service | string | Y | 接口名称 | 需要调用的接口名称 |
4. 响应参数列表
| 参数 | 类型 | 长度 | 是否必须 | 名称 | 备注 |
|---|---|---|---|---|---|
| timestamp | string | Y | 响应时间 | 格式"yyyy-MM-dd HH:mm:ss" | |
| returnCode | string | Y | 开放平台返回状态码 | T代表成功,F代表失败 | |
| returnMsg | string | Y | 开放平台返回信息 | OK代表成功,其它为开放平台失败信息 | |
| isSuccess | string | Y | 实际业务处理结果 | true代表成功,false代表失败 | |
| msg | string | N | 实际业务处理结果备注 | 业务失败时会描述失败原因 |
服务器调用事例:
String md5Key="e1bbd6c374dc428697fe4a6d9fb16dd5"; --开发者秘钥SortedMap<String, String> map = new TreeMap<String, String>();map.put("signType","md5");map.put("partner","ef4f7deba25941fcab5709f1f865ca3c");map.put("service","tcpark.pmPark.getParkInfoListByGeo");map.put("charset","utf-8");map.put("version","1.0");map.put("start","0");map.put("limit","5");map.put("timestamp", DateUtils.currentDatetime());//格式:yyyy-MM-dd HH:mm:ss/*签名*/String sign= SignUtil.md5Sign(map, md5Key, "UTF-8");String url="http://prep.tingjiandan.com/openapi/gateway"; --测试环境开放平台访问地址map.put("sign",sign);//请求参数需要转为json格式String result= HttpClient.sendRequestByPost(url, JsonUtil.objectToJson(map), true);System.out.println(result);
| 参数 | 类型 | 长度 | 是否必须 | 名称 | 备注 |
|---|---|---|---|---|---|
| longitude | string | Y | 停车场经度 | ||
| latitude | string | Y | 停车场纬度 | ||
| scope | string | Y | 查询停车场的地理范围限制,单位:m,不超过10000m |
* 响应参数列表
| 参数 | 类型 | 长度 | 是否必须 | 名称 | 备注 |
|---|---|---|---|---|---|
| timestamp | string | 响应时间 | |||
| returnCode | string | 响应码 | |||
| returnMsg | string | 响应描述 | |||
| isSuccess | string | 请求是否成功 | true 成功,false 失败 | ||
| parkList | array{object} | 停车场列表 | |||
| pmParkId | string | 停车场ID | |||
| parkName | string | 停车场名称 | |||
| provinnce | string | 所在省份 | |||
| city | string | 所在城市 | |||
| district | string | 所在区县 | |||
| parkType | string | 停车场类型 | 停车场车位类型(1、占道 2、路外开放 3、路外封闭 4、地下) | ||
| category | string | 停车场收费类型 | 0、免费 1、收费 2、限免 | ||
| isOnlinePay | string | 是否支持在线支付 | 0是,1否 | ||
| standardCount | string | 停车场备案车位数 | |||
| maxCount | string | 停车场划线车位数 | |||
| restCount | string | 停车场剩余车位数 | |||
| address | string | 地址 | |||
| longitude | string | 停车场经度-BD09坐标(百度坐标) | |||
| latitude | string | 停车场纬度-BD09坐标(百度坐标) | |||
| wLongitude | string | 停车场经度-GCJ02坐标(火星坐标) | |||
| wLatitude | string | 停车场纬度-GCJ02坐标(火星坐标) | |||
| openTime | string | 停车场开放时间 | 格式hhmmss(070000) | ||
| closeTime | string | 停车场关闭时间 | 格式hhmmss(070000) | ||
| parkExits | array{object} | 出入口列表 | |||
| longitude | string | 停车场出入口经度-BD09坐标(百度坐标) | |||
| latitude | string | 停车场出入口纬度-BD09坐标(百度坐标) | |||
| wLongitude | string | 停车场出入口经度-GCJ02坐标(火星坐标) | |||
| wLatitude | string | 停车场出入口纬度-GCJ02坐标(火星坐标) | |||
| exitNo | string | 停车场出入口名称 | |||
| exitType | string | 停车场出入口类型 | 0、出口 1、入口 2、出入口 | ||
| parktolls | array{object} | 停车场收费规则集合 | |||
| carNumColor | string | 车牌号颜色 | blue 蓝色,black 黑色,yellow 黄色 | ||
| dayFeeStartTime | string | 白天收费开始时间 | |||
| dayFeeEndTime | string | 白天收费结束时间 | |||
| dayFirstTime | string | 日间首个收费区间时长 | 单位:分钟 | ||
| dayFirstHour | string | 日间首个收费区间计费 | 单位:元 | ||
| dayFirstMinTime | string | 日间首个收费区间内最小收费区间时长 | 单位:分钟 | ||
| dayFirstMinAmount | string | 日间首个收费区间内最小收费区间计费 | 单位:元 | ||
| dayOtherHour | string | 日间首个收费区间外计费 | 单位:元 | ||
| dayOtherMinTime | string | 日间首个收费区间外最小收费区间时长 | 单位:分钟 | ||
| dayOtherMinAmount | string | 日间首个收费区间外最小收费区间计费 | 单位:元 | ||
| nightFeeStartTime | string | 夜间收费开始时间 | |||
| nightFeeEndTime | string | 夜间收费结束时间 | |||
| nightFirstTime | string | 夜间首个收费区间时长 | 单位:分钟 | ||
| nightFirstHour | string | 夜间首个收费区间计费 | 单位:元 | ||
| nightFirstMinTime | string | 夜间首个收费区间内最小收费区间时长 | 单位:分钟 | ||
| nightFirstMinAmount | string | 夜间首个收费区间内最小收费区间计费 | 单位:元 | ||
| nightOtherHour | string | 夜间首个收费区间外计费 | 单位:元 | ||
| nightOtherMinTime | string | 夜间首个收费区间外最小收费区间时长 | 单位:分钟 | ||
| nightOtherMinAmount | string | 夜间首个收费区间外最小收费区间计费 | 单位:元 | ||
| maxAmount | string | 收费金额上限 | 单位:元 | ||
| dayFreeTime | string | 日间免费停车时长 | 单位:分钟 | ||
| dayIntervalFreeTime | string | 日间收费区间免费停车时长 | 单位:分钟 | ||
| nightFreeTime | string | 夜间免费停车时长 | 单位:分钟 | ||
| nightIntervalFreeTime | string | 夜间收费区间免费停车时长 | 单位:分钟 |
* 响应参数事例:
{"timestamp": "2017-05-11 16:00:38 255","returnCode": "T","returnMsg": "OK","isSuccess": "true","parkList": [{"pmParkId": "f716ab908b4a4c5b955b16baae844a2c","parkName": "青岛市中国海洋大学鱼山校区停车场","category": "1","isOnlinePay": "0","maxCount": "2500","standardCount": "2500","restCount": "587","provinnce": "山东省","city": "青岛市","district": "市南区","address": "市南区鱼山路5号","longitude": "120.341766","latitude": "36.069068","parkType": "3","wLongitude": "120.335299","wLatitude": "36.062971","openTime": "070000","closeTime": "235959","parktolls": [{"carNumColor": "blue","dayFeeStartTime": "070000","dayFeeEndTime": "210000","dayFirstTime": "60","nightFirstTime": "60","dayFirstHour": "4.0","dayFirstMinTime": "30","dayFirstMinAmount": "2.0","dayOtherHour": "4.0","dayOtherMinTime": "30","dayOtherMinAmount": "2.0","nightFeeStartTime": "210000","nightFeeEndTime": "070000","nightFirstHour": "4.0","nightFirstMinTime": "30","nightFirstMinAmount": "2.0","nightOtherHour": "4.0","nightOtherMinTime": "30","nightOtherMinAmount": "2.0","dayFreeTime": "0","dayIntervalFreeTime": "0","nightFreeTime": "0","nightIntervalFreeTime": "0","maxAmount": "0.0"}],"parkExits": [{"exitNo": "南门出口","exitType": "0","longitude": "120.341766","latitude": "36.069068","wLongitude": "120.335299","wLatitude": "36.062971"},{"exitNo": "南门进口","exitType": "1","longitude": "120.341766","latitude": "36.069068","wLongitude": "120.335299","wLatitude": "36.062971"},{"exitNo": "五号门出口","exitType": "0","longitude": "120.341766","latitude": "36.069068","wLongitude": "120.335299","wLatitude": "36.062971"}]},{"pmParkId": "b57db46803364c7cab04722aaa448656","parkName": "青岛市红岛路31号停车场","category": "1","isOnlinePay": "0","maxCount": "100","standardCount": "100","restCount": "100","provinnce": "山东省","city": "青岛市","district": "市南区","address": "青岛市市南区红岛路31号","longitude": "120.345178","latitude": "36.073369","parkType": "3","wLongitude": "120.338733","wLatitude": "36.067213","openTime": "070000","closeTime": "235959","parktolls": [{"carNumColor": "blue","dayFeeStartTime": "070000","dayFeeEndTime": "210000","dayFirstTime": "60","nightFirstTime": "60","dayFirstHour": "4.0","dayFirstMinTime": "60","dayFirstMinAmount": "4.0","dayOtherHour": "4.0","dayOtherMinTime": "60","dayOtherMinAmount": "4.0","nightFeeStartTime": "210000","nightFeeEndTime": "070000","nightFirstHour": "4.0","nightFirstMinTime": "60","nightFirstMinAmount": "4.0","nightOtherHour": "4.0","nightOtherMinTime": "60","nightOtherMinAmount": "4.0","dayFreeTime": "0","dayIntervalFreeTime": "0","nightFreeTime": "0","nightIntervalFreeTime": "0","maxAmount": "80.0"}],"parkExits": [{"exitNo": "停车场出入口","exitType": "2","longitude": "120.345178","latitude": "36.073369","wLongitude": "120.338733","wLatitude": "36.067213"}]}]}