diff --git a/Ylt/ms-task/src/main/java/com/charge/Test/TestJingYueShangMaoChengZhaJi.java b/Ylt/ms-task/src/main/java/com/charge/Test/TestJingYueShangMaoChengZhaJi.java index c044c75..1cb74f8 100644 --- a/Ylt/ms-task/src/main/java/com/charge/Test/TestJingYueShangMaoChengZhaJi.java +++ b/Ylt/ms-task/src/main/java/com/charge/Test/TestJingYueShangMaoChengZhaJi.java @@ -22,10 +22,8 @@ public class TestJingYueShangMaoChengZhaJi { jo.put("couponName", "充电减免"); jo.put("coupon_value", freeTime);//卷面值 分钟 | 分 jo.put("appid", appid);//应用编号 - jo.put("ts", System.currentTimeMillis());//时间戳 - jo.put("sign", SignUtils.paramsSign(jo, appSecret));//签名 - - System.out.println(System.currentTimeMillis()); + jo.put("ts", System.currentTimeMillis() / 1000);//时间戳 + jo.put("sign", SignUtils.paramsAnKuaiSign(jo, appSecret));//签名 // 发送 POST 请求并获取响应 String result = HttpUtil.createPost(url) .body(jo.toString()) // 将 JSON 对象转换为字符串作为请求正文 diff --git a/Ylt/ms-task/src/main/java/com/charge/task/controller/YltControllerForWx.java b/Ylt/ms-task/src/main/java/com/charge/task/controller/YltControllerForWx.java index 73f8222..16e083d 100644 --- a/Ylt/ms-task/src/main/java/com/charge/task/controller/YltControllerForWx.java +++ b/Ylt/ms-task/src/main/java/com/charge/task/controller/YltControllerForWx.java @@ -179,6 +179,26 @@ public class YltControllerForWx { //记录到数据库中闸机的流水记录 ym.recordDzLog(order_no, charge_plate_no, jo.toString(), result); return ResultVO.success(JSONObject.parseObject(result)); + } else if ("安快I".equals(name)) { + JSONObject jo = new JSONObject(); + jo.put("parkNo", parkId); + jo.put("plate", charge_plate_no);//车牌号 + jo.put("plate_color", 5);//车牌颜色,绿色 + jo.put("coupon_type", 1);//1固定时长券 + jo.put("couponName", "充电减免"); + jo.put("coupon_value", freeTime);//卷面值 分钟 | 分 + jo.put("appid", appId);//应用编号 + jo.put("ts", System.currentTimeMillis() / 1000);//时间戳 + jo.put("sign", SignUtils.paramsAnKuaiSign(jo, appSecret));//签名 + // 发送 POST 请求并获取响应 + String result = HttpUtil.createPost(url) + .body(jo.toString()) // 将 JSON 对象转换为字符串作为请求正文 + .header("version", "1.0.0") + .header("Content-Type", "application/json") // 设置请求头,指明内容类型为 JSON + .execute().body(); // 发送请求并获取响应体 + //记录到数据库中闸机的流水记录 + ym.recordDzLog(order_no, charge_plate_no, jo.toString(), result); + return ResultVO.success(JSONObject.parseObject(result)); } } return null; diff --git a/Ylt/ms-task/src/main/java/com/charge/util/SignUtils.java b/Ylt/ms-task/src/main/java/com/charge/util/SignUtils.java index db892d1..66a5d78 100644 --- a/Ylt/ms-task/src/main/java/com/charge/util/SignUtils.java +++ b/Ylt/ms-task/src/main/java/com/charge/util/SignUtils.java @@ -2,6 +2,7 @@ package com.charge.util; import com.alibaba.fastjson.JSONObject; import com.google.common.base.Joiner; + import java.nio.charset.StandardCharsets; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -45,6 +46,30 @@ public class SignUtils { return md5(temp).toUpperCase(); } + /** + * 功能:安快的闸机签名 + * + * @param requestBody + * @param appSecret + * @return + */ + public static String paramsAnKuaiSign(JSONObject requestBody, String appSecret) { + TreeMap params = new TreeMap<>(); + requestBody.entrySet().stream().filter( + p -> p.getValue() != null + && !(p.getValue() instanceof Map) + && !(p.getValue() instanceof Iterable)) + .forEach(p -> { + if (!p.getValue().equals("")) { + params.put(p.getKey(), p.getValue().toString()); + } + }); + //拼接appSecret + String temp = Joiner.on("&").withKeyValueSeparator("=").join(params).concat("&secret=").concat(appSecret); + String res = md5(temp); + return res; + } + /** * 对文本执行 md5 摘要加密, 此算法与 mysql,JavaScript生成的md5摘要进行过一致性对比. *