Pu Zhibing
2025-08-05 d8f0615909cedc1446da7c06b2ab7599abe07c9d
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -11,6 +11,8 @@
import lombok.extern.slf4j.Slf4j;
import java.math.BigDecimal;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -180,6 +182,7 @@
    */
   public static PayInfo tradePayOff1(TradePayOff1Data tradePayOff1Data) {
      tradePayOff1Data.setPartnerId("5400004");
      tradePayOff1Data.setTimeout("72H");
      tradePayOff1Data.setScene("TRAFFIC");
      tradePayOff1Data.setCurrency("RMB");
      tradePayOff1Data.setNeedLoginFlag("N");
@@ -236,10 +239,13 @@
   
   /**
    * 创建行程单
    *
    * @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";
      //私钥文件
@@ -265,7 +271,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"));
      }
@@ -273,12 +279,14 @@
   }
   
   
   /**
    * 修改行程单
    *
    * @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";
      //私钥文件
@@ -304,7 +312,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"));
      }
@@ -314,10 +322,14 @@
   
   /**
    * 行程单列表查询
    *
    * @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";
      //私钥文件
@@ -343,7 +355,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"));
      }
@@ -357,7 +369,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);
@@ -374,13 +386,14 @@
   public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) {
      tradeOrderCreateData.setScene("TRAFFIC");
      tradeOrderCreateData.setPartnerId("522700");
      tradeOrderCreateData.setTimeout("72H");
      tradeOrderCreateData.setOrderAppId("52270015");
      tradeOrderCreateData.setChannelSource("GRJYCXWXXCX");
      tradeOrderCreateData.setPayPartnerId("5400004");
      tradeOrderCreateData.setCurrency("RMB");
      tradeOrderCreateData.setNeedLoginFlag("N");
      tradeOrderCreateData.setAccessMode("APP");
      tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest->{
      tradeOrderCreateData.getGoodsInfo().forEach(goodsInfoRequest -> {
         goodsInfoRequest.setId("981100006005901");
         goodsInfoRequest.setSubAppId("wxcc3c9058e2b294db");
         goodsInfoRequest.setProfitSharing("1");
@@ -437,6 +450,11 @@
    * @return
    */
   public static OrderInfo tradeOrderCreate(CreateOrderRequest createOrderRequest) {
      createOrderRequest.setOrderAppId("52270015");
      createOrderRequest.setScene("TRAFFIC");
      createOrderRequest.setPartnerId("522700");
      createOrderRequest.setChannelSource("GRJYCXWXXCX");
      TradeRequest request = new TradeRequest<CreateOrderRequest>();
      request.setSceneId(QianYunTongProperties.sceneId);
      request.setAppId(QianYunTongProperties.appkey);
@@ -485,10 +503,18 @@
    */
   public static PayInfo tradePayOff(TradePayOffData tradePayOffData) {
      tradePayOffData.setPartnerId("5400004");
      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<>();
@@ -498,7 +524,7 @@
      tradePayOffData.setPaymentInfos(paymentInfoRequests);
      List<GoodsInfo> goodsInfo = new ArrayList<>();
      GoodsInfo goodsInfo1 = new GoodsInfo();
      goodsInfo1.setMerchantCode(":B00000872");
      goodsInfo1.setMerchantCode("B00000872");
      goodsInfo1.setCustId("CB0000004686");
      goodsInfo1.setCustName("证联消费平台交易客户");
      goodsInfo1.setProfitSharing("1");
@@ -509,7 +535,7 @@
      TradeRequest request = new TradeRequest<TradePayOffData>();
      request.setSceneId("1774717104844095488");
      request.setAppId(QianYunTongProperties.appkey);
      request.setConfigVersion(1);
      request.setConfigVersion(2);
      request.setRequestId(UUIDUtil.getRandomCode());
      request.setData(tradePayOffData);
      //请求路径
@@ -549,10 +575,13 @@
   
   /**
    * 查询支付单信息
    *
    * @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);
@@ -583,13 +612,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"));
      }
@@ -600,10 +629,16 @@
   
   /**
    * (补偿单)支付成功通知
    *
    * @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";
      //私钥文件
@@ -629,19 +664,13 @@
      log.info("【(补偿单)支付成功通知】请求结果:" + result);
      JSONObject jsonObject = JSON.parseObject(result);
      String resCode = jsonObject.getString("resCode");
      if(!"0".equals(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;
   }
   
   
}