Przeglądaj źródła

订单过期查询支付下单后修复

mac 7 miesięcy temu
rodzic
commit
ec4361b760

+ 1 - 0
kxs-common/kxs-common-pay/src/main/java/com/kxs/common/pay/service/wechat/WechatPayService.java

@@ -104,6 +104,7 @@ public class WechatPayService implements PayService {
                     .outTradeNo(response.getOutTradeNo())
                     .tradeNo(response.getOutTradeNo())
                     .tradeStatus(payStatusCommEnum)
+                    .tradeNo(response.getTransactionId())
                     .payPlatformEnum(PayPlatformEnum.WX).build();
         } catch (WxPayException e) {
             log.error("微信查询订单异常:{}", queryReq.getOutTradeNo(), e);

+ 25 - 2
lhb-basic/lhb-basic-biz/src/main/java/com/kxs/lhb/basic/biz/service/impl/LhbOrderServiceImpl.java

@@ -311,6 +311,29 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
                 if (query != null && PayStatusCommEnum.TRADE_SUCCESS == query.getTradeStatus() ) {
                     order.setStatus( OrderStatusEnum.PAY.getCode());
                     order.setPayTime(LocalDateTime.now());
+                    order.setPayTradeNo(query.getTradeNo());
+
+                    LhbGoods goods = goodsService.getById(order.getGoodsId());
+                    LhbGoodsSku goodsSku = goodsSkuService.getById(order.getSkuId());
+                    List<LhbGoodsActivities> activities = goodsActivitiesService.list(Wrappers.lambdaQuery(LhbGoodsActivities.class).eq(LhbGoodsActivities::getSkuId, goodsSku.getId()));
+                    //三方下单
+                    OrderSubmitReq req = OrderSubmitReq.builder()
+                            .goodsId(goods.getExternalId())
+                            .goodsSkuId(goodsSku.getExternalSkuId())
+                            .offerCodes(!activities.isEmpty() ? activities.stream().map(LhbGoodsActivities::getActivityCode).collect(Collectors.joining(",")) : "")
+                            .payMoney("0")
+                            .number(order.getMakeMobile())
+                            .custName(order.getCustName())
+                            .contNumber(order.getContMobile())
+                            .idenNr(order.getIdCard())
+                            .receiveName(order.getCustName())
+                            .receiveMobile(order.getContMobile())
+                            .receiveAddress(order.getAddress())
+                            .area(order.getArea())
+                            .preNumber(Boolean.FALSE)
+                            .regionId(order.getRegionId()).build();
+                    String orderId = channelFactory.getChannel(order.getIfCode()).orderSubmit(req);
+                    order.setOutOrderSn(orderId);
                 }
             }catch (Exception e){
                 log.error("查询微信订单失败", e);
@@ -360,8 +383,8 @@ public class LhbOrderServiceImpl extends MPJBaseServiceImpl<LhbOrderMapper, LhbO
         }
         RefundRequest req = RefundRequest.builder().refundReason(param.getRemark())
                 .outTradeNo(order.getOrderSn())
-                .refundFee(param.getRefundPrice().doubleValue())
-                .totalFee(order.getServerFee().doubleValue())
+                .refundFee(NumberUtil.div(param.getRefundPrice().doubleValue(), 100))
+                .totalFee(NumberUtil.div(order.getServerFee().doubleValue(), 100))
                 .outRefundNo(CommonConstants.REFUND_ORDER_PREFIX + IdUtil.getSnowflakeNextIdStr())
                 .payTypeEnum(PayPlatformEnum.WX).build();
         RefundResponse refund = paymentFactory.getPayService(PayPlatformEnum.WX.getType()).refund(req);