From 2ae7a4e20b7ecfd8e0d7411778cce1b7d013dae4 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期二, 19 八月 2025 21:21:16 +0800
Subject: [PATCH] 账户余额
---
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java | 522 ++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 367 insertions(+), 155 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 c69197d..67be182 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,54 +24,194 @@
@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(QianYunTongProperties.sceneId);
- request.setPartnerId("522700");
- request.setOrderNo("123456");
- request.setCustomerId("11448156");
- request.setDriverId("11448158");
- request.setSupplierShopId("981100006005951");
- request.setServiceType(1);
- String travelItinerary = createTravelItinerary(request);
- System.err.println(travelItinerary);
-
+ //创建行程
+// CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+// request.setScene("TRAFFIC");
+// request.setPartnerId("522700");
+// request.setOrderNo("3456789012345678");
+// request.setCustomerId("11448156");
+// request.setDriverId("11448158");
+// request.setSupplierShopId("981100006005951");
+// request.setServiceType(1);
+// String travelItinerary = createTravelItinerary(request);
+// System.err.println(travelItinerary);//1951088602595872768
+
+ //修改行程状态
+// ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+// request.setScene("TRAFFIC");
+// request.setPartnerId("522700");
+// request.setOrderId("1951088602595872768");
+// request.setStatus(7);
+// request.setDriverId("11448158");
+// request.setSupplierShopId("981100006005951");
+// Boolean aBoolean = modifyTravelItinerary(request);
+
+ //订单创建及拉起支付
+// TradeOrderCreateData tradeOrderCreateData = new TradeOrderCreateData();
+// tradeOrderCreateData.setScene("TRAFFIC");
+// tradeOrderCreateData.setPartnerId("522700");
+// tradeOrderCreateData.setTreatShopId("11448158");
+// tradeOrderCreateData.setOrderAppId("52270015");
+// tradeOrderCreateData.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}");
+// tradeOrderCreateData.setCharge(new BigDecimal("0.01"));
+// tradeOrderCreateData.setChannelSource("GRJYCXWXXCX");
+// tradeOrderCreateData.setOrderId("1951088602595872768");
+// tradeOrderCreateData.setOrderNo("3456789012345678");
+// tradeOrderCreateData.setCustomerId("11448156");
+// tradeOrderCreateData.setPayPartnerId("5400004");
+// tradeOrderCreateData.setPartnerPayId("1951088602595872768");
+// tradeOrderCreateData.setCurrency("RMB");
+// tradeOrderCreateData.setTotalFee("1");
+// 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("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);
+// tradeOrderCreateData.setGoodsInfo(goodsInfo);
+// TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData);
+// System.err.println(tradeOrderCreate);
+ //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();
+// getPaymentInfoDataRequest.setPartnerId("5400004");
+// getPaymentInfoDataRequest.setPartnerPayId("1948685426689200128");
+// GetPaymentInfo getPaymentInfo = paymentInfo(getPaymentInfoDataRequest);
+// 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);
+ //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)
+
+
+ // (补偿单)拉起支付
+// TradePayOffData tradePayOffData = new TradePayOffData();
+// tradePayOffData.setPartnerId("5400004");
+// tradePayOffData.setScene("TRAFFIC");
+// tradePayOffData.setPartnerPayId("1948685426689200128");
+// tradePayOffData.setCurrency("RMB");
+// tradePayOffData.setTotalFee("1");
+// tradePayOffData.setRetUrl("/home/");
+// tradePayOffData.setClientIp("127.0.0.1");
+// tradePayOffData.setNeedLoginFlag("N");
+// tradePayOffData.setOrderDesc("出行订单支付");
+// tradePayOffData.setAccessMode("APP");
+// List<PaymentInfoRequest> paymentInfoRequests = new ArrayList<>();
+// PaymentInfoRequest paymentInfoRequest = new PaymentInfoRequest();
+// paymentInfoRequest.setPayModeId("501212");
+// paymentInfoRequests.add(paymentInfoRequest);
+// tradePayOffData.setPaymentInfos(paymentInfoRequests);
+// List<GoodsInfo> goodsInfo = new ArrayList<>();
+// GoodsInfo goodsInfo1 = new GoodsInfo();
+// goodsInfo1.setMerchantCode("");
+// goodsInfo1.setCustId("");
+// goodsInfo1.setCustName("");
+// goodsInfo1.setProfitSharing("1");
+// goodsInfo.add(goodsInfo1);
+// tradePayOffData.setGoodsInfo(goodsInfo);
+// PayInfo payInfo1 = tradePayOff(tradePayOffData);
+// System.err.println(payInfo1);
+
+ //订单创建
// CreateOrderRequest createOrderRequest = new CreateOrderRequest();
-// createOrderRequest.setTreatShopId("");
+// createOrderRequest.setTreatShopId("11448158");
// createOrderRequest.setOrderAppId("52270015");
// createOrderRequest.setScene("TRAFFIC");
// createOrderRequest.setPartnerId("522700");
-// createOrderRequest.setField1("{\"profitSharing\":\"0\",\"isPromote\":\"0\"}");
+// createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}");
// createOrderRequest.setCharge(new BigDecimal("0.01"));
// createOrderRequest.setChannelSource("GRJYCXWXXCX");
-// createOrderRequest.setOrderId("");
-// createOrderRequest.setOrderNo("");
-// createOrderRequest.setCustomerId("");
+// createOrderRequest.setOrderId("1948685426689200128");
+// createOrderRequest.setOrderNo("0123456");
+// createOrderRequest.setCustomerId("11448156");
// OrderInfo orderInfo = tradeOrderCreate(createOrderRequest);
+// System.err.println(orderInfo);
+ //行程单列表查询
+// GetTravelItineraryListRequest request = new GetTravelItineraryListRequest();
+// request.setScene("TRAFFIC");
+// request.setPartnerId("522700");
+// request.setCustomerId("11448156");
+// request.setOrderNo("0123456");
+// request.setDriverId("11448158");
+// ListPage<TravelItinerary> travelItineraryList = getTravelItineraryList(request);
+// System.err.println(travelItineraryList);
+
}
-
-
/**
- * 订单创建
- * @param createOrderRequest
+ * 拉起支付
+ *
+ * @param tradePayOff1Data
* @return
*/
- public static OrderInfo tradeOrderCreate(CreateOrderRequest createOrderRequest){
- TradeRequest request = new TradeRequest<CreateOrderRequest>();
- request.setSceneId(QianYunTongProperties.sceneId);
- request.setAppId(QianYunTongProperties.appId);
+ 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("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954795404533583872" : "1911676727023968256");
+ request.setAppId(qianYunTongConfig.getAppkey());
request.setConfigVersion(1);
request.setRequestId(UUIDUtil.getRandomCode());
- request.setData(createOrderRequest);
+ request.setData(tradePayOff1Data);
//请求路径
- String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate";
+ 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>();
@@ -78,36 +222,39 @@
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));
+ log.info("【拉起支付】请求地址:" + url);
+ log.info("【拉起支付】请求参数:" + JSON.toJSONString(contentMap));
String result = OpenApiClient.sendCommonHttpRequst(url, headers, "POST", skprivateKeyFile, timeStamp, contentMap);
- log.info("【订单创建】请求结果:" + result);
+ 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"));
+ if (!"000000".equals(resCode)) {
+ log.error("【拉起支付】失败:" + jsonObject.getString("resMsg"));
+ throw new RuntimeException("【拉起支付】失败:" + jsonObject.getString("resMsg"));
}
JSONObject busiResp = jsonObject.getJSONObject("busiResp");
- OrderInfo orderInfo = busiResp.getObject("orderInfo", OrderInfo.class);
- return orderInfo;
+ PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class);
+ return payInfo;
}
/**
* 创建行程单
+ *
* @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>();
@@ -118,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));
@@ -127,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"));
}
@@ -135,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>();
@@ -157,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));
@@ -166,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"));
}
@@ -176,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>();
@@ -196,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));
@@ -205,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"));
}
@@ -219,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);
@@ -227,28 +380,44 @@
return listPage;
}
-
-
-
/**
* 订单创建及拉起支付
+ *
* @param tradeOrderCreateData
* @return
*/
- public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData){
+ 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(QianYunTongProperties.sceneId);
- request.setAppId(QianYunTongProperties.appId);
+ 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>();
@@ -259,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));
@@ -268,7 +437,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"));
}
@@ -276,25 +445,30 @@
return busiResp;
}
-
/**
- * (补偿单)拉起支付
- * @param tradePayOffData
+ * 订单创建
+ *
+ * @param createOrderRequest
* @return
*/
- public static PayInfo tradePayOff(TradePayOffData tradePayOffData){
- TradeRequest request = new TradeRequest<TradePayOffData>();
- request.setSceneId(QianYunTongProperties.sceneId);
- request.setAppId(QianYunTongProperties.appId);
+ 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("prod".equals(qianYunTongConfig.getActiveProfile()) ? "1954792737421942784" : "1948289607125864448");
+ request.setAppId(qianYunTongConfig.getAppkey());
request.setConfigVersion(1);
request.setRequestId(UUIDUtil.getRandomCode());
- request.setData(tradePayOffData);
+ request.setData(createOrderRequest);
//请求路径
- String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff";
+ 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>();
@@ -305,8 +479,90 @@
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));
+ 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 busiResp = jsonObject.getJSONObject("busiResp");
+ OrderInfo orderInfo = busiResp.getObject("orderInfo", OrderInfo.class);
+ return orderInfo;
+ }
+
+ /**
+ * (补偿单)拉起支付
+ *
+ * @param tradePayOffData
+ * @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("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 = qianYunTongConfig.getApiUrl() + "/openapi/rest/1.0/tradePayOff";
+ //私钥文件
+ 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));
@@ -314,7 +570,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"));
}
@@ -325,69 +581,25 @@
/**
- * 拉起支付
- * @param tradePayOff1Data
- * @return
- */
- public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data){
- TradeRequest request = new TradeRequest<TradePayOff1Data>();
- request.setSceneId(QianYunTongProperties.sceneId);
- request.setAppId(QianYunTongProperties.appId);
- request.setConfigVersion(1);
- request.setRequestId(UUIDUtil.getRandomCode());
- request.setData(tradePayOff1Data);
- //请求路径
- String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff";
- //私钥文件
- String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
- //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
- String appKey = QianYunTongProperties.appkey;//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(), QianYunTongProperties.userName);
- contentMap.put(SystemParameterNames.getStatus(), QianYunTongProperties.status);
- 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 busiResp = jsonObject.getJSONObject("busiResp");
- PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class);
- return payInfo;
- }
-
-
- /**
* 查询支付单信息
+ *
* @param getPaymentInfoDataRequest
* @return
*/
- public static GetPaymentInfo paymentInfo(GetPaymentInfoDataRequest getPaymentInfoDataRequest){
+ public static GetPaymentInfo paymentInfo(GetPaymentInfoDataRequest getPaymentInfoDataRequest) {
+ getPaymentInfoDataRequest.setPartnerId("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>();
@@ -398,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));
@@ -407,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"));
}
@@ -424,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>();
@@ -444,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));
@@ -453,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