From 7c48261114a964c5cc3a964bcf00772152d2b531 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 01 八月 2025 13:47:05 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/QianYunTong

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java |  595 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 595 insertions(+), 0 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
new file mode 100644
index 0000000..b0314db
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -0,0 +1,595 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.google.gson.Gson;
+import com.open.common.util.OpenApiClient;
+import com.open.common.util.SystemParameterNames;
+import com.stylefeng.guns.modular.system.util.UUIDUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.*;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 9:34
+ */
+@Slf4j
+public class OrderUtil {
+	
+	
+	public static void main(String[] args) {
+		//创建行程
+//		CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+//		request.setScene("TRAFFIC");
+//		request.setPartnerId("522700");
+//		request.setOrderNo("01234567890");
+//		request.setCustomerId("11448156");
+//		request.setDriverId("11448158");
+//		request.setSupplierShopId("981100006005951");
+//		request.setServiceType(1);
+//		String travelItinerary = createTravelItinerary(request);
+//		System.err.println(travelItinerary);//1950363840206753792
+		
+		//修改行程状态
+//		ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
+//		request.setScene("TRAFFIC");
+//		request.setPartnerId("522700");
+//		request.setOrderId("1950363840206753792");
+//		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("1950363840206753792");
+//		tradeOrderCreateData.setOrderNo("01234567890");
+//		tradeOrderCreateData.setCustomerId("11448156");
+//		tradeOrderCreateData.setPayPartnerId("5400004");
+//		tradeOrderCreateData.setPartnerPayId("1950363840206753792");
+//		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("wxcbad113185a243e1");
+//		goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ");
+//		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("1948685426689200128");
+//		tradePayOff1Data.setCurrency("RMB");
+//		tradePayOff1Data.setTotalFee("1");
+//		tradePayOff1Data.setRetUrl("/home/");
+//		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("wxcbad113185a243e1");
+//		goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ");
+//		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("11448158");
+//		createOrderRequest.setOrderAppId("52270015");
+//		createOrderRequest.setScene("TRAFFIC");
+//		createOrderRequest.setPartnerId("522700");
+//		createOrderRequest.setField1("{\"profitSharing\":\"1\",\"isPromote\":\"0\"}");
+//		createOrderRequest.setCharge(new BigDecimal("0.01"));
+//		createOrderRequest.setChannelSource("GRJYCXWXXCX");
+//		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 tradePayOff1Data
+	 * @return
+	 */
+	public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) {
+		TradeRequest request = new TradeRequest<TradePayOff1Data>();
+		request.setSceneId("1911676727023968256");
+		request.setAppId(QianYunTongProperties.appkey);
+		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 request
+	 * @return 行程单ID
+	 */
+	public static String createTravelItinerary(CreateTravelItineraryRequest request){
+		request.setScene("TRAFFIC");
+		request.setPartnerId("522700");
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/createTravelItinerary";
+		//私钥文件
+		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"));
+		}
+		return jsonObject.getString("busiResp");
+	}
+	
+	
+	
+	/**
+	 * 修改行程单
+	 * @param request
+	 */
+	public static Boolean modifyTravelItinerary(ModifyTravelItineraryRequest request){
+		request.setScene("TRAFFIC");
+		request.setPartnerId("522700");
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/modifyTravelItinerary";
+		//私钥文件
+		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"));
+		}
+		return true;
+	}
+	
+	
+	/**
+	 * 行程单列表查询
+	 * @param request
+	 * @return
+	 */
+	public static ListPage<TravelItinerary> getTravelItineraryList(GetTravelItineraryListRequest request){
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/getTravelItineraryList";
+		//私钥文件
+		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");
+		Integer total = busiResp.getInteger("total");
+		Integer pageNum = busiResp.getInteger("pageNum");
+		Integer pageSize = busiResp.getInteger("pageSize");
+		JSONArray list = busiResp.getJSONArray("list");
+		List<TravelItinerary> travelItineraryList = new ArrayList<>();
+		for (int i = 0; i < list.size(); i++) {
+			TravelItinerary object = list.getObject(i, TravelItinerary.class);
+			travelItineraryList.add(object);
+		}
+		ListPage listPage = new ListPage<TravelItinerary>();
+		listPage.setTotal(total);
+		listPage.setPageNum(pageNum);
+		listPage.setPageSize(pageSize);
+		listPage.setList(travelItineraryList);
+		return listPage;
+	}
+	
+	/**
+	 * 订单创建及拉起支付
+	 *
+	 * @param tradeOrderCreateData
+	 * @return
+	 */
+	public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) {
+		TradeRequest request = new TradeRequest<TradeOrderCreateData>();
+		request.setSceneId("1945688132719169536");
+		request.setAppId(QianYunTongProperties.appkey);
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(tradeOrderCreateData);
+		
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate";
+		//私钥文件
+		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"));
+		}
+		TradeOrderCreate busiResp = jsonObject.getObject("busiResp", TradeOrderCreate.class);
+		return busiResp;
+	}
+	
+	/**
+	 * 订单创建
+	 *
+	 * @param createOrderRequest
+	 * @return
+	 */
+	public static OrderInfo tradeOrderCreate(CreateOrderRequest createOrderRequest) {
+		TradeRequest request = new TradeRequest<CreateOrderRequest>();
+		request.setSceneId(QianYunTongProperties.sceneId);
+		request.setAppId(QianYunTongProperties.appkey);
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(createOrderRequest);
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate";
+		//私钥文件
+		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");
+		OrderInfo orderInfo = busiResp.getObject("orderInfo", OrderInfo.class);
+		return orderInfo;
+	}
+	
+	/**
+	 * (补偿单)拉起支付
+	 *
+	 * @param tradePayOffData
+	 * @return
+	 */
+	public static PayInfo tradePayOff(TradePayOffData tradePayOffData) {
+		TradeRequest request = new TradeRequest<TradePayOffData>();
+		request.setSceneId("1774717104844095488");
+		request.setAppId(QianYunTongProperties.appkey);
+		request.setConfigVersion(1);
+		request.setRequestId(UUIDUtil.getRandomCode());
+		request.setData(tradePayOffData);
+		//请求路径
+		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){
+		GetPaymentInfoRequest request = new GetPaymentInfoRequest();
+		request.setRequstType("POST");
+		request.setBusType(1);
+		request.setData(getPaymentInfoDataRequest);
+		
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/paymentInfo";
+		//私钥文件
+		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("retCode");
+		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)){
+			log.error("【查询支付单信息】失败:" + jsonObject.getString("retMsg"));
+			throw new RuntimeException("【查询支付单信息】失败:" + jsonObject.getString("retMsg"));
+		}
+		GetPaymentInfo payInfo = object.getObject("data", GetPaymentInfo.class);
+		return payInfo;
+	}
+	
+	
+	/**
+	 * (补偿单)支付成功通知
+	 * @param request
+	 * @return
+	 */
+	public static OrderInfo paymentOrder(PaymentOrderRequest request){
+		//请求路径
+		String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/paymentOrder";
+		//私钥文件
+		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(!"0".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