From b219589d73f46bd98995bceb4caf16dadb56b869 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 12 九月 2025 20:30:13 +0800 Subject: [PATCH] 修改bug --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 155 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 152 insertions(+), 3 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 26eb18f..bd5e2c3 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 @@ -654,7 +654,6 @@ request.setMhltiCenterAppId("52270015"); request.setPayType(4); request.setPayChannel(6); - request.setIsCompensate(1); //请求路径 String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/paymentOrder"; //私钥文件 @@ -687,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()) ? "1954792737421942784" : "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()) ? "1954792737421942784" : "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