From 410e261a251e07b17bba8aa9b098eb21c34de5cb Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 30 七月 2025 16:30:53 +0800
Subject: [PATCH] 添加证联集成

---
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java           |   57 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java        |   35 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java              |   58 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java               |   62 +
 DriverQYTTravel/guns-admin/src/main/resources/application.yml                                                                        |  119 +++
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java          |   95 ++
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java                                        |    2 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java                        |   10 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java                   |   31 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java  |   39 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java               |   64 ++
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java            |   27 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java            |   53 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java                       |   31 
 DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java                                                 |   47 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/OrderUtil.java                           |  595 ++++++++++++++++++
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java  |   43 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java                                       |   15 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java                |   45 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java         |   13 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java        |   41 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java                               |    4 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                                        |    1 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java                  |   31 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java               |   84 +-
 MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java                                                  |    6 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java              |   19 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java         |   23 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java     |   19 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java                   |   42 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java |   47 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java              |   39 +
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java                      |   27 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java            |   15 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java                      |    2 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java                     |   19 
 DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java                   |    7 
 37 files changed, 1,802 insertions(+), 65 deletions(-)

diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index 21605f4..4d6a28b 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -746,6 +746,7 @@
             if(null == position){
                 position = new DriverPosition();
             }
+            position.setDriverId(orderPosition.getDriverId());
             position.setPoint(point);
             mongoTemplate.save(position);
             //处理业务上的功能
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index b7aa424..ce50214 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -16,6 +16,8 @@
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.*;
+import com.stylefeng.guns.modular.system.util.qianyuntong.OrderUtil;
+import com.stylefeng.guns.modular.system.util.qianyuntong.model.CreateTravelItineraryRequest;
 import com.stylefeng.guns.modular.taxi.model.OrderTaxi;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -239,7 +241,14 @@
         // 是否推广订单
         Integer promotion = isPromotion(uid);
         orderPrivateCar.setPromotion(promotion);
-
+        UserInfo userInfo = userInfoMapper.selectById(orderPrivateCar.getUserId());
+        //调三方订单中心创建行程单
+        CreateTravelItineraryRequest request = new CreateTravelItineraryRequest();
+        request.setOrderNo("PR" + orderPrivateCar.getId());
+        request.setCustomerId(userInfo.getOnconUUID());
+        request.setDriverId(driver.getEmpId().toString());
+        String travelItinerary = OrderUtil.createTravelItinerary(request);
+//        orderPrivateCar.set
         this.updateById(orderPrivateCar);
 
         //处理摆渡车的情况
@@ -319,7 +328,7 @@
             }).start();
         }
         
-
+    
         return ResultUtil.success(orderPrivateCar.getId());
     }
 
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
index 556a81e..8554b90 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/UserInfo.java
@@ -146,6 +146,11 @@
      */
 
     private Date bindExpireDate;
