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("0123456");
|
// request.setCustomerId("11448156");
|
// request.setDriverId("11448158");
|
// request.setSupplierShopId("981100006005951");
|
// request.setServiceType(1);
|
// String travelItinerary = createTravelItinerary(request);
|
// System.err.println(travelItinerary);//1948685426689200128
|
|
//修改行程状态
|
// ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
|
// request.setScene("TRAFFIC");
|
// request.setPartnerId("522700");
|
// request.setOrderId("1948685426689200128");
|
// 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("1948685426689200128");
|
// tradeOrderCreateData.setOrderNo("0123456");
|
// tradeOrderCreateData.setCustomerId("11448156");
|
// tradeOrderCreateData.setPayPartnerId("5400004");
|
// tradeOrderCreateData.setPartnerPayId("1948685426689200128");
|
// tradeOrderCreateData.setCurrency("RMB");
|
// tradeOrderCreateData.setTotalFee("1");
|
// tradeOrderCreateData.setRetUrl("/home/");
|
// tradeOrderCreateData.setClientIp("127.0.0.1");
|
// tradeOrderCreateData.setNeedLoginFlag("N");
|
// tradeOrderCreateData.setOrderDesc("出行订单支付");
|
// tradeOrderCreateData.setAccessMode("H5");
|
//
|
// 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=1948685426689200128, status=null), payInfo=PayInfo(retCode=000000, retMsg=success, success=true, data=PayInfoData(redirectUrl=https://qhsctest.qytzt.cn/gray/mobile/index.html?f=allCashDesk&accessToken=5nUBXayFpfZz%2FXUZiMu9L61szNy2MhjTJ938TeNnX0U%3D, payId=540000420250725000135548, status=null, payTime=null, payFee=null, paymentInfos=null), sign=c9d849ee21dcc401cee968d4d31de04f))
|
|
//查询支付单信息
|
// 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){
|
//请求路径
|
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){
|
//请求路径
|
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;
|
}
|
|
|
|
|
|
|
|
|
}
|