From 1c40baaf9ca0183945b9881d11ceed5aeebc8290 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 23 十月 2025 11:35:44 +0800
Subject: [PATCH] 修改bug
---
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 375 +++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 279 insertions(+), 96 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 a329015..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
@@ -6,11 +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,6 +23,8 @@
*/
@Slf4j
public class OrderUtil {
+
+ private static QianYunTongConfig qianYunTongConfig = SpringContextsUtil.getBean(QianYunTongConfig.class).getQianYunTongConfig();
public static void main(String[] args) {
@@ -90,30 +95,30 @@
// System.err.println(getPaymentInfo);
//拉起支付
- TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
- tradePayOff1Data.setPartnerId("5400004");
- tradePayOff1Data.setScene("TRAFFIC");
- tradePayOff1Data.setPartnerPayId("1951088602595872768");
- tradePayOff1Data.setCurrency("RMB");
- tradePayOff1Data.setTotalFee("1");
- 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("出行订单支付");
- tradePayOff1Data.setAccessMode("APP");
- List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
- GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
- goodsInfoRequest.setId("981100006005901");
- goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
- goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs");
- goodsInfoRequest.setProfitSharing("1");
- goodsInfoRequest.setAreaInfo("520100");
- goodsInfoRequest.setPayType("0");
- goodsInfoRequest.setBusinessType("10408");
- goodsInfo.add(goodsInfoRequest);
- tradePayOff1Data.setGoodsInfo(goodsInfo);
- PayInfo payInfo = tradePayOff1(tradePayOff1Data);
- System.err.println(payInfo);
+// TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
+// tradePayOff1Data.setPartnerId("5400004");
+// tradePayOff1Data.setScene("TRAFFIC");
+// tradePayOff1Data.setPartnerPayId("1951088602595872768");
+// tradePayOff1Data.setCurrency("RMB");
+// tradePayOff1Data.setTotalFee("1");
+// 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("出行订单支付");
+// tradePayOff1Data.setAccessMode("APP");
+// List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
+// GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
+// goodsInfoRequest.setId("981100006005901");
+// goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
+// goodsInfoRequest.setSubOpenId("oVLur61wBKJEO7QPR1dsmzS5TSfs");
+// goodsInfoRequest.setProfitSharing("1");
+// goodsInfoRequest.setAreaInfo("520100");
+// goodsInfoRequest.setPayType("0");
+// goodsInfoRequest.setBusinessType("10408");
+// goodsInfo.add(goodsInfoRequest);
+// tradePayOff1Data.setGoodsInfo(goodsInfo);
+// PayInfo payInfo = tradePayOff1(tradePayOff1Data);
+// System.err.println(payInfo);
//PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9LzeRXmqmlqaCS%2BHfu5udIt4%3D, payId=540000420250725000135549, status=null, payTime=null, payFee=null, paymentInfos=null), sign=8154ba2728280900b122c56352c1c7fe)
@@ -176,19 +181,24 @@
* 拉起支付
*
* @param tradePayOff1Data
+ * @param recoveryOrder
* @return
*/
- public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) {
- tradePayOff1Data.setPartnerId("5400004");
+ public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data, Integer recoveryOrder) {
+ 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.setProfitSharing("1");
+ if(0 == recoveryOrder){
+ goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901");
+ }else{
+ goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "981100006228370" : "981100006005901");
+ }
+ goodsInfoRequest.setSubAppId(qianYunTongConfig.getAppId());
+
goodsInfoRequest.setAreaInfo("520100");
goodsInfoRequest.setPayType("0");
goodsInfoRequest.setBusinessType("10408");
@@ -196,17 +206,17 @@
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>();
@@ -217,8 +227,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));
@@ -242,12 +252,14 @@
* @return 行程单ID
*/
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>();
@@ -258,8 +270,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));
@@ -284,11 +296,11 @@
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>();
@@ -299,8 +311,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,11 +339,11 @@
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>();
@@ -342,8 +354,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));
@@ -379,20 +391,23 @@
* @param tradeOrderCreateData
* @return
*/
- public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) {
+ public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData, Integer recoveryOrder) {
tradeOrderCreateData.setScene("TRAFFIC");
tradeOrderCreateData.setPartnerId("522700");
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.setProfitSharing("1");
+ if(0 == recoveryOrder){
+ goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "9811000039358999" : "981100006005901");
+ }else{
+ goodsInfoRequest.setId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "981100006228370" : "981100006005901");
+ }
+ goodsInfoRequest.setSubAppId(qianYunTongConfig.getAppId());
goodsInfoRequest.setAreaInfo("520100");
goodsInfoRequest.setPayType("0");
goodsInfoRequest.setBusinessType("10408");
@@ -400,18 +415,18 @@
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>();
@@ -422,8 +437,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));
@@ -452,17 +467,17 @@
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>();
@@ -473,8 +488,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));
@@ -498,41 +513,53 @@
* @return
*/
public static PayInfo tradePayOff(TradePayOffData tradePayOffData) {
- tradePayOffData.setPartnerId("5400004");
+ tradePayOffData.setPartnerId("prod".equals(qianYunTongConfig.getActiveProfile()) ? "5401008" : "5400005");
tradePayOffData.setTimeout("72H");
tradePayOffData.setScene("TRAFFIC");
tradePayOffData.setCurrency("RMB");
tradePayOffData.setRetUrl("");
- tradePayOffData.setClientIp(System.getProperty("http.remoteAddr"));
+ 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(":B00000872");
- 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("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>();
@@ -543,8 +570,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));
@@ -569,17 +596,19 @@
* @return
*/
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>();
@@ -590,8 +619,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));
@@ -621,12 +650,16 @@
* @return
*/
public static OrderInfo paymentOrder(PaymentOrderRequest request) {
+ request.setScene("TRAFFIC");
+ request.setMhltiCenterAppId("52270015");
+ request.setPayType(4);
+ request.setPayChannel(6);
//请求路径
- 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>();
@@ -637,8 +670,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));
@@ -646,13 +679,163 @@
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;
}
-
-
+
+
+
+ /**
+ * 订单退款
+ * @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