为了保证数据传输的安全,平台需对发送的内容做签名验证。
### **平台为接入合作方分配一个pid和key**
签名生成的通用步骤如下:
**第一步**,将所有发送的数据内非空参数值的参数按照参数名 ASCII 码从小到 大排序(字典序),使用 URL 键值对的格式(即 key1=value1&key2=value2...) 拼接成字符串 StringTemp。
特别注意以下重要规则 :
* 参数名ASCII码从小到大排序(字典序);
* 如果参数的值为空不参与签名;
* 参数名区分大小写;
* 传送的sign参数不参与签名,将生成的签名与该sign值作校验;
* 云平台可能增加字段,验证签名时必须支持增加的扩展字段;
**第二步**,在字符串 StringTemp 最后拼接上 Key得到 signTemp 字符串。
**第三步**,对 signTemp 进行 MD5 运算,再将得到的字符串所有字符转换为大 写,得到 sign 值 signValue。
### **举例说明:**
假设传送的参数如下:
pid = 123456
serviceName = enterNotify
timestamp = 1539571096
bizContent ={"enterTime":"2018-01-01 11:00:00","parkCode":"TEST/1P1","plateNum":"粤B12345"}
**第一步**:对参数按照参数名 ASCII 字典序排序,并按照 key=value 的格式拼接成字符串StringTemp ,如下: ********
bizContent={"enterTime":"2018-01-01 11:00:00","parkCode":"TEST/1P1","plateNum":"粤B12345"}&pid=123456&serviceName=enterNotify×tamp=1539571096
**第二步**:拼接密钥 Key: signTemp=StringTemp+"&key=45DC1F8604F940829E75D6A76595C299"
**第三步**:对 signTemp 进行 MD5 运算
sign=MD5(signTemp).toUpperCase()
**按照上述步骤,签名结果为: EE454BE0DE3D211559865DA33745E589**
- HTTP 对接文档
- 修订记录
- 一、概述
- 1.1 阅读对象
- 二、协议规则与安全规范
- 2.1 协议规则
- 2.2 安全规范
- 三、接入方需实现接口
- 3.1 入场信息上报
- 3.2 出场信息上报
- 3.3 预出场账单推送
- 3.4 预入场信息推送
- 四、开放接口
- 4.1 查询实时订单金额
- 4.2 支付结果通知
- 4.3 无牌车入场请求
- 4.4 获取固定车信息
- 4.5 固定车支付成功通知
- 4.6 查询车辆在场信息
- 4.7 下发优惠券
- 4.8 查询剩余车位数
- 4.9 黑名单管理
- 4.9.1 查询黑名单
- 4.9.2 添加黑名单
- 4.9.3 删除黑名单
- 4.10 车位组管理
- 4.10.1 查询所有车位组
- 4.10.2 分页查询车位组
- 4.10.3 添加车位组
- 4.10.4 修改车位组
- 4.10.5 删除车位组
- 4.11 车辆管理
- 4.11.1 分页查询所有车辆
- 4.11.2 添加车辆
- 4.11.3 修改车辆
- 4.11.4 删除车辆
- 4.11.5 车牌变更
- 4.11.6 充值延期
- 4.11.7 车辆冻结
- 4.11.8 车辆解冻
- 4.11.9 清空所有车辆
- 4.11.10 退款
- 4.12 平台控制进出场
- 4.13 场内车管理
- 4.13.1 场内车查询
- 4.13.2 场内车修改
- 4.13.3 场内车删除
- 4.13.4 场内车添加
- 五、返回码说明
- 六、附录
- 车辆类型字典
- 支付类型字典
- 缴费渠道说明
