From dc3cfaa745eb7303e312ce7ba61a7019e5f12e4b Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期四, 21 八月 2025 00:22:42 +0800 Subject: [PATCH] 修改bug --- UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 268 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 180 insertions(+), 88 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 cb09fb2..77fc715 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 @@ -6,10 +6,14 @@ import com.google.gson.Gson; import com.open.common.util.OpenApiClient; import com.open.common.util.SystemParameterNames; +import com.stylefeng.guns.modular.system.util.SpringContextsUtil; import com.stylefeng.guns.modular.system.util.UUIDUtil; import com.stylefeng.guns.modular.system.util.qianyuntong.model.*; import lombok.extern.slf4j.Slf4j; +import java.math.BigDecimal; +import java.net.InetAddress; +import java.net.UnknownHostException; import java.text.SimpleDateFormat; import java.util.*; @@ -20,25 +24,27 @@ @Slf4j public class OrderUtil { + private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig(); + public static void main(String[] args) { //创建行程 // CreateTravelItineraryRequest request = new CreateTravelItineraryRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); -// request.setOrderNo("0123456"); +// request.setOrderNo("3456789012345678"); // request.setCustomerId("11448156"); // request.setDriverId("11448158"); // request.setSupplierShopId("981100006005951"); // request.setServiceType(1); // String travelItinerary = createTravelItinerary(request); -// System.err.println(travelItinerary);//1948685426689200128 +// System.err.println(travelItinerary);//1951088602595872768 //修改行程状态 // ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest(); // request.setScene("TRAFFIC"); // request.setPartnerId("522700"); -// request.setOrderId("1948685426689200128"); +// request.setOrderId("1951088602595872768"); // request.setStatus(7); // request.setDriverId("11448158"); // request.setSupplierShopId("981100006005951"); @@ -53,24 +59,24 @@ // tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}"); // tradeOrderCreateData.setCharge(new BigDecimal("0.01")); // tradeOrderCreateData.setChannelSource("GRJYCXWXXCX"); -// tradeOrderCreateData.setOrderId("1948685426689200128"); -// tradeOrderCreateData.setOrderNo("0123456"); +// tradeOrderCreateData.setOrderId("1951088602595872768"); +// tradeOrderCreateData.setOrderNo("3456789012345678"); // tradeOrderCreateData.setCustomerId("11448156"); // tradeOrderCreateData.setPayPartnerId("5400004"); -// tradeOrderCreateData.setPartnerPayId("1948685426689200128"); +// tradeOrderCreateData.setPartnerPayId("1951088602595872768"); // tradeOrderCreateData.setCurrency("RMB"); // tradeOrderCreateData.setTotalFee("1"); -// tradeOrderCreateData.setRetUrl("/home/"); +// tradeOrderCreateData.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay"); // tradeOrderCreateData.setClientIp("127.0.0.1"); // tradeOrderCreateData.setNeedLoginFlag("N"); // tradeOrderCreateData.setOrderDesc("出行订单支付"); -// tradeOrderCreateData.setAccessMode("H5"); +// tradeOrderCreateData.setAccessMode("APP"); // // List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); // GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); // goodsInfoRequest.setId("981100006005901"); -// goodsInfoRequest.setSubAppId("wxcbad113185a243e1"); -// goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ"); +// goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); +// goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs"); // goodsInfoRequest.setProfitSharing("1"); // goodsInfoRequest.setAreaInfo("520100"); // goodsInfoRequest.setPayType("0"); @@ -79,7 +85,7 @@ // tradeOrderCreateData.setGoodsInfo(goodsInfo); // TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData); // System.err.println(tradeOrderCreate); -// //TradeOrderCreate(orderInfo=OrderInfo(orderId=1948685426689200128, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9L61szNy2MhjTJ938TeNnX0U%3D, payId=540000420250725000135548, status=null, payTime=null, payFee=null, paymentInfos=null), sign=c9d849ee21dcc401cee968d4d31de04f)) + //TradeOrderCreate(orderInfo=OrderInfo(orderId=1950072223939842048, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=It5FPM1DUjzwIAin7zwiHvUANWKC6I5USCLE8EKoRkg%3D, payId=540000420250729000135600, status=null, payTime=null, payFee=null, paymentInfos=null), sign=525cb843b1eeb5a0451eeb5fbbe02f0f)) //查询支付单信息 // GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest(); @@ -92,10 +98,10 @@ // TradePayOff1Data tradePayOff1Data = new TradePayOff1Data(); // tradePayOff1Data.setPartnerId("5400004"); // tradePayOff1Data.setScene("TRAFFIC"); -// tradePayOff1Data.setPartnerPayId("1948685426689200128"); +// tradePayOff1Data.setPartnerPayId("1951088602595872768"); // tradePayOff1Data.setCurrency("RMB"); // tradePayOff1Data.setTotalFee("1"); -// tradePayOff1Data.setRetUrl("/home/"); +// tradePayOff1Data.setRetUrl("pages/advoad-city-search/advoad-message/electronic-wait-pay/electronic-wait-pay"); // tradePayOff1Data.setClientIp("127.0.0.1"); // tradePayOff1Data.setNeedLoginFlag("N"); // tradePayOff1Data.setOrderDesc("出行订单支付"); @@ -103,8 +109,8 @@ // List<GoodsInfoRequest> goodsInfo = new ArrayList<>(); // GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest(); // goodsInfoRequest.setId("981100006005901"); -// goodsInfoRequest.setSubAppId("wxcbad113185a243e1"); -// goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ"); +// goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db"); +// goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs"); // goodsInfoRequest.setProfitSharing("1"); // goodsInfoRequest.setAreaInfo("520100"); // goodsInfoRequest.setPayType("0"); @@ -178,18 +184,34 @@ * @return */ public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) { + 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("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901"); + goodsInfoRequest.setSubAppId(qianYunTongConfig.getAppId()); + + goodsInfoRequest.setAreaInfo("520100"); + goodsInfoRequest.setPayType("0"); + goodsInfoRequest.setBusinessType("10408"); + }); + + TradeRequest request = new TradeRequest<TradePayOff1Data>(); - request.setSceneId("1911676727023968256"); - request.setAppId(QianYunTongProperties.appkey); + request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954795404533583872" : "1911676727023968256"); + request.setAppId(qianYunTongConfig.getAppkey()); request.setConfigVersion(1); request.setRequestId(UUIDUtil.getRandomCode()); request.setData(tradePayOff1Data); //请求路径 - String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff"; + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradePayOff"; //私钥文件 - String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 - String appKey = QianYunTongProperties.appkey;//appkey + 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>(); @@ -200,8 +222,8 @@ String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); - contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); - contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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)); @@ -220,16 +242,19 @@ /** * 创建行程单 + * * @param request * @return 行程单ID */ - public static String createTravelItinerary(CreateTravelItineraryRequest request){ + public static String createTravelItinerary(CreateTravelItineraryRequest request) { + request.setScene("TRAFFIC"); + request.setPartnerId("522700"); //请求路径 - String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/createTravelItinerary"; + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/createTravelItinerary"; //私钥文件 - String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 - String appKey = QianYunTongProperties.appkey;//appkey + 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>(); @@ -240,8 +265,8 @@ String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); - contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); - contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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)); @@ -249,7 +274,7 @@ log.info("【创建行程单】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); - if(!"000000".equals(resCode)){ + if (!"000000".equals(resCode)) { log.error("【创建行程单】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【创建行程单】失败:" + jsonObject.getString("resMsg")); } @@ -257,18 +282,20 @@ } - /** * 修改行程单 + * * @param request */ - public static Boolean modifyTravelItinerary(ModifyTravelItineraryRequest request){ + public static Boolean modifyTravelItinerary(ModifyTravelItineraryRequest request) { + request.setScene("TRAFFIC"); + request.setPartnerId("522700"); //请求路径 - String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyTravelItinerary"; + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/modifyTravelItinerary"; //私钥文件 - String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 - String appKey = QianYunTongProperties.appkey;//appkey + 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>(); @@ -279,8 +306,8 @@ String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); - contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); - contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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)); @@ -288,7 +315,7 @@ log.info("【修改行程单】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); - if(!"000000".equals(resCode)){ + if (!"000000".equals(resCode)) { log.error("【修改行程单】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【修改行程单】失败:" + jsonObject.getString("resMsg")); } @@ -298,16 +325,20 @@ /** * 行程单列表查询 + * * @param request * @return */ - public static ListPage<TravelItinerary> getTravelItineraryList(GetTravelItineraryListRequest request){ + public static ListPage<List<TravelItinerary>> getTravelItineraryList(GetTravelItineraryListRequest request) { + request.setScene("TRAFFIC"); + request.setPartnerId("522700"); + //请求路径 - String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getTravelItineraryList"; + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/getTravelItineraryList"; //私钥文件 - String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 - String appKey = QianYunTongProperties.appkey;//appkey + 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>(); @@ -318,8 +349,8 @@ String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); - contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); - contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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)); @@ -327,7 +358,7 @@ log.info("【行程单列表查询】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); - if(!"000000".equals(resCode)){ + if (!"000000".equals(resCode)) { log.error("【行程单列表查询】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【行程单列表查询】失败:" + jsonObject.getString("resMsg")); } @@ -341,7 +372,7 @@ TravelItinerary object = list.getObject(i, TravelItinerary.class); travelItineraryList.add(object); } - ListPage listPage = new ListPage<TravelItinerary>(); + ListPage listPage = new ListPage<List<TravelItinerary>>(); listPage.setTotal(total); listPage.setPageNum(pageNum); listPage.setPageSize(pageSize); @@ -356,19 +387,37 @@ * @return */ public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) { + tradeOrderCreateData.setScene("TRAFFIC"); + tradeOrderCreateData.setPartnerId("522700"); + tradeOrderCreateData.setTimeout("72H"); + tradeOrderCreateData.setOrderAppId("52270015"); + tradeOrderCreateData.setChannelSource("GRJYCXWXXCX"); + tradeOrderCreateData.setPayPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004"); + tradeOrderCreateData.setCurrency("RMB"); + tradeOrderCreateData.setNeedLoginFlag("N"); + tradeOrderCreateData.setAccessMode("APP"); + tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest -> { + goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901"); + goodsInfoRequest.setSubAppId(qianYunTongConfig.getAppId()); + goodsInfoRequest.setAreaInfo("520100"); + goodsInfoRequest.setPayType("0"); + goodsInfoRequest.setBusinessType("10408"); + }); + + TradeRequest request = new TradeRequest<TradeOrderCreateData>(); - request.setSceneId("1945688132719169536"); - request.setAppId(QianYunTongProperties.appkey); + request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954793280550756352" : "1945688132719169536"); + request.setAppId(qianYunTongConfig.getAppkey()); request.setConfigVersion(1); request.setRequestId(UUIDUtil.getRandomCode()); request.setData(tradeOrderCreateData); //请求路径 - String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate"; + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCreate"; //私钥文件 - String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 - String appKey = QianYunTongProperties.appkey;//appkey + 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>(); @@ -379,8 +428,8 @@ String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); - contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); - contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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)); @@ -403,18 +452,23 @@ * @return */ public static OrderInfo tradeOrderCreate(CreateOrderRequest createOrderRequest) { + createOrderRequest.setOrderAppId("52270015"); + createOrderRequest.setScene("TRAFFIC"); + createOrderRequest.setPartnerId("522700"); + createOrderRequest.setChannelSource("GRJYCXWXXCX"); + TradeRequest request = new TradeRequest<CreateOrderRequest>(); - request.setSceneId(QianYunTongProperties.sceneId); - request.setAppId(QianYunTongProperties.appkey); + request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1948289607125864448"); + request.setAppId(qianYunTongConfig.getAppkey()); request.setConfigVersion(1); request.setRequestId(UUIDUtil.getRandomCode()); request.setData(createOrderRequest); //请求路径 - String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate"; + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradeOrderCreate"; //私钥文件 - String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 - String appKey = QianYunTongProperties.appkey;//appkey + 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>(); @@ -425,8 +479,8 @@ String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); - contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); - contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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)); @@ -450,18 +504,53 @@ * @return */ public static PayInfo tradePayOff(TradePayOffData tradePayOffData) { + tradePayOffData.setPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401008" : "5400005"); + tradePayOffData.setTimeout("72H"); + tradePayOffData.setScene("TRAFFIC"); + tradePayOffData.setCurrency("RMB"); + tradePayOffData.setRetUrl(""); + InetAddress inetAddress = null; + try { + inetAddress = InetAddress.getLocalHost(); + } catch (UnknownHostException e) { + throw new RuntimeException(e); + } + String ip = inetAddress.getHostAddress(); + tradePayOffData.setClientIp(ip); + tradePayOffData.setNeedLoginFlag("N"); + tradePayOffData.setAccessMode("APP"); + List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>(); + PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest(); + paymentInfoRequest.setPayModeId("501212"); + paymentInfoRequest.setRealFee(tradePayOffData.getTotalFee().toString()); + paymentInfoRequest.setTradeFee(tradePayOffData.getTotalFee().toString()); + paymentInfoRequest.setAccountTyp("501"); + paymentInfoRequests.add(paymentInfoRequest); + tradePayOffData.setPaymentInfos(paymentInfoRequests); + List<GoodsInfo> goodsInfo = new ArrayList<>(); + GoodsInfo goodsInfo1 = new GoodsInfo(); + goodsInfo1.setMerchantCode("B00000905"); + goodsInfo1.setCustId("CB0000004686"); + goodsInfo1.setCustName("证联消费平台交易客户"); + goodsInfo1.setBusinessType("10408"); + 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.setAppId(QianYunTongProperties.appkey); - request.setConfigVersion(1); + request.setSceneId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954794605782913024" : "1774717104844095488"); + request.setAppId(qianYunTongConfig.getAppkey()); + request.setConfigVersion("prod".equals(qianYunTongConfig.getActiveProfile()) ? 1 : 2); request.setRequestId(UUIDUtil.getRandomCode()); request.setData(tradePayOffData); //请求路径 - String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff"; + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradePayOff"; //私钥文件 - String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 - String appKey = QianYunTongProperties.appkey;//appkey + 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>(); @@ -472,8 +561,8 @@ String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); - contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); - contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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)); @@ -493,21 +582,24 @@ /** * 查询支付单信息 + * * @param getPaymentInfoDataRequest * @return */ - public static GetPaymentInfo paymentInfo(GetPaymentInfoDataRequest getPaymentInfoDataRequest){ + public static GetPaymentInfo paymentInfo(GetPaymentInfoDataRequest getPaymentInfoDataRequest) { + getPaymentInfoDataRequest.setPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401007" : "5400004"); + GetPaymentInfoRequest request = new GetPaymentInfoRequest(); request.setRequstType("POST"); request.setBusType(1); request.setData(getPaymentInfoDataRequest); //请求路径 - String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/paymentInfo"; + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/paymentInfo"; //私钥文件 - String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 - String appKey = QianYunTongProperties.appkey;//appkey + 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>(); @@ -518,8 +610,8 @@ String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); - contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); - contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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)); @@ -527,13 +619,13 @@ log.info("【查询支付单信息】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("retCode"); - if(!"0".equals(resCode)){ + if (!"0".equals(resCode)) { log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); } JSONObject object = jsonObject.getJSONObject("object"); String retCode = object.getString("retCode"); - if(!"000000".equals(retCode)){ + if (!"000000".equals(retCode)) { log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg")); } @@ -544,16 +636,22 @@ /** * (补偿单)支付成功通知 + * * @param request * @return */ - public static OrderInfo paymentOrder(PaymentOrderRequest request){ + public static OrderInfo paymentOrder(PaymentOrderRequest request) { + request.setScene("TRAFFIC"); + request.setMhltiCenterAppId("52270015"); + request.setPayType(4); + request.setPayChannel(6); + request.setIsCompensate(1); //请求路径 - String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/paymentOrder"; + String url = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/paymentOrder"; //私钥文件 - String skprivateKeyFile = QianYunTongProperties.privateKeyPath; + String skprivateKeyFile = qianYunTongConfig.getPrivateKeyPath(); //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密 - String appKey = QianYunTongProperties.appkey;//appkey + 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>(); @@ -564,8 +662,8 @@ String messageId = UUIDUtil.getRandomCode(); contentMap.put(SystemParameterNames.getAppKey(), appKey); contentMap.put(SystemParameterNames.getMessage_id(), messageId); - contentMap.put(SystemParameterNames.getUserName(), QianYunTongProperties.userName); - contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status); + 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)); @@ -573,19 +671,13 @@ log.info("【(补偿单)支付成功通知】请求结果:" + result); JSONObject jsonObject = JSON.parseObject(result); String resCode = jsonObject.getString("resCode"); - if(!"0".equals(resCode)){ + if (!"000000".equals(resCode)) { log.error("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg")); throw new RuntimeException("【(补偿单)支付成功通知】失败:" + jsonObject.getString("resMsg")); } OrderInfo orderInfo = jsonObject.getObject("busiResp", OrderInfo.class); return orderInfo; } - - - - - - } -- Gitblit v1.7.1