From dfb1f5ab2e8dc03cf2f497ce3327f6ce58700766 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 23 十月 2025 11:35:55 +0800
Subject: [PATCH] 修改bug
---
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 152 insertions(+), 2 deletions(-)
diff --git a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
index cc050b0..66cdc57 100644
--- a/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
+++ b/UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -686,6 +686,156 @@
OrderInfo orderInfo = jsonObject.getObject("busiResp", OrderInfo.class);
return orderInfo;
}
-
-
+
+
+
+ /**
+ * 订单退款
+ * @param request1
+ * @return
+ */
+ public static TradeOrderRefund tradeOrderRefund(TradeOrderRefundRequest request1) {
+ request1.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004");
+ //请求路径
+ String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderRefund";
+ //私钥文件
+ String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+ //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+ String appKey = qianYunTongConfig.getAppkey();//appkey
+ Map<String, String> headers = new HashMap<>();
+ headers.put("Content-Type", "application/json");
+ Map<String, Object> contentMap = new HashMap<String, Object>();
+ Date nowdate = new Date();
+ SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+
+ TradeRequest request = new TradeRequest<TradeOrderRefundRequest>();
+ request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1968487381046722560" : "1726529285264269312");
+ request.setAppId(qianYunTongConfig.getAppkey());
+ request.setConfigVersion("prod".equals(qianYunTongConfig.getActiveProfile()) ? 1 : 6);
+ request.setRequestId(UUIDUtil.getRandomCode());
+ request.setData(request1);
+
+ String timeStamp = date.format(nowdate);
+ String messageId = UUIDUtil.getRandomCode();
+ contentMap.put(SystemParameterNames.getAppKey(), appKey);
+ contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+ contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+ contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+ contentMap.put("content", new Gson().toJson(request));
+ log.info("【订单退款】请求地址:" + url);
+ log.info("【订单退款】请求参数:" + JSON.toJSONString(contentMap));
+ String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+ log.info("【订单退款】请求结果:" + result);
+ JSONObject jsonObject = JSON.parseObject(result);
+ String resCode = jsonObject.getString("resCode");
+ if (!"000000".equals(resCode)) {
+ log.error("【订单退款】失败:" + jsonObject.getString("resMsg"));
+ throw new RuntimeException("【订单退款】失败:" + jsonObject.getString("resMsg"));
+ }
+ JSONObject refundInfo = jsonObject.getJSONObject("busiResp").getJSONObject("refundInfo");
+ String retCode = refundInfo.getString("retCode");
+ if(!"0".equals(retCode)){
+ log.error("【订单退款】失败:" + refundInfo.getString("retMsg"));
+ throw new RuntimeException("【订单退款】失败:" + refundInfo.getString("retMsg"));
+ }
+ JSONObject object = refundInfo.getJSONObject("object");
+ String retCode1 = object.getString("retCode");
+ if(!"000000".equals(retCode1)){
+ log.error("【订单退款】失败:" + object.getString("retMsg"));
+ throw new RuntimeException("【订单退款】失败:" + object.getString("retMsg"));
+ }
+
+ TradeOrderRefund tradeOrderRefund = object.getObject("data", TradeOrderRefund.class);
+ return tradeOrderRefund;
+ }
+
+
+ /**
+ * 订单退款通知
+ * @param request
+ */
+ public static void orderRefundNotice(OrderRefundNoticeRequest request) {
+ request.setScene("TRAFFIC");
+ request.setMhltiCenterAppId("52270015");
+
+ //请求路径
+ String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/orderRefundNotice";
+ //私钥文件
+ String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+ //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+ String appKey = qianYunTongConfig.getAppkey();//appkey
+ Map<String, String> headers = new HashMap<>();
+ headers.put("Content-Type", "application/json");
+ Map<String, Object> contentMap = new HashMap<String, Object>();
+ Date nowdate = new Date();
+ SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+
+ String timeStamp = date.format(nowdate);
+ String messageId = UUIDUtil.getRandomCode();
+ contentMap.put(SystemParameterNames.getAppKey(), appKey);
+ contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+ contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+ contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+ contentMap.put("content", new Gson().toJson(request));
+ log.info("【订单退款通知】请求地址:" + url);
+ log.info("【订单退款通知】请求参数:" + JSON.toJSONString(contentMap));
+ String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+ log.info("【订单退款通知】请求结果:" + result);
+ JSONObject jsonObject = JSON.parseObject(result);
+ String resCode = jsonObject.getString("resCode");
+ if (!"000000".equals(resCode)) {
+ log.error("【订单退款通知】失败:" + jsonObject.getString("resMsg"));
+ throw new RuntimeException("【订单退款通知】失败:" + jsonObject.getString("resMsg"));
+ }
+ }
+
+
+
+ /**
+ * 订单取消
+ * @param orderId
+ */
+ public static void tradeOrderCancel(String orderId) {
+ TradeOrderCancelRequest request1 = new TradeOrderCancelRequest();
+ request1.setScene("TRAFFIC");
+ request1.setMhltiCenterAppId("52270015");
+ request1.setOrderId(orderId);
+
+ //请求路径
+ String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCancel";
+ //私钥文件
+ String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath();
+ //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
+ String appKey = qianYunTongConfig.getAppkey();//appkey
+ Map<String, String> headers = new HashMap<>();
+ headers.put("Content-Type", "application/json");
+ Map<String, Object> contentMap = new HashMap<String, Object>();
+ Date nowdate = new Date();
+ SimpleDateFormat date = new SimpleDateFormat("yyyyMMddHHmmss");
+
+ TradeRequest request = new TradeRequest<TradeOrderRefundRequest>();
+ request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1968487841979760640" : "1963507067318833152");
+ request.setAppId(qianYunTongConfig.getAppkey());
+ request.setConfigVersion(1);
+ request.setRequestId(UUIDUtil.getRandomCode());
+ request.setData(request1);
+
+ String timeStamp = date.format(nowdate);
+ String messageId = UUIDUtil.getRandomCode();
+ contentMap.put(SystemParameterNames.getAppKey(), appKey);
+ contentMap.put(SystemParameterNames.getMessage_id(), messageId);
+ contentMap.put(SystemParameterNames.getUserName(), qianYunTongConfig.getUserName());
+ contentMap.put(SystemParameterNames.getStatus(), qianYunTongConfig.getStatus());
+ contentMap.put("content", new Gson().toJson(request));
+ log.info("【订单取消】请求地址:" + url);
+ log.info("【订单取消】请求参数:" + JSON.toJSONString(contentMap));
+ String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
+ log.info("【订单取消】请求结果:" + result);
+ JSONObject jsonObject = JSON.parseObject(result);
+ String resCode = jsonObject.getString("resCode");
+ if (!"000000".equals(resCode)) {
+ log.error("【订单取消】失败:" + jsonObject.getString("resMsg"));
+ throw new RuntimeException("【订单取消】失败:" + jsonObject.getString("resMsg"));
+ }
+ }
}
--
Gitblit v1.7.1