liujie
8 天以前 c0e9ac907ee658802f68eb4e770942e34e87cfd0
UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java
@@ -22,16 +22,92 @@
   
   
   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("123456");
//      request.setCustomerId("11448156");
//      request.setDriverId("11448158");
//      request.setSupplierShopId("981100006005951");
//      request.setServiceType(1);
//      String travelItinerary = createTravelItinerary(request);
//      System.err.println(travelItinerary);//1948565171253956608
      //修改行程状态
//      ModifyTravelItineraryRequest request = new ModifyTravelItineraryRequest();
//      request.setScene("TRAFFIC");
//      request.setPartnerId("522700");
//      request.setOrderId("1948565171253956608");
//      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("1948565171253956608");
//      tradeOrderCreateData.setOrderNo("123456");
//      tradeOrderCreateData.setCustomerId("11448156");
//      tradeOrderCreateData.setPayPartnerId("5400004");
//      tradeOrderCreateData.setPartnerPayId("1948565171253956608");
//      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("1");
//      goodsInfoRequest.setSubAppId(QianYunTongProperties.appId);
//      goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ");
//      goodsInfoRequest.setProfitSharing("1");
//      goodsInfo.add(goodsInfoRequest);
//      tradeOrderCreateData.setGoodsInfo(goodsInfo);
//      TradeOrderCreate tradeOrderCreate = tradeOrderCreate1(tradeOrderCreateData);
//      System.err.println(tradeOrderCreate);
//      //TradeOrderCreate(orderInfo=OrderInfo(orderId=1948565171253956608, 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%2FXUZiMu9LyWg15VM5hbmhIjUt0hdmws%3D, payId=540000420250725000135518, status=null, payTime=null, payFee=null, paymentInfos=null), sign=ea01f3b186be02e43367b856fd2ec699))
      //查询支付单信息
//      GetPaymentInfoDataRequest getPaymentInfoDataRequest = new GetPaymentInfoDataRequest();
//      getPaymentInfoDataRequest.setPartnerId("5400004");
//      getPaymentInfoDataRequest.setPartnerPayId("1948565171253956608");
//      GetPaymentInfo getPaymentInfo = paymentInfo(getPaymentInfoDataRequest);
//      System.err.println(getPaymentInfo);
      //拉起支付
      TradePayOff1Data tradePayOff1Data = new TradePayOff1Data();
      tradePayOff1Data.setPartnerId("5400004");
      tradePayOff1Data.setScene("TRAFFIC");
      tradePayOff1Data.setPartnerPayId("1948565171253956608");
      tradePayOff1Data.setCurrency("RMB");
      tradePayOff1Data.setTotalFee("1");
      tradePayOff1Data.setRetUrl("/home/");
      tradePayOff1Data.setClientIp("127.0.0.1");
      tradePayOff1Data.setNeedLoginFlag("N");
      tradePayOff1Data.setOrderDesc("出行订单支付");
      tradePayOff1Data.setAccessMode("H5");
      List<GoodsInfoRequest> goodsInfo = new ArrayList<>();
      GoodsInfoRequest goodsInfoRequest = new GoodsInfoRequest();
      goodsInfoRequest.setId("1");
      goodsInfoRequest.setSubAppId(QianYunTongProperties.appId);
      goodsInfoRequest.setSubOpenId("oVLur6yFtED8ruXBWUFKXjzXJ_BQ");
      goodsInfoRequest.setProfitSharing("1");
      goodsInfo.add(goodsInfoRequest);
      tradePayOff1Data.setGoodsInfo(goodsInfo);
      PayInfo payInfo = tradePayOff1(tradePayOff1Data);
      System.err.println(payInfo);
//      CreateOrderRequest createOrderRequest = new CreateOrderRequest();
//      createOrderRequest.setTreatShopId("");
@@ -48,22 +124,21 @@
      
   }
   
   /**
    * 订单创建
    * @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) {
      TradeRequest request = new TradeRequest<TradePayOff1Data>();
      request.setSceneId("1911676727023968256");
      request.setAppId(QianYunTongProperties.appkey);
      request.setConfigVersion(1);
      request.setRequestId(UUIDUtil.getRandomCode());
      request.setData(createOrderRequest);
      request.setData(tradePayOff1Data);
      //请求路径
      String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradeOrderCreate";
      String url = QianYunTongProperties.apiUrl + "/openapi/rest/1.0/tradePayOff";
      //私钥文件
      String skprivateKeyFile = QianYunTongProperties.privateKeyPath;
      //注意:私钥文件需要开发者手动新建.pem文件,将委办局提供的私钥串复制进文件里用于sign加密
@@ -81,19 +156,19 @@
      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));
      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;
   }
   
   /**
@@ -227,18 +302,16 @@
      return listPage;
   }
   
   /**
    * 订单创建及拉起支付
    *
    * @param tradeOrderCreateData
    * @return
    */
   public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData){
   public static TradeOrderCreate tradeOrderCreate1(TradeOrderCreateData tradeOrderCreateData) {
      TradeRequest request = new TradeRequest<TradeOrderCreateData>();
      request.setSceneId(QianYunTongProperties.sceneId);
      request.setAppId(QianYunTongProperties.appId);
      request.setSceneId("1945688132719169536");
      request.setAppId(QianYunTongProperties.appkey);
      request.setConfigVersion(1);
      request.setRequestId(UUIDUtil.getRandomCode());
      request.setData(tradeOrderCreateData);
@@ -268,7 +341,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,16 +349,63 @@
      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){
   public static PayInfo tradePayOff(TradePayOffData tradePayOffData) {
      TradeRequest request = new TradeRequest<TradePayOffData>();
      request.setSceneId(QianYunTongProperties.sceneId);
      request.setAppId(QianYunTongProperties.appId);
      request.setAppId(QianYunTongProperties.appkey);
      request.setConfigVersion(1);
      request.setRequestId(UUIDUtil.getRandomCode());
      request.setData(tradePayOffData);
@@ -314,56 +434,9 @@
      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"));
      }
      JSONObject busiResp = jsonObject.getJSONObject("busiResp");
      PayInfo payInfo = busiResp.getObject("payInfo", PayInfo.class);
      return payInfo;
   }
   /**
    * 拉起支付
    * @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);