From 2d25e2703cf90f5326765dab9938b52f64ada345 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com>
Date: Tue, 13 Aug 2024 09:14:53 +0800
Subject: [PATCH] 'commit'
---
ZhuQue/pom.xml | 7 +-
.../com/dsideal/ZhuQue/Util/SignUtils.java | 83 ++++++++++++++++++
.../ZhuQue/Ylt/Controller/YltController.java | 18 ++--
.../dsideal/ZhuQue/Ylt/Model/YltModel.java | 10 ++-
...外统一标准接口_充电桩抵扣.docx | Bin 0 -> 162 bytes
...特收到的需求、分析与现状.docx | Bin 564946 -> 565203 bytes
...标准接口(收费系统)文档254.docx | Bin 0 -> 162 bytes
7 files changed, 104 insertions(+), 14 deletions(-)
create mode 100644 ZhuQue/src/main/java/com/dsideal/ZhuQue/Util/SignUtils.java
create mode 100644 业务梳理/~$对外统一标准接口_充电桩抵扣.docx
create mode 100644 资料/~$对外统一标准接口(收费系统)文档254.docx
diff --git a/ZhuQue/pom.xml b/ZhuQue/pom.xml
index 93afff8..daa0b8b 100644
--- a/ZhuQue/pom.xml
+++ b/ZhuQue/pom.xml
@@ -75,7 +75,12 @@
2.4
jdk15
-
+
+
+ com.google.guava
+ guava
+ 21.0
+
diff --git a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Util/SignUtils.java b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Util/SignUtils.java
new file mode 100644
index 0000000..94b8e46
--- /dev/null
+++ b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Util/SignUtils.java
@@ -0,0 +1,83 @@
+package com.dsideal.ZhuQue.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;
+import java.util.Map;
+import java.util.TreeMap;
+
+/**
+ * 签名工具
+ *
+ * @author keytop
+ * @date 2020/3/6
+ */
+public class SignUtils {
+ /**
+ * 参数签名
+ * 示例:
+ * 参数对象:{"amount":100,"orderNo":"闽C12345","payTime":"2020-03-06 10:57:22","freeDetail":"[{\"code\":\"\",\"money\":100,\"time\":0,\"type\":0}]","paySource":"85d15350778b11e9bbaa506b4b2f6421","outOrderNo":"T20200306124536001","parkId":"1000001","payableAmount":200,"reqId":"5be4e3e6d5704a7d91ccbd9731d970f5","payType":1006,"payMethod":6,"appId":"85d15350778b11e9bbaa506b4b2f6421","freeTime":0,"paymentExt":"{\"deviceNo\":\"123456\"}","freeMoney":100,"ts":1583744086841}
+ * url拼接:amount=100&freeDetail=[{"code":"","money":100,"time":0,"type":0}]&freeMoney=100&freeTime=0&orderNo=闽C12345&outOrderNo=T20200306124536001&parkId=1000001&payMethod=6&paySource=85d15350778b11e9bbaa506b4b2f6421&payTime=2020-03-06 10:57:22&payType=1006&payableAmount=200&paymentExt={"deviceNo":"123456"}&reqId=5be4e3e6d5704a7d91ccbd9731d970f5&ts=1583744086841&EED96C219E83450A
+ * 签名结果:B19F7863ADCC8B5442A757AC7B90F6AC
+ *
+ * @param requestBody 参数对象
+ * @param appSecret 秘钥
+ * @return
+ */
+ public static String paramsSign(JSONObject requestBody, String appSecret) {
+ TreeMap params = new TreeMap<>();
+ //过滤掉key,appId字段,空属性及Map或List等复杂对象
+ requestBody.entrySet().stream().filter(
+ p -> !"key".equals(p.getKey())
+ && !"appId".equals(p.getKey())
+ && 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("&").concat(appSecret);
+ return md5(temp).toUpperCase();
+ }
+
+ /**
+ * 对文本执行 md5 摘要加密, 此算法与 mysql,JavaScript生成的md5摘要进行过一致性对比.
+ *
+ * @param plainText
+ * @return 返回值中的字母为小写
+ */
+ private static String md5(String plainText) {
+ if (null == plainText) {
+ plainText = "";
+ }
+ String mD5Str = null;
+ try {
+ // JDK 支持以下6种消息摘要算法,不区分大小写
+ // md5,sha(sha-1),md2,sha-256,sha-384,sha-512
+ MessageDigest md = MessageDigest.getInstance("MD5");
+ md.update(plainText.getBytes(StandardCharsets.UTF_8));
+ byte[] b = md.digest();
+ int i;
+ StringBuilder builder = new StringBuilder(32);
+ for (byte value : b) {
+ i = value;
+ if (i < 0) {
+ i += 256;
+ }
+ if (i < 16) {
+ builder.append("0");
+ }
+ builder.append(Integer.toHexString(i));
+ }
+ mD5Str = builder.toString();
+ } catch (NoSuchAlgorithmException e) {
+ e.printStackTrace();
+ }
+ return mD5Str;
+ }
+}
diff --git a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Controller/YltController.java b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Controller/YltController.java
index 1e198fa..4768e84 100644
--- a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Controller/YltController.java
+++ b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Controller/YltController.java
@@ -4,6 +4,7 @@ import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSONObject;
import com.dsideal.ZhuQue.Interceptor.IsLoginInterface;
import com.dsideal.ZhuQue.Util.CommonUtil;
+import com.dsideal.ZhuQue.Util.SignUtils;
import com.dsideal.ZhuQue.Ylt.Model.YltModel;
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
@@ -43,15 +44,14 @@ public class YltController extends Controller {
@Before({POST.class})
@IsLoginInterface({})
// 非指定闸机场地
- // http://10.10.21.20:8888/ZhuQue/Ylt/SyncChargePilePay?order_id=1
+ // http://10.10.21.20:8888/ZhuQue/Ylt/SyncChargePilePay?order_no=2020092315154430479
// 科拓闸机场地
- // http://10.10.21.20:8888/ZhuQue/Ylt/SyncChargePilePay?order_id=248933
+ // http://10.10.21.20:8888/ZhuQue/Ylt/SyncChargePilePay?order_no=2022012911045715187
public void SyncChargePilePay(String order_no) {
//根据订单号获取到第三方方面提供的车场信息
Record thirdPartyStation = ym.getThirdPartyStation(order_no);
if (thirdPartyStation == null) {
- Record record = new Record();
- renderJson(CommonUtil.getRet(record, false, "检查到不是需要免费的道闸所在车场,无需发送减免消息!!"));
+ renderJson(CommonUtil.getRet(false, "检查到不是需要免费的道闸所在车场,无需发送减免消息!!"));
return;
}
//请求地址
@@ -59,7 +59,7 @@ public class YltController extends Controller {
//与科拓对接,对方平台分配的我司平台ID
String appId = thirdPartyStation.getStr("third_party_appId");
//与科拓对接,对方平台分配的我司平台秘钥
- String key = thirdPartyStation.getStr("third_party_key");
+ String appSecret = thirdPartyStation.getStr("third_party_key");
//闸机提供商
String name = thirdPartyStation.getStr("third_party_name");
//闸机所在车场ID
@@ -73,7 +73,7 @@ public class YltController extends Controller {
String charge_end_time = dingDanRecord.getStr("charge_end_time");//充电结束时间
int stationId = dingDanRecord.getInt("station_id");//电站ID
//获取车场名称
- String stationName = ym.getStationById(String.valueOf(stationId)).getStr("station_name");
+ String stationName = ym.getStationById(stationId).getStr("station_name");
//设备号
int deviceId = dingDanRecord.getInt("equipment_id");//充电桩ID
//充电桩名称
@@ -96,7 +96,6 @@ public class YltController extends Controller {
if ("科拓".equals(name)) {
JSONObject jo = new JSONObject();
jo.put("appId", appId);
- jo.put("key", key);
jo.put("parkId", parkId);
jo.put("serviceCode", "syncChargePilePay");
// 获取当前时间戳
@@ -119,12 +118,11 @@ public class YltController extends Controller {
jo.put("freeType", freeType);//减免类型
jo.put("freeMoney", freeMoney);//减免金额
jo.put("freeTime", freeTime);//减免时长
+ jo.put("key", SignUtils.paramsSign(jo, appSecret));
// 发送 POST 请求并获取响应
String result = HttpUtil.createPost(url)
.body(jo.toString()) // 将 JSON 对象转换为字符串作为请求正文
- //.header("accept-language","zh-CN")
- //.header("User-Agent","Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36")
- //.header("version","1.0.0")
+ .header("version", "1.0.0")
.header("Content-Type", "application/json") // 设置请求头,指明内容类型为 JSON
.execute().body(); // 发送请求并获取响应体
diff --git a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Model/YltModel.java b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Model/YltModel.java
index 2807c29..2a0542a 100644
--- a/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Model/YltModel.java
+++ b/ZhuQue/src/main/java/com/dsideal/ZhuQue/Ylt/Model/YltModel.java
@@ -3,7 +3,9 @@ package com.dsideal.ZhuQue.Ylt.Model;
import com.dsideal.ZhuQue.Util.JwtUtil;
import com.jfinal.plugin.activerecord.Db;
import io.jsonwebtoken.Claims;
+
import javax.servlet.http.HttpServletRequest;
+
import com.jfinal.plugin.activerecord.Record;
public class YltModel {
@@ -73,8 +75,9 @@ public class YltModel {
* @param station_id
* @return
*/
- public Record getStationById(String station_id) {
- return Db.findById("t_station", "id", station_id);
+ public Record getStationById(int station_id) {
+ String sql = "select * from t_station where id=?";
+ return Db.findFirst(sql, station_id);
}
/**
@@ -84,6 +87,7 @@ public class YltModel {
* @return
*/
public Record getEquipmentById(int equipment_id) {
- return Db.findById("t_equipment", "id", equipment_id);
+ String sql = "select * from t_equipment where id =?";
+ return Db.findFirst(sql, equipment_id);
}
}
diff --git a/业务梳理/~$对外统一标准接口_充电桩抵扣.docx b/业务梳理/~$对外统一标准接口_充电桩抵扣.docx
new file mode 100644
index 0000000000000000000000000000000000000000..e4e31b2c302c9ce887fbb6c76f7e28c45b48e5c8
GIT binary patch
literal 162
zcmd;eOv%m6%PcM_N-W7QVjvRmGB`4%Fyu01GUNeqF+&MM5kn%7%m>oQfC~F@1H!Cp89!KUqObrQhCSgz4dvwpaR5&%h7@69CcxbVeC`
literal 0
HcmV?d00001
diff --git a/业务梳理/驿来特收到的需求、分析与现状.docx b/业务梳理/驿来特收到的需求、分析与现状.docx
index 1b50350ec354ad2bf04f68c5b39d0a25ed5a06b3..dc4bee8755c440087f682e5dca033823b71eb454 100644
GIT binary patch
delta 17122
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
vOBop$J~5#i%QGR}Ca6+>r1+L>s3(Ff!Rp4bsK
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
diff --git a/资料/~$对外统一标准接口(收费系统)文档254.docx b/资料/~$对外统一标准接口(收费系统)文档254.docx
new file mode 100644
index 0000000000000000000000000000000000000000..5ee492b99fda517e5e2dacf7a4dafe6244fa8f1b
GIT binary patch
literal 162
zcmd;eOv%m6%PcM_N-W7QVjvRmGB`4%Fyu01GUNeqF+&MM5kn%7%m>oQfC