From 3c2c0ff780c35b7046b89457b1de742d410f8c7f Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 14 五月 2026 09:35:09 +0800
Subject: [PATCH] 对接免密

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   75 ++++++++++++++++++++++++++++++++-----
 1 files changed, 65 insertions(+), 10 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index 7ca3950..e9a3326 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -22,9 +22,7 @@
 import com.xiaopeng.api.dto.map.RouteAndFareDto;
 import com.xiaopeng.api.dto.operation.LonLatDto;
 import com.xiaopeng.api.dto.order.*;
-import com.xiaopeng.api.dto.payFront.CreditOrderCreateDto;
-import com.xiaopeng.api.dto.payFront.CreditPaySignQueryDto;
-import com.xiaopeng.api.dto.payFront.CreditPrecreateDto;
+import com.xiaopeng.api.dto.payFront.*;
 import com.xiaopeng.api.dto.pushMessage.SendMessageDTO;
 import com.xiaopeng.api.dto.statistics.DailyCountDTO;
 import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
@@ -61,10 +59,8 @@
 import com.xiaopeng.api.vo.operation.NearestNextVo;
 import com.xiaopeng.api.vo.operation.RouteVo;
 import com.xiaopeng.api.vo.order.*;
-import com.xiaopeng.api.vo.payFront.CreditOrderCreateVo;
-import com.xiaopeng.api.vo.payFront.CreditPaySignQueryVo;
+import com.xiaopeng.api.vo.payFront.*;
 import com.xiaopeng.api.vo.order.FareBreakdownVo;
-import com.xiaopeng.api.vo.payFront.CreditPrecreateVo;
 import com.xiaopeng.api.vo.vehicleConvoy.AddTaxiPassengerVo;
 import com.xiaopeng.api.vo.vehicleConvoy.BluetoothDeliverVo;
 import com.xiaopeng.api.vo.vehicleConvoy.CancelTaxiPassengerVo;
@@ -78,6 +74,7 @@
 import com.xiaopeng.common.core.exception.ServiceException;
 import com.xiaopeng.common.core.utils.DateUtils;
 import com.xiaopeng.common.core.utils.GeodesyUtil;
+import com.xiaopeng.common.core.utils.OrderCodeUtil;
 import com.xiaopeng.common.core.utils.StringUtils;
 import com.xiaopeng.common.core.web.domain.BaseModel;
 import com.xiaopeng.common.core.web.page.PageInfo;
@@ -3324,6 +3321,8 @@
     public R payment(XpOrderPayDto dto, String uid) {
 
 
+        XpOrder order = this.getById(dto.getOrderId());
+
         HashMap<String, Object> resultMap = new HashMap<>();
 
         // 1.0 免密  //查询是否开通免密
@@ -3333,7 +3332,7 @@
         creditPaySignQueryDto.setUid(Long.valueOf(uid));
         creditPaySignQueryDto.setBusinessId("xp-robotaxi");
         creditPaySignQueryDto.setCategory("009001");
-        creditPaySignQueryDto.setBusinessOrderId("");
+        creditPaySignQueryDto.setBusinessOrderId(OrderCodeUtil.getOrderCode("MMZF"));
         R<CreditPaySignQueryVo> creditPaySignQueryVoR = xpPayFrontClient.queryCreditPaySign(creditPaySignQueryDto);
         if (creditPaySignQueryVoR.getCode()==200) {
             CreditPaySignQueryVo data = creditPaySignQueryVoR.getData();
@@ -3350,9 +3349,9 @@
             CreditOrderCreateDto creditOrderCreateDto = new CreditOrderCreateDto();
             creditOrderCreateDto.setUid(Long.valueOf(uid));
             creditOrderCreateDto.setBusinessId("xp-robotaxi");
-            creditOrderCreateDto.setCategory("xp_robotaxi_api");
+            creditOrderCreateDto.setCategory("009001");
             creditOrderCreateDto.setBusinessOrderId("");
-            creditOrderCreateDto.setSubject("009001");
+            creditOrderCreateDto.setSubject("小鹏集团|robotaxi");
             creditOrderCreateDto.setPayType("13");
 
 
@@ -3368,6 +3367,10 @@
                 CreditOrderCreateVo data = creditOrderCreateVoR.getData();
                 resultMap.put("status", 1);
                 resultMap.put("value", data);
+
+                order.setPayType(3);
+                order.setAuthOrderId(data.getAuthOrderId());
+
                 return R.ok(resultMap);
             }
 
@@ -3375,7 +3378,6 @@
 
             // 未签约
             // 调用预下单接口
-            XpOrder order = this.getById(dto.getOrderId());
             CreditPrecreateDto creditPrecreateDto = new CreditPrecreateDto();
             creditPrecreateDto.setUid(uid);
             creditPrecreateDto.setBizId("xp-robotaxi");
@@ -4702,6 +4704,59 @@
         return vo;
     }
 
+    /**
+     * 查询订单状态
+     * @param orderId
+     * @return
+     */
+    @Override
+    public OrderStatusFromOrderIdVo queryOrderStatusFromOrderId(Long orderId) {
+
+        XpOrder order = this.getById(orderId);
+        if(order==null){
+            return null;
+        }
+        if(order.getPayType()==3){
+            // 免密查询 如果成功则调用结算
+            CreditOrderQueryDto dto = new CreditOrderQueryDto();
+            dto.setBusinessOrderId(OrderCodeUtil.getOrderCode("MMZF"));
+            dto.setAuthOrderId(order.getAuthOrderId());
+            dto.setPayType("13");
+            R<CreditOrderQueryVo> creditOrderQueryVoR = xpPayFrontClient.queryCreditOrder(dto);
+            if(creditOrderQueryVoR.getCode()==200){
+                CreditOrderQueryVo creditOrderQueryVo = creditOrderQueryVoR.getData();
+                if(creditOrderQueryVo.getCreditOrderStatus().equals("DONE")){
+                    // 订单确认 需要吊起扣款
+                    CreditOrderWxPayDto creditOrderWxPayDto = new CreditOrderWxPayDto();
+                    creditOrderWxPayDto.setBusinessOrderId(OrderCodeUtil.getOrderCode("MMZF"));
+                    creditOrderWxPayDto.setAuthOrderId(order.getAuthOrderId());
+                    creditOrderWxPayDto.setPayCallbackUrl("13");
+                    creditOrderWxPayDto.setTotalAmount( order.getOrderMoney().multiply(BigDecimal.valueOf(100)).longValue());
+                    creditOrderWxPayDto.setSubject("小鹏集团|robotaxi");
+                    creditOrderWxPayDto.setPayType("13");
+
+                    List<CreditOrderCreateDto.PostPayment> postPayments = new ArrayList<>();
+                    CreditOrderCreateDto.PostPayment postPayment = new CreditOrderCreateDto.PostPayment();
+                    postPayment.setName("收费标准");
+                    postPayment.setDescription("行程价格动态浮动,具体详情可在费用详情或计价规则查看");
+                    postPayments.add(postPayment);
+                    creditOrderWxPayDto.setPostPayments(postPayments);
+                    R<CreditOrderWxPayVo> creditOrderWxPayVoR = xpPayFrontClient.creditOrderWxPay(creditOrderWxPayDto);
+                }else if(creditOrderQueryVo.getCreditOrderStatus().equals("CREATED") || creditOrderQueryVo.getCreditOrderStatus().equals("DOING")){
+
+                }
+            }
+
+        }else {
+            // 微信支付也需要查询下
+
+        }
+        OrderStatusFromOrderIdVo orderStatusFromOrderIdVo = new OrderStatusFromOrderIdVo();
+        orderStatusFromOrderIdVo.setOrderId(order.getId());
+        orderStatusFromOrderIdVo.setStatus(order.getStatus());
+        return orderStatusFromOrderIdVo;
+    }
+
 
     /**
      * 发票列表

--
Gitblit v1.7.1