+    /**
+     * 中台用户ID
+     */
+    @TableField("onconUUID")
+    private String onconUUID;
 
     public Integer getBindDriverId() {
         return bindDriverId;
@@ -354,7 +359,15 @@
     public void setAppletsOpenId(String appletsOpenId) {
         this.appletsOpenId = appletsOpenId;
     }
-
+    
+    public String getOnconUUID() {
+        return onconUUID;
+    }
+    
+    public void setOnconUUID(String onconUUID) {
+        this.onconUUID = onconUUID;
+    }
+    
     @Override
     public String toString() {
         return "UserInfo{" +
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
index 72db972..a67412b 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/OrderServiceImpl.java
@@ -509,10 +509,10 @@
     public ResultUtil grabOrder(Integer orderId, Integer orderType, Integer uid) throws Exception {
         //专车和出租是批量下单,所以这里需要将两种类型的抢单操作通过一个锁来一起控制
         if(1 == orderType || 2 == orderType){
-//            RLock lock = redissonClient.getLock("grabOrder:" + orderId);
-//            if(!lock.tryLock()){
-//                return ResultUtil.error("抢单失败,请稍后重试");
-//            }
+            Boolean lock = redisTemplate.opsForValue().setIfAbsent("grabOrder:" + orderId, "1");
+            if(!lock){
+                return ResultUtil.error("抢单失败,请稍后重试");
+            }
             try {
                 if(1 == orderType){
                     return orderPrivateCarService.grabOrder(orderId, uid);
@@ -523,7 +523,7 @@
             }catch (Exception e){
                 e.printStackTrace();
             }finally {
-//                lock.unlock();
+                redisTemplate.delete("grabOrder:" + orderId);
             }
         }
         switch (orderType){
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
index 6b0eeaf..e893605 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/PushUtil.java
@@ -57,7 +57,7 @@
     
     private Map<String, Timer> taskMap = new HashMap<>();//存储定时推送的定时器
     
-    private final String socket_uri = "http://172.21.35.142:6000";
+    private final String socket_uri = "http://127.0.0.1:6000";
 
 
     // qyt 改派重新推单
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..b2f30ba
--- /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");
+		request.setSupplierShopId("981100006005951");
+		request.setServiceType(1);
+		//请求路径
+		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;
+	}
+	
+	
+	
+	
+	
+	
+	
+	
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java
index 99a7c02..84d54b2 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongConfig.java
@@ -62,6 +62,10 @@
 	 * 向UAAS服务请求到的secret_key
 	 */
 	private String secretKey;
+	/**
+	 * 场景编号
+	 */
+	String sceneId;
 	
 	
 	public QianYunTongConfig getQianYunTongConfig() {
@@ -77,6 +81,7 @@
 			this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
 			this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
 			this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
+			this.sceneId = "1948289607125864448";
 		}
 		if("test".equals(activeProfile)){
 			this.setAppkey("10001104");
@@ -90,6 +95,7 @@
 			this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
 			this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
 			this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
+			this.sceneId = "1948289607125864448";
 		}
 		if("prod".equals(activeProfile)){
 			this.setAppkey("10001104");
@@ -103,6 +109,7 @@
 			this.setAccount("d8bef0a04db511f0b79d01a3e2b7587e");
 			this.setAccessKey("TYMFTFD5SIIT15DCCUD7");
 			this.setSecretKey("AoI1dkH3yoAvXoaQlREO3ed9mwQJFluLTliS9T1z");
+			this.sceneId = "";
 		}
 		return this;
 	}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
index d06297f..0cf0368 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/QianYunTongProperties.java
@@ -9,41 +9,6 @@
 public interface QianYunTongProperties {
 	/************************************开发/测试start***********************************/
 
-//	/**
-//	 * appkey
-//	 */
-//	String appkey = "10001104";
-//	/**
-//	 * 私钥地址
-//	 */
-//	String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem";
-//	/**
-//	 * 私钥地址
-//	 */
-//	String privateKeyPath = "/root/server/app/key/private_key_test.pem";
-//	/**
-//	 * 消费者账号
-//	 */
-//	String userName = "xiaofei";
-//	/**
-//	 * 状态
-//	 * 1:生产环境
-//	 * 2:测试环境
-//	 */
-//	String status = "1";
-//	/**
-//	 * API地址
-//	 */
-//	String apiUrl = "https://test-zhongtai.stqcloud.com:10070";
-//	/**
-//	 * 桶名
-//	 */
-//	String bucketName = "bucuTest0625";
-	
-	/************************************开发/测试end***********************************/
-	
-	/************************************生产start***********************************/
-	
 	/**
 	 * appkey
 	 */
@@ -51,15 +16,15 @@
 	/**
 	 * 私钥地址
 	 */
-//	String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key.pem";
+	String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key_test.pem";
 	/**
 	 * 私钥地址
 	 */
-	String privateKeyPath = "/root/server/app/key/private_key.pem";
+//	String privateKeyPath = "/root/server/app/key/private_key_test.pem";
 	/**
 	 * 消费者账号
 	 */
-	String userName = "xiwang";
+	String userName = "xiaofei";
 	/**
 	 * 状态
 	 * 1:生产环境
@@ -69,11 +34,50 @@
 	/**
 	 * API地址
 	 */
-	String apiUrl = "http://jjzhongtai.stqcloud.com:10010";
+	String apiUrl = "https://test-zhongtai.stqcloud.com:10070";
 	/**
 	 * 桶名
 	 */
-	String bucketName = "qyt20250702";
+	String bucketName = "bucuTest0625";
+	/**
+	 * 场景编号
+	 */
+	String sceneId = "1948289607125864448";
+	
+	/************************************开发/测试end***********************************/
+	
+	/************************************生产start***********************************/
+	
+//	/**
+//	 * appkey
+//	 */
+//	String appkey = "10001104";
+//	/**
+//	 * 私钥地址
+//	 */
+////	String privateKeyPath = "C:\\Users\\39373\\Desktop\\黔云通\\private_key.pem";
+//	/**
+//	 * 私钥地址
+//	 */
+//	String privateKeyPath = "/root/server/app/key/private_key.pem";
+//	/**
+//	 * 消费者账号
+//	 */
+//	String userName = "xiwang";
+//	/**
+//	 * 状态
+//	 * 1:生产环境
+//	 * 2:测试环境
+//	 */
+//	String status = "1";
+//	/**
+//	 * API地址
+//	 */
+//	String apiUrl = "http://jjzhongtai.stqcloud.com:10010";
+//	/**
+//	 * 桶名
+//	 */
+//	String bucketName = "qyt20250702";
 	
 	/************************************生产end***********************************/
 	
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java
new file mode 100644
index 0000000..2201301
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateOrderRequest.java
@@ -0,0 +1,53 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 9:35
+ */
+@Data
+public class CreateOrderRequest {
+	/**
+	 * 司机id
+	 */
+	private String treatShopId;
+	/**
+	 * 应用场景标识
+	 */
+	private String orderAppId;
+	/**
+	 * 场景标识
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 结算信息json串。其中结算分账标识(profitSharing:0:不分账,1:分账)、是否推广单标识(isPromote:1、是、0、否)必传。例:{"profitSharing":"0",”isPromote”:”0”}
+	 */
+	private String field1;
+	/**
+	 * 订单总金额,单位元
+	 */
+	private BigDecimal charge;
+	/**
+	 * 订单渠道。小程序传GRJYCXWXXCX,贵人家园传GRJY
+	 */
+	private String channelSource;
+	/**
+	 * 行程单ID
+	 */
+	private String orderId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 下单人ID
+	 */
+	private String customerId;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java
new file mode 100644
index 0000000..8ce9043
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/CreateTravelItineraryRequest.java
@@ -0,0 +1,43 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:31
+ */
+@Data
+public class CreateTravelItineraryRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 乘客ID
+	 */
+	private String customerId;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+	/**
+	 * 场景服务类型。1、出租;2、网约车;3、城际;4、顺风车
+	 */
+	private Integer serviceType;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java
new file mode 100644
index 0000000..4718623
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfo.java
@@ -0,0 +1,45 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 18:24
+ */
+@Data
+public class GetPaymentInfo {
+	/**
+	 * 支付流水号
+	 */
+	private String payId;
+	/**
+	 * 订单中心行程单ID
+	 */
+	private String partnerPayId;
+	/**
+	 * 接入模式:PC H5 APP
+	 */
+	private String accessMode;
+	/**
+	 * 用户标识
+	 */
+	private String customerId;
+	/**
+	 * 商户标识
+	 */
+	private String partnerId;
+	/**
+	 * 币种
+	 */
+	private String currency;
+	/**
+	 * 支付总金额
+	 */
+	private String totalFee;
+	/**
+	 * 商品信息
+	 */
+	private List<GoodsInfoRequest> goodsInfo;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java
new file mode 100644
index 0000000..c7828b8
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoDataRequest.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 17:08
+ */
+@Data
+public class GetPaymentInfoDataRequest {
+	/**
+	 * 支付单标识。传行程单ID
+	 */
+	private String partnerPayId;
+	/**
+	 * 商户号,由支付中心分配
+	 */
+	private String partnerId;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java
new file mode 100644
index 0000000..dfd62c0
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetPaymentInfoRequest.java
@@ -0,0 +1,23 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 17:03
+ */
+@Data
+public class GetPaymentInfoRequest {
+	/**
+	 * 默认传POST
+	 */
+	private String requstType;
+	/**
+	 * 默认传1
+	 */
+	private Integer busType;
+	/**
+	 * 业务参数
+	 */
+	private GetPaymentInfoDataRequest data;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java
new file mode 100644
index 0000000..fa978a7
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GetTravelItineraryListRequest.java
@@ -0,0 +1,47 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:31
+ */
+@Data
+public class GetTravelItineraryListRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 乘客ID
+	 */
+	private String customerId;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+	/**
+	 * 每页条数
+	 */
+	private Integer pageSize;
+	/**
+	 * 当前页码
+	 */
+	private Integer pageNum;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
new file mode 100644
index 0000000..b3d7f21
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/GoodsInfoRequest.java
@@ -0,0 +1,39 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:13
+ */
+@Data
+public class GoodsInfoRequest {
+	/**
+	 * 企业ID(补偿场景新创建的订单支付传备用金企业ID)
+	 */
+	private String id;
+	/**
+	 * 子商户微信appId(证联预下单支付必填)
+	 */
+	private String subAppId;
+	/**
+	 * 付款人的openId(证联预下单支付必填)
+	 */
+	private String subOpenId;
+	/**
+	 * 分账标识。0:不分账,1:分账
+	 */
+	private String profitSharing;
+	/**
+	 * 地区标识,默认传520100
+	 */
+	private String areaInfo;
+	/**
+	 * 是否匿名。默认传0
+	 */
+	private String payType;
+	/**
+	 * 业务类型,默认传10408
+	 */
+	private String businessType;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java
new file mode 100644
index 0000000..eda232f
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ListPage.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:45
+ */
+@Data
+public class ListPage<T> {
+	/**
+	 * 总条数
+	 */
+	private Integer total;
+	/**
+	 * 当前页码
+	 */
+	private Integer pageNum;
+	/**
+	 * 每页条数
+	 */
+	private Integer pageSize;
+	/**
+	 * 数据列表
+	 */
+	private T list;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java
new file mode 100644
index 0000000..f7ff87c
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/ModifyTravelItineraryRequest.java
@@ -0,0 +1,39 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:31
+ */
+@Data
+public class ModifyTravelItineraryRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 行程单ID
+	 */
+	private String orderId;
+	/**
+	 * 行程单状态。2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,9=已完成,10=已取消,11=改派中
+	 */
+	private Integer status;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java
new file mode 100644
index 0000000..ef627a3
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/OrderInfo.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 9:44
+ */
+@Data
+public class OrderInfo {
+	/**
+	 * 订单id
+	 */
+	private String orderId;
+	/**
+	 * 订单状态
+	 */
+	private String status;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java
new file mode 100644
index 0000000..c990caa
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfo.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:18
+ */
+@Data
+public class PayInfo {
+	/**
+	 * 证联返回码000000:请求成功
+	 */
+	private String retCode;
+	/**
+	 * 证联返回信息
+	 */
+	private String retMsg;
+	/**
+	 * true、false
+	 */
+	private String success;
+	/**
+	 * 证联返回数据
+	 */
+	private PayInfoData data;
+	/**
+	 * 签名
+	 */
+	private String sign;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java
new file mode 100644
index 0000000..24cf5e5
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PayInfoData.java
@@ -0,0 +1,42 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:18
+ */
+@Data
+public class PayInfoData {
+	/**
+	 * 收银台链接
+	 */
+	private String redirectUrl;
+	/**
+	 * 支付流水号
+	 */
+	private String payId;
+	/**
+	 * 支付工单状态
+	 * 0	待支付
+	 * 1	部分支付成功
+	 * 2	支付成功
+	 * 3	支付失败
+	 */
+	private String status;
+	/**
+	 * 支付时间,格式:yyyy-MM-dd HH:mm:ss
+	 */
+	private String payTime;
+	/**
+	 * 扣款金额 单位分
+	 */
+	private String payFee;
+	/**
+	 * 支付信息
+	 */
+	private List<PaymentInfo> paymentInfos;
+	
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java
new file mode 100644
index 0000000..7db70c7
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfo.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:32
+ */
+@Data
+public class PaymentInfo {
+	/**
+	 * 支付模式。此场景下默认传501212(测试和生产一致)
+	 */
+	private String payModeId;
+	/**
+	 * 支付交易明细标识
+	 */
+	private String payItemId;
+	/**
+	 * 支付金额
+	 */
+	private String payFee;
+	/**
+	 * 支付状态
+	 */
+	private String status;
+	/**
+	 * 支付时间
+	 */
+	private String payTime;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java
new file mode 100644
index 0000000..dbd52bc
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentInfoRequest.java
@@ -0,0 +1,15 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:32
+ */
+@Data
+public class PaymentInfoRequest {
+	/**
+	 * 支付模式。此场景下默认传501212(测试和生产一致)
+	 */
+	private String payModeId;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java
new file mode 100644
index 0000000..4fbf0ce
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/PaymentOrderRequest.java
@@ -0,0 +1,57 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 18:29
+ */
+@Data
+public class PaymentOrderRequest {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 场景应用标识。默认52270015
+	 */
+	private String mhltiCenterAppId;
+	/**
+	 * 支付流水明细
+	 */
+	private String payItemId;
+	/**
+	 * 支付明细json串
+	 */
+	private String paymentInfo;
+	/**
+	 * 订单ID
+	 */
+	private String orderId;
+	/**
+	 * 支付金额,单位元
+	 */
+	private BigDecimal charge;
+	/**
+	 * 支付时间
+	 */
+	private String payTime;
+	/**
+	 * 支付流水号
+	 */
+	private String paymentSerialNumber;
+	/**
+	 * 付款类型,4、线上支付
+	 */
+	private Integer payType;
+	/**
+	 * 付款方式,6:微信  7:支付宝  8:银行卡 9:银联二维码 10银联购物车收银台
+	 */
+	private Integer payChannel;
+	/**
+	 * 是否补偿单。1、是,0、否
+	 */
+	private Integer isCompensate;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java
new file mode 100644
index 0000000..801e14d
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallback.java
@@ -0,0 +1,27 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 19:31
+ */
+@Data
+public class QYTPaymentCallback {
+	/**
+	 * 加密字符串
+	 */
+	private String sign;
+	/**
+	 * 时间戳
+	 */
+	private String timeStamp;
+	/**
+	 * 请求调用唯一标识
+	 */
+	private String messageId;
+	/**
+	 * 支付结果信息
+	 */
+	private QYTPaymentCallbackData data;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java
new file mode 100644
index 0000000..4bf8523
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentCallbackData.java
@@ -0,0 +1,41 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 19:34
+ */
+@Data
+public class QYTPaymentCallbackData {
+	/**
+	 * 商户单标识。行程单ID
+	 */
+	private String partnerPayId;
+	/**
+	 * 支付中心商户号
+	 */
+	private String partnerId;
+	/**
+	 * 支付工单标识
+	 */
+	private String payId;
+	/**
+	 * 支付状态。1.未支付 2已支付
+	 */
+	private String status;
+	/**
+	 * 支付时间,格式:YYYY-MM-DD HH:mm:ss
+	 */
+	private String payTime;
+	/**
+	 * 扣款总金额 单位分
+	 */
+	private String payFee;
+	/**
+	 * 支付详细信息
+	 */
+	private List<QYTPaymentInfoCallback> paymentInfos;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java
new file mode 100644
index 0000000..19c03d3
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/QYTPaymentInfoCallback.java
@@ -0,0 +1,35 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 19:37
+ */
+@Data
+public class QYTPaymentInfoCallback {
+	/**
+	 * 支付交易明细标识
+	 */
+	private String payItemId;
+	/**
+	 * 支付模式
+	 */
+	private String payModeId;
+	/**
+	 * 支付金额,单位分
+	 */
+	private String payFee;
+	/**
+	 * 实付金额,单位分
+	 */
+	private String realFee;
+	/**
+	 * 支付状态。1.未支付 2已支付
+	 */
+	private String status;
+	/**
+	 * 支付时间,格式:YYYY-MM-DD HH:mm:ss
+	 */
+	private String payTime;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java
new file mode 100644
index 0000000..2afc392
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreate.java
@@ -0,0 +1,19 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:17
+ */
+@Data
+public class TradeOrderCreate {
+	/**
+	 * 订单信息
+	 */
+	private OrderInfo orderInfo;
+	/**
+	 * 支付接口调用信息
+	 */
+	private PayInfo payInfo;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java
new file mode 100644
index 0000000..fa53305
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeOrderCreateData.java
@@ -0,0 +1,95 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:03
+ */
+@Data
+public class TradeOrderCreateData {
+	/**
+	 * 司机id
+	 */
+	private String treatShopId;
+	/**
+	 * 应用场景标识
+	 */
+	private String orderAppId;
+	/**
+	 * 场景标识
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 结算信息json串。其中结算分账标识(profitSharing:0:不分账,1:分账)、是否推广单标识(isPromote:1、是、0、否)必传。例:{"profitSharing":"0",”isPromote”:”0”}
+	 */
+	private String field1;
+	/**
+	 * 订单总金额,单位元
+	 */
+	private BigDecimal charge;
+	/**
+	 * 订单渠道。小程序传GRJYCXWXXCX,贵人家园传GRJY
+	 */
+	private String channelSource;
+	/**
+	 * 行程单ID
+	 */
+	private String orderId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 下单人ID
+	 */
+	private String customerId;
+	/**
+	 * 商户号,由支付中心分配。测试环境5400004
+	 */
+	private String payPartnerId;
+	/**
+	 * 商户单标识。订单中心行程单号,每次请求请保持唯一性。
+	 */
+	private String partnerPayId;
+	/**
+	 * 币种。RMB(人民币);USD(美元)
+	 */
+	private String currency;
+	/**
+	 * 交易总金额,单位分。
+	 */
+	private String totalFee;
+	/**
+	 * 前台通知URL地址。
+	 */
+	private String retUrl;
+	/**
+	 * 用户IP
+	 */
+	private String clientIp;
+	/**
+	 * Y代表要登录,跳到标准收银台
+	 * N代表不需要登录,跳到无支付帐号收银台
+	 */
+	private String needLoginFlag;
+	/**
+	 * 支付单描述
+	 */
+	private String orderDesc;
+	/**
+	 * 接入模式:PC、H5、APP
+	 */
+	private String accessMode;
+	/**
+	 * 支付信息
+	 */
+	private List<GoodsInfoRequest> goodsInfo;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java
new file mode 100644
index 0000000..554c2d9
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOff1Data.java
@@ -0,0 +1,58 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:23
+ */
+@Data
+public class TradePayOff1Data {
+	/**
+	 * 商户号,由支付中心分配。测试环境5400004
+	 */
+	private String partnerId;
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 商户单标识。订单中心订单号,每次请求请保持唯一性。
+	 */
+	private String partnerPayId;
+	/**
+	 * 币种。RMB(人民币);USD(美元)
+	 */
+	private String currency;
+	/**
+	 * 交易总金额,单位分。
+	 */
+	private String totalFee;
+	/**
+	 * 前台通知URL地址。
+	 */
+	private String retUrl;
+	/**
+	 * 用户IP
+	 */
+	private String clientIp;
+	/**
+	 * Y代表要登录,跳到标准收银台
+	 * N代表不需要登录,跳到无支付帐号收银台
+	 */
+	private String needLoginFlag;
+	/**
+	 * 支付单描述
+	 */
+	private String orderDesc;
+	/**
+	 * 接入模式:PC、H5、APP
+	 */
+	private String accessMode;
+	/**
+	 * 商品描述信息。Json数组
+	 */
+	private List<GoodsInfoRequest> goodsInfo;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java
new file mode 100644
index 0000000..c6d1f96
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradePayOffData.java
@@ -0,0 +1,62 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:23
+ */
+@Data
+public class TradePayOffData {
+	/**
+	 * 商户号,由支付中心分配。测试环境5400004
+	 */
+	private String partnerId;
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 商户单标识。订单中心订单号,每次请求请保持唯一性。
+	 */
+	private String partnerPayId;
+	/**
+	 * 币种。RMB(人民币);USD(美元)
+	 */
+	private String currency;
+	/**
+	 * 交易总金额,单位分。
+	 */
+	private String totalFee;
+	/**
+	 * 前台通知URL地址。
+	 */
+	private String retUrl;
+	/**
+	 * 用户IP
+	 */
+	private String clientIp;
+	/**
+	 * Y代表要登录,跳到标准收银台
+	 * N代表不需要登录,跳到无支付帐号收银台
+	 */
+	private String needLoginFlag;
+	/**
+	 * 支付单描述
+	 */
+	private String orderDesc;
+	/**
+	 * 接入模式:PC、H5、APP
+	 */
+	private String accessMode;
+	/**
+	 * 支付信息
+	 */
+	private List<PaymentInfoRequest> paymentInfos;
+	/**
+	 * 商品描述信息。Json数组
+	 */
+	private List<GoodsInfo> goodsInfo;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java
new file mode 100644
index 0000000..b2ce9bb
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TradeRequest.java
@@ -0,0 +1,31 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 10:22
+ */
+@Data
+public class TradeRequest<T> {
+	/**
+	 * 场景编号.交易中心提供。测试环境:1948289607125864448
+	 */
+	private String sceneId;
+	/**
+	 * 应用编号。中台应用appKey
+	 */
+	private String appId;
+	/**
+	 * 场景版本。交易中心提供。测试环境1
+	 */
+	private Integer configVersion;
+	/**
+	 * 请求ID。每次调用唯一标识
+	 */
+	private String requestId;
+	/**
+	 * 业务数据
+	 */
+	private T data;
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java
new file mode 100644
index 0000000..27ffc26
--- /dev/null
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/qianyuntong/model/TravelItinerary.java
@@ -0,0 +1,64 @@
+package com.stylefeng.guns.modular.system.util.qianyuntong.model;
+
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @Date 2025/7/24 16:48
+ */
+@Data
+public class TravelItinerary {
+	/**
+	 * 场景标识。交通场景传”TRAFFIC”
+	 */
+	private String scene;
+	/**
+	 * 租户ID。地区行政编码。黔南州传522700
+	 */
+	private String partnerId;
+	/**
+	 * 业务侧订单号
+	 */
+	private String orderNo;
+	/**
+	 * 乘客ID
+	 */
+	private String customerId;
+	/**
+	 * 司机ID
+	 */
+	private String driverId;
+	/**
+	 * 订单号
+	 */
+	private String orderId;
+	/**
+	 * 推广员ID
+	 */
+	private String promoterId;
+	/**
+	 * 服务商商户ID
+	 */
+	private String supplierShopId;
+	/**
+	 * 场景服务类型。1、出租;2、网约车;3、城际;4、顺风车
+	 */
+	private Integer serviceType;
+	/**
+	 * 订单状态。1、待支付,11、已完结(可结算)
+	 */
+	private Integer orderStatus;
+	/**
+	 * 行程单状态。2=待出发,3=待到达预约地点,4=待乘客上车,5=服务中,6=完成服务,7=待支付,9=已完成,10=已取消,11=改派中
+	 */
+	private Integer status;
+	/**
+	 * 创建时间
+	 */
+	private String createTime;
+	/**
+	 * 更新时间
+	 */
+	private String updateTime;
+	
+}
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
index 7c1d683..b89c824 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/warpper/DriverPosition.java
@@ -13,6 +13,10 @@
 @Document(collection = "driver_position")
 public class DriverPosition {
 	@Id
+	private String id;
+	/**
+	 * 司机id
+	 */
 	private Integer driverId;
 	/**
 	 * 点位
diff --git a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
index 71e81a5..aa50484 100644
--- a/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
+++ b/DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/taxi/service/impl/OrderTaxiServiceImpl.java
@@ -212,7 +212,7 @@
 //        }
 
         // 是否推广订单
-        Integer promotion = isPromotion(uid);
+        Integer promotion = isPromotion(orderTaxi.getUserId());
         orderTaxi.setPromotion(promotion);
 
         this.updateById(orderTaxi);
diff --git a/DriverQYTTravel/guns-admin/src/main/resources/application.yml b/DriverQYTTravel/guns-admin/src/main/resources/application.yml
index 59943d5..b19af59 100644
--- a/DriverQYTTravel/guns-admin/src/main/resources/application.yml
+++ b/DriverQYTTravel/guns-admin/src/main/resources/application.yml
@@ -1,3 +1,120 @@
+server:
+    port: 8007
+
+guns:
+    swagger-open: true              #是否开启swagger (true/false)
+    kaptcha-open: false             #是否开启登录时验证码 (true/false)
+    file-upload-path: d:/tmp       #文件上传目录(不配置的话为java.io.tmpdir目录)
+    picture-server-address: http://192.168.0.43/resources/  #图片服务器地址
+    spring-session-open: false      #是否开启spring session,如果是多机环境需要开启(true/false)
+    session-invalidate-time: 1800     #session失效时间(只在单机环境下生效,多机环境在SpringSessionConfig类中配置) 单位:秒
+    session-validation-interval: 900  #多久检测一次失效的session(只在单机环境下生效) 单位:秒
+
 spring:
+    application:
+        name: driver-server
     profiles:
-        active: "@spring.active@"
\ No newline at end of file
+        active: dev
+    mvc:
+        static-path-pattern: /static/**
+        view:
+            prefix: /WEB-INF/view
+        devtools:
+            restart:
+                enabled: false
+                additional-paths: src/main/java
+                exclude: static/**,WEB-INF/view/**
+        servlet:
+            multipart:
+                max-request-size: 100MB
+                max-file-size: 100MB
+    redis:
+        host: 192.168.110.80
+        port: 6379
+        password: 123456
+        database: 0
+        timeout: 1000
+#        cluster:
+#            nodes: 127.0.0.1:6379
+mybatis-plus:
+    typeAliasesPackage: com.stylefeng.guns.modular
+    global-config:
+        id-type: 0  #0:数据库ID自增   1:用户输入id  2:全局唯一id(IdWorker)  3:全局唯一ID(uuid)
+        db-column-underline: false
+    configuration:
+        configuration.map-underscore-to-camel-case: true #是否开启自动驼峰命名规则(camel case)映射
+        log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl #输出Sql,如需打印Sql注释该配置
+
+
+eureka:
+    client:
+        service-url: #注册中心地址
+            defaultZone: http://sinata:sinata@127.0.0.1:8000/eureka #启用身份验证的方式连接
+        register-with-eureka: true #在注册中心进行注册
+        fetch-registry: true #从Eureka中获取注册信息。
+
+---
+
+spring:
+    datasource:
+        url: jdbc:mysql://192.168.110.80:3306/qyttravel?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+        username: root
+        password: 123456
+        db-name: qyttravel #用来搜集数据库的所有表
+        filters: wall,mergeStat
+---
+spring:
+    data:
+        mongodb:
+            uri: mongodb://192.168.110.80:27017/traveling_track
+
+---
+
+wx:
+    grantType: authorization_code #填authorization_code
+    appid: 111 #应用唯一标识,在微信开放平台提交应用审核通过后获得
+    appSecret: 111 #应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
+    appletsAppid: wxcc3c9058e2b294db #小程序APPid
+    appletsAppSecret: 5610fc6126255ca5f7bd9fa4330338b6 #
+    mchId: 111 #微信支付分配的商户号
+    key: 111 #key为商户平台设置的密钥key:
+    url: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}
+
+---
+
+alipay:
+    appid: 111  #应用程序唯一标识
+    appPrivateKey: 111 #开发者应用私钥
+    alipayPublicKey: 1 #应用公钥
+    alipay_public_key: 111 #支付宝公钥
+
+---
+
+juhe: #聚合数据
+    appKey: 111 #
+
+
+---
+
+jiguang:
+    appKey-driver: 111 #极光推送应用唯一标识
+    masterSecret-driver: 111 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的
+    appKey-dispatch: 111 #极光推送应用唯一标识
+    masterSecret-dispatch: 111 #用于服务器端 API 调用时与 AppKey 配合使用达到鉴权的目的
+
+
+---
+
+#支付回调地址
+#正式环境
+callbackPath: https://traffic.qytzt.cn/driver
+
+---
+#交通部推送数据功能开关
+pushMinistryOfTransport: false
+
+---
+rongyun:
+    app_key: 111
+    app_secret: 111
+
diff --git a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
index 543c653..49643d3 100644
--- a/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
+++ b/DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,11 +1,36 @@
-//package com.stylefeng.guns;
-//
-//import org.junit.runner.RunWith;
-//import org.springframework.boot.test.context.SpringBootTest;
-//import org.springframework.test.context.junit4.SpringRunner;
-//
-//@RunWith(SpringRunner.class)
-//@SpringBootTest
-//public class GunsApplicationTest {
-//
-//}
+package com.stylefeng.guns;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class GunsApplicationTest {
+	
+	@Autowired
+	private MongoTemplate mongoTemplate;
+
+
+	@Test
+	public void test(){
+//		GeoJsonPoint point = new GeoJsonPoint(new Point(Double.parseDouble("104.043149"),
+//				Double.parseDouble("30.642483")));
+//		DriverPosition position = mongoTemplate.findOne(Query.query(Criteria.where("driverId")
+//				.is(14)), DriverPosition.class);
+//		if(null == position){
+//			position = new DriverPosition();
+//		}
+//		position.setDriverId(14);
+//		position.setPoint(point);
+//		mongoTemplate.save(position);
+		
+		
+//		Query query = Query.query(Criteria.where("point").nearSphere(new Point(Double.parseDouble("104.043149"), Double.parseDouble("30.642483"))).maxDistance(5000));
+//		List<DriverPosition> driverPositions = mongoTemplate.find(query, DriverPosition.class);
+//		System.err.println(driverPositions);
+	}
+}
diff --git a/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java b/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java
index 595c397..c2a291d 100644
--- a/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java
+++ b/MessagePushTravel/src/main/java/com/sinata/push/util/echo/DiscardServerHandler.java
@@ -23,7 +23,7 @@
 	public void channelRead(ChannelHandlerContext ctx, Object msg) {
 		InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress();
 		if(isdebug) {
-//			System.err.println(insocket.getAddress() + ": 收到客户端数据.......");
+			System.err.println(insocket.getAddress() + ": 收到客户端数据.......");
 		}
 		try {
 			// 调用service
@@ -39,7 +39,7 @@
 	protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {
 		InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress();
 		if(isdebug) {
-//			System.err.println(insocket.getAddress() + ": 收到客户端数据.......");
+			System.err.println(insocket.getAddress() + ": 收到客户端数据.......");
 		}
 		try {
 			// 调用service
@@ -70,7 +70,7 @@
 	public void channelActive(final ChannelHandlerContext ctx) throws Exception {
 		InetSocketAddress insocket = (InetSocketAddress) ctx.channel().remoteAddress();
 		if(isdebug) {
-//			System.err.println(insocket.getAddress() + ": Connect successful......");
+			System.err.println(insocket.getAddress() + ": Connect successful......");
 		}
 	}
 

--
Gitblit v1.7.1