Просмотр исходного кода

平台后台,订单增加退款功能

baolei 2 месяцев назад
Родитель
Сommit
e3db19fb01

+ 1 - 1
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/business/order/controller/OrderController.java

@@ -95,7 +95,7 @@ public class OrderController extends BaseController {
     @ResponseBody
     public AjaxResult refundOrder(OrderVo orderVo) {
 
-//        orderVo.setRefundAmount(RMBUtil.fenToYuan(orderVo.getRefundAmount()));
+        orderVo.setRefundAmount(RMBUtil.yuanToFen(orderVo.getRefundAmount()));
         orderVo.setCreateTime(DateUtils.getNowDate());
         orderVo.setCreateUser(getLoginName());
         orderVo.setUpdateTime(DateUtils.getNowDate());

+ 5 - 1
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/business/order/service/impl/OrderVoServiceImpl.java

@@ -1,6 +1,7 @@
 package com.xingxi.web.controller.business.order.service.impl;
 
 import com.github.binarywang.wxpay.bean.result.WxPayRefundV3Result;
+import com.xingxi.business.Order.domain.Order;
 import com.xingxi.business.RefundInfo.domain.RefundInfo;
 import com.xingxi.business.RefundInfo.mapper.RefundInfoMapper;
 import com.xingxi.common.enums.EDelFlag;
@@ -70,6 +71,9 @@ public class OrderVoServiceImpl implements IOrderVoService {
 
         Date nowDate = DateUtils.getNowDate();
 
+        Order od = orderVoMapper.selectOrderVoByOrderId(orderVo.getOrderId());
+        orderVo.setOrderNo(od.getOrderNo());
+
         // 微信支付发起退款
         WxPayRefundV3Result result = wechatPayService.refund(orderVo.getOrderNo(), orderVo.getPayAmount(), orderVo.getRefundAmount());
 
@@ -101,6 +105,6 @@ public class OrderVoServiceImpl implements IOrderVoService {
         refundInfo.setUpdateTime(orderVo.getCreateTime());
         refundInfoMapper.insertRefundInfo(refundInfo);
 
-        return 0;
+        return 1;
     }
 }

+ 4 - 3
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/wxpay/controller/WechatPayController.java

@@ -51,11 +51,11 @@ public class WechatPayController extends BaseController
     @ApiOperation("查询微信退款订单")
     @ApiImplicitParam(name = "outTradeNo", value = "退款单号", dataType = "String", dataTypeClass = String.class)
     @PostMapping("/refundQuery")
-    public WxPayRefundQueryV3Result orderQuery(String outTradeNo) {
-        if (StringUtils.isBlank(outTradeNo)) {
+    public WxPayRefundQueryV3Result orderQuery(String outRefundTradeNo) {
+        if (StringUtils.isBlank(outRefundTradeNo)) {
             throw new BusinessException("请输入商户退款单号!");
         }
-        return wechatPayService.refundQuery(outTradeNo);
+        return wechatPayService.refundQuery(outRefundTradeNo);
     }
 
     @ApiOperation("退款")
@@ -69,6 +69,7 @@ public class WechatPayController extends BaseController
         return wechatPayService.refund(orderNo, payAmount, refundAmount);
     }
 
+    @ApiOperation("退款回调接口")
     @PostMapping("/refund/callback")
     public String refundCallback(HttpServletRequest request, HttpServletResponse response) {
         return wechatPayService.refundCallback(request, response);

+ 5 - 0
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/wxpay/service/WechatPayService.java

@@ -128,12 +128,14 @@ public class WechatPayService {
         try {
             SignatureHeader signatureHeader = httpRequestToSignatureHeader(request);
             String s = StreamUtils.copyToString(request.getInputStream(), Charset.defaultCharset());
+            log.info("refundCallback:" + s);
 
             WxPayRefundNotifyV3Result wxPayOrderNotifyV3Result = wxPayService.parseRefundNotifyV3Result(s, signatureHeader);
 
             WxPayRefundNotifyV3Result.DecryptNotifyResult decryptNotifyResult = wxPayOrderNotifyV3Result.getResult();
 
             String outRefundNo = decryptNotifyResult.getOutRefundNo();
+            log.info("refundCallback - outRefundNo:" + outRefundNo);
 
             RefundInfoVo refundInfoVo = refundInfoVoMapper.selectRefundInfoByOutRefundNo(outRefundNo);
 
@@ -143,6 +145,7 @@ public class WechatPayService {
             refundInfoVo.setUpdateTime(DateUtils.getNowDate());
             refundInfoVo.setUpdateUser("refundCallback");
             refundInfoMapper.updateRefundInfo(refundInfoVo);
+            log.info("refundCallback - update refundInfo");
 
             OrderVo orderVo = orderVoMapper.selectOrderVoByOrderNo(decryptNotifyResult.getOutTradeNo());
             orderVo.setOrderStatus(EOrderStatus.FINISHED.getVal());
@@ -151,6 +154,8 @@ public class WechatPayService {
             orderVo.setUpdateUser("refundCallback");
             orderMapper.updateOrder(orderVo);
 
+            log.info("refundCallback - update order");
+
         } catch (Exception e) {
             log.error("处理微信支付退款回调通知失败!!!!:{}", e.getMessage());
             return "FAIL";

+ 1 - 1
08.src/Xingxi/xingxi-admin/src/main/resources/application.yml

@@ -153,4 +153,4 @@ xingxi:
     privateKeyPath: "classpath:META-INF/apiclient_key.pem"
     privateCertPath: "classpath:META-INF/apiclient_cert.pem"
     callbackUrl: "https://mpapi.gululuq.com/unifiedpay/wxpay/callback"
-    refundcallbackUrl: "https://mpapi.gululuq.com/wechatPay/refund/callback"
+    refundcallbackUrl: "https://manager.gululuq.com/wechatPay/refund/callback"