Pu Zhibing
2025-04-01 8444084e6aa11efa23287e7f82474ac22378a5c4
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/NotifyController.java
@@ -14,6 +14,7 @@
import com.google.gson.GsonBuilder;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.order.domain.dto.WechatPaymentRefundDto;
import com.ruoyi.order.domain.dto.WeixinPaymentNotifyDto;
import com.ruoyi.order.domain.pojo.account.OrderRefund;
@@ -45,6 +46,7 @@
import java.util.Enumeration;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
/**
 * @program: ruoyi
@@ -75,6 +77,9 @@
    @Resource
    private OrderRefundService orderRefundService;
    @Resource
    private RedisService redisService;
    @PostMapping(value = "/payNotify")
    @ApiOperation(value = "微信支付/退款通知")
@@ -240,6 +245,14 @@
            if("S".equals(transStat)){
                PartnerTransactionsResult transaction = new PartnerTransactionsResult();
                transaction.setOutTradeNo(data.getReqSeqId());
                //防止回调频繁导致时间处理异常
                Object cacheObject = redisService.getCacheObject(data.getReqSeqId());
                if(null == cacheObject){
                    redisService.setCacheObject(data.getReqSeqId(), "", 10L, TimeUnit.SECONDS);
                }else{
                    return;
                }
                //开始处理业务数据
                orderService.payBack(transaction, data.getFeeFlag() == 1 ? BigDecimal.ZERO : new BigDecimal(data.getFeeAmount()));