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