From f5d3adf884a49cb8f4563be0c7086a506011d64d Mon Sep 17 00:00:00 2001 From: zhanglin8526 <852614290@qq.com> Date: 星期六, 26 八月 2023 14:35:47 +0800 Subject: [PATCH] 修改订单查询 --- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java | 67 ++++++++++++++++----------------- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java | 7 +++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 16 ++++++- 3 files changed, 53 insertions(+), 37 deletions(-) diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java index 7acf60b..c477d06 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java @@ -64,17 +64,6 @@ @ApiOperation(value = "微信支付/退款通知") public String payNotify(@RequestBody String notifyData, HttpServletRequest request, HttpServletResponse response) throws WxPayException { - Enumeration<String> headerNames = request.getHeaderNames(); - while (headerNames.hasMoreElements()){ - String name = headerNames.nextElement(); - log.info("request headerNames: {}", name); - } - - Collection<String> headerNames1 = response.getHeaderNames(); - for (String name : headerNames1) { - log.info("request headerNames: {}", name); - } - // 获取请求头 SignatureHeader signatureHeader = getSignatureHeader(request); @@ -84,27 +73,32 @@ String eventType = responseData.getEventType(); int resultType = 1; - String resultMessage = ""; - if(WxPayNotifyEventTypeEnum.TRANSACTION_SUCCESS.getCode().equals(eventType)){ - PartnerTransactionsNotifyResult notifyResult = wxService.getEcommerceService().parsePartnerNotifyResult(notifyData, signatureHeader); - PartnerTransactionsResult result = notifyResult.getResult(); - // 支付通知回调 - if("SUCCESS".equals(result.getTradeState())){ - orderService.payBack(result); - } - resultMessage = GSON.toJson(notifyResult); - } else if(WxPayNotifyEventTypeEnum.REFUND_SUCCESS.getCode().equals(eventType) - || WxPayNotifyEventTypeEnum.REFUND_ABNORMAL.getCode().equals(eventType) - || WxPayNotifyEventTypeEnum.REFUND_CLOSED.getCode().equals(eventType)){ + String resultMessage = notifyData; - RefundNotifyResult result = wxService.getEcommerceService().parseRefundNotifyResult(notifyData, signatureHeader); - orderService.orderRefundBack(result); - resultType = 2; - resultMessage = GSON.toJson(result); + try { + if (WxPayNotifyEventTypeEnum.TRANSACTION_SUCCESS.getCode().equals(eventType)) { + PartnerTransactionsNotifyResult notifyResult = wxService.getEcommerceService().parsePartnerNotifyResult(notifyData, signatureHeader); + PartnerTransactionsResult result = notifyResult.getResult(); + // 支付通知回调 + if ("SUCCESS".equals(result.getTradeState())) { + orderService.payBack(result); + } + resultMessage = GSON.toJson(notifyResult); + } else if (WxPayNotifyEventTypeEnum.REFUND_SUCCESS.getCode().equals(eventType) + || WxPayNotifyEventTypeEnum.REFUND_ABNORMAL.getCode().equals(eventType) + || WxPayNotifyEventTypeEnum.REFUND_CLOSED.getCode().equals(eventType)) { + + RefundNotifyResult result = wxService.getEcommerceService().parseRefundNotifyResult(notifyData, signatureHeader); + orderService.orderRefundBack(result); + resultType = 2; + resultMessage = GSON.toJson(result); + } + + }catch (Exception e){ + log.info("微信支付/退款通知异常: {}", e.getMessage()); } // 保存支付/退款回调信息 backMessageService.saveBackMessage(resultType, resultMessage); - return WxPayNotifyV3Response.success("成功"); } @@ -120,14 +114,19 @@ ProfitSharingNotifyNewResult notifyResult = getProfitSharingNotifyData(notifyData, signatureHeader); ProfitSharingNotifyResult result = notifyResult.getResult(); + String eventType = "-1"; + String resultMessage = notifyData; + try { + eventType = notifyResult.getRawData().getEventType(); + if (WxPayNotifyEventTypeEnum.PROFIT_SHARING_SUCCESS.getCode().equals(eventType)) { + // 分账通知回调 + orderService.profitSharingBack(result); + } - String eventType = notifyResult.getRawData().getEventType(); - if(WxPayNotifyEventTypeEnum.PROFIT_SHARING_SUCCESS.getCode().equals(eventType)){ - // 分账通知回调 - orderService.profitSharingBack(result); + resultMessage = GSON.toJson(notifyResult); + }catch (Exception e){ + log.info("微信分账通知通知异常: {}", e.getMessage()); } - - String resultMessage = GSON.toJson(notifyResult); // 保存记录分账回调信息 backMessageService.saveBackMessage(3, resultMessage); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java index b6305ca..7b653eb 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java @@ -3852,9 +3852,11 @@ @Override @Transactional public void payBack(PartnerTransactionsResult transaction) { - // 更新订单状态 - String orderId = transaction.getOutTradeNo(); - Order order = this.getById(orderId); + // Order order = this.getById(orderId); + // 更新订单状态 订单编号,就是 微信outTradeNo + String orderNo = transaction.getOutTradeNo(); + Order order = this.getByOrderNo(orderNo); + String orderId = order.getOrderId(); order.setOrderStatus(2); order.setPayTime(new Date()); this.saveOrUpdate(order); @@ -3986,6 +3988,14 @@ payRecordService.save(payRecord); } + @Override + public Order getByOrderNo(String orderNo) { + LambdaQueryWrapper<Order> queryWrapper = Wrappers.lambdaQuery(); + queryWrapper.eq(Order::getOrderNo, orderNo) + .last(" limit 1 "); + return this.getOne(queryWrapper); + } + /** * @param orderId * @return void diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java index 9be0d02..61df02b 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java @@ -551,4 +551,11 @@ * @return AgencyTotalVo */ AgencyTotalVo getAgencyTotalVo(List<Long> shopIdList); + + /** + * 订单编号获取订单 + * @param orderNo + * @return + */ + Order getByOrderNo(String orderNo); } -- Gitblit v1.7.1