From a0af42a6acfc7a0ebbb92bffc1816525e508af70 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 17 十月 2025 16:54:06 +0800
Subject: [PATCH] 修改bug
---
driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/OrderUtil.java | 197 +++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 173 insertions(+), 24 deletions(-)
diff --git a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/OrderUtil.java b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/OrderUtil.java
index 988e85a..7225f46 100644
--- a/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/OrderUtil.java
+++ b/driver/guns-admin/src/main/java/com/supersavedriving/driver/modular/system/util/qianyuntong/OrderUtil.java
@@ -6,9 +6,9 @@
import com.google.gson.Gson;
import com.open.common.util.OpenApiClient;
import com.open.common.util.SystemParameterNames;
-import com.supersavedriving.user.modular.system.util.SpringContextsUtil;
-import com.supersavedriving.user.modular.system.util.UUIDUtil;
-import com.supersavedriving.user.modular.system.util.qianyuntong.model.*;
+import com.supersavedriving.driver.modular.system.util.SpringContextsUtil;
+import com.supersavedriving.driver.modular.system.util.UUIDUtil;
+import com.supersavedriving.driver.modular.system.util.qianyuntong.model.*;
import lombok.extern.slf4j.Slf4j;
import java.net.InetAddress;
@@ -74,7 +74,7 @@
// List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
// GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
// goodsInfoRequest.setId("981100006005901");
-// goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+// goodsInfoRequest.setSubAppId("wx1f52be0fdb1d2875");
// goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs");
// goodsInfoRequest.setProfitSharing("1");
// goodsInfoRequest.setAreaInfo("520100");
@@ -108,7 +108,7 @@
// List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
// GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
// goodsInfoRequest.setId("981100006005901");
-// goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+// goodsInfoRequest.setSubAppId("wx1f52be0fdb1d2875");
// goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs");
// goodsInfoRequest.setProfitSharing("1");
// goodsInfoRequest.setAreaInfo("520100");
@@ -183,15 +183,15 @@
* @return
*/
public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) {
- tradePayOff1Data.setPartnerId("5400004");
+ tradePayOff1Data.setPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004");
tradePayOff1Data.setTimeout("72H");
tradePayOff1Data.setScene("TRAFFIC");
tradePayOff1Data.setCurrency("RMB");
tradePayOff1Data.setNeedLoginFlag("N");
tradePayOff1Data.setAccessMode("APP");
tradePayOff1Data.getGoodsInfo().forEach(goodsInfoRequest -> {
- goodsInfoRequest.setId("981100006005901");
- goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+ goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901");
+ goodsInfoRequest.setSubAppId("wx1f52be0fdb1d2875");
goodsInfoRequest.setAreaInfo("520100");
goodsInfoRequest.setPayType("0");
@@ -200,7 +200,7 @@
TradeRequest request = new TradeRequest<TradePayOff1Data>();
- request.setSceneId("1911676727023968256");
+ request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954795404533583872" : "1911676727023968256");
request.setAppId(qianYunTongConfig.getAppkey());
request.setConfigVersion(1);
request.setRequestId(UUIDUtil.getRandomCode());
@@ -391,13 +391,13 @@
tradeOrderCreateData.setTimeout("72H");
tradeOrderCreateData.setOrderAppId("52270015");
tradeOrderCreateData.setChannelSource("GRJYCXWXXCX");
- tradeOrderCreateData.setPayPartnerId("5400004");
+ tradeOrderCreateData.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004");
tradeOrderCreateData.setCurrency("RMB");
tradeOrderCreateData.setNeedLoginFlag("N");
tradeOrderCreateData.setAccessMode("APP");
tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest -> {
- goodsInfoRequest.setId("981100006005901");
- goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+ goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901");
+ goodsInfoRequest.setSubAppId("wx1f52be0fdb1d2875");
goodsInfoRequest.setAreaInfo("520100");
goodsInfoRequest.setPayType("0");
goodsInfoRequest.setBusinessType("10408");
@@ -405,7 +405,7 @@
TradeRequest request = new TradeRequest<TradeOrderCreateData>();
- request.setSceneId("1945688132719169536");
+ request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954793280550756352" : "1945688132719169536");
request.setAppId(qianYunTongConfig.getAppkey());
request.setConfigVersion(1);
request.setRequestId(UUIDUtil.getRandomCode());
@@ -457,7 +457,7 @@
createOrderRequest.setChannelSource("GRJYCXWXXCX");
TradeRequest request = new TradeRequest<CreateOrderRequest>();
- request.setSceneId("1948289607125864448");
+ request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1948289607125864448");
request.setAppId(qianYunTongConfig.getAppkey());
request.setConfigVersion(1);
request.setRequestId(UUIDUtil.getRandomCode());
@@ -503,7 +503,7 @@
* @return
*/
public static PayInfo tradePayOff(TradePayOffData tradePayOffData) {
- tradePayOffData.setPartnerId("5400005");
+ tradePayOffData.setPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401008" : "5400005");
tradePayOffData.setTimeout("72H");
tradePayOffData.setScene("TRAFFIC");
tradePayOffData.setCurrency("RMB");
@@ -528,20 +528,20 @@
tradePayOffData.setPaymentInfos(paymentInfoRequests);
List<GoodsInfo> goodsInfo = new ArrayList<>();
GoodsInfo goodsInfo1 = new GoodsInfo();
- goodsInfo1.setMerchantCode("B00000905");
- goodsInfo1.setCustId("CB0000004686");
- goodsInfo1.setCustName("证联消费平台交易客户");
+ goodsInfo1.setMerchantCode("prod".equals(qianYunTongConfig.getActiveProfile()) ? "B00001404" : "B00000905");
+ goodsInfo1.setCustId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "CB0000004853" : "CB0000004686");
+ goodsInfo1.setCustName("prod".equals(qianYunTongConfig.getActiveProfile()) ? "黔南云码通数字产业运营有限公司" : "证联消费平台交易客户");
goodsInfo1.setBusinessType("10408");
- goodsInfo1.setAgreementNo("00000000468618354161754464398681");
+ goodsInfo1.setAgreementNo("prod".equals(qianYunTongConfig.getActiveProfile()) ? "00000402485377063581755054680461" : "00000000468618354161754464398681");
goodsInfo1.setProfitSharing("1");
goodsInfo.add(goodsInfo1);
tradePayOffData.setGoodsInfo(goodsInfo);
TradeRequest request = new TradeRequest<TradePayOffData>();
- request.setSceneId("1774717104844095488");
+ request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954794605782913024" : "1774717104844095488");
request.setAppId(qianYunTongConfig.getAppkey());
- request.setConfigVersion(2);
+ request.setConfigVersion("prod".equals(qianYunTongConfig.getActiveProfile()) ? 1 : 2);
request.setRequestId(UUIDUtil.getRandomCode());
request.setData(tradePayOffData);
//请求路径
@@ -586,7 +586,7 @@
* @return
*/
public static GetPaymentInfo paymentInfo(GetPaymentInfoDataRequest getPaymentInfoDataRequest) {
- getPaymentInfoDataRequest.setPartnerId("5400004");
+ getPaymentInfoDataRequest.setPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004");
GetPaymentInfoRequest request = new GetPaymentInfoRequest();
request.setRequstType("POST");
@@ -644,7 +644,6 @@
request.setMhltiCenterAppId("52270015");
request.setPayType(4);
request.setPayChannel(6);
- request.setIsCompensate(1);
//请求路径
String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/paymentOrder";
//私钥文件
@@ -677,6 +676,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