Cui Zhi Feng
2024-10-11 8c312d2f443ee1c953b93b9522c2675aa1f9fe1f
src/main/java/com/mzl/flower/service/payment/UserPaymentSybService.java
@@ -298,7 +298,9 @@
            }
        }
        return !"1001".equals(trxstatus);
        return !("1001".equals(trxstatus) || StringUtils.isEmpty(trxstatus)
                || "2008".equals(trxstatus)
                || "2000".equals(trxstatus));
    }
    public boolean checkOrderStatusRefund(String outTradeNo) throws Exception {
@@ -343,8 +345,10 @@
        Map<String,String> params = service.query(orderId, up.getTransactionId());
        String trxstatus = params.get("trxstatus");//支付状态
        if("1001".equals(trxstatus)){
            //空单 直接取消
        if("1001".equals(trxstatus) || "3088".equals(trxstatus)){
            //3088-交易未支付(在查询时间区间内未成功支付,如已影响资金24小时内会做差错退款处理)
            //1001:交易不存在
            //直接取消
        } else if (StringUtils.isEmpty(trxstatus)
                || "2008".equals(trxstatus)
                || "2000".equals(trxstatus)) {
@@ -438,16 +442,22 @@
            throw new ValidationException("订单不可退款");
        }
        long trxamt = up.getPaymentAmount().longValue();
        long trxamt = prepareAmount(up.getPaymentAmount());
        String reqsn = orderId;
        String oldtrxid = up.getTransactionId();
        String oldreqsn = null;
        String oldreqsn = orderId;
        SybPayService service = new SybPayService();
        Map<String,String> map = service.cancel(trxamt, reqsn, oldtrxid, oldreqsn);
        String retcode = map.get("retcode");
        if(!"SUCCESS".equals(retcode)){
            throw new ValidationException("订单退款失败: " + map.get("retmsg"));
        }
        //这个不是订单状态,是通用的,如果是支付查询,代表就是订单状态,如果是退款代表的是退款状态
        String trxstatus = map.get("trxstatus");
        if(!"0000".equals(trxstatus)){
            throw new ValidationException("订单退款交易失败:" + map.get("errmsg"));
        }
        updateOrderRefund(orderId, oldtrxid);
@@ -465,16 +475,22 @@
            throw new ValidationException("订单不可退款");
        }
        long trxamt = up.getPaymentAmount().longValue();
        long trxamt = prepareAmount(up.getPaymentAmount());
        String reqsn = orderId;
        String oldtrxid = up.getTransactionId();
        String oldreqsn = null;
        String oldreqsn = orderId;
        SybPayService service = new SybPayService();
        Map<String,String> map = service.refund(trxamt, reqsn, oldtrxid, oldreqsn);
        String retcode = map.get("retcode");
        if(!"SUCCESS".equals(retcode)){
            throw new ValidationException("订单退款失败: " + map.get("retmsg"));
        }
        //这个不是订单状态,是通用的,如果是支付查询,代表就是订单状态,如果是退款代表的是退款状态
        String trxstatus = map.get("trxstatus");
        if(!"0000".equals(trxstatus)){
            throw new ValidationException("订单退款交易失败:" + map.get("errmsg"));
        }
        updateOrderRefund(orderId, oldtrxid);
@@ -553,9 +569,19 @@
            throw new ValidationException("订单退款失败: " + map.get("retmsg"));
        }
        //这个不是订单状态,是通用的,如果是支付查询,代表就是订单状态,如果是退款代表的是退款状态
        String trxstatus = map.get("trxstatus");
        if(!"0000".equals(trxstatus)){
            throw new ValidationException("订单退款交易失败:" + map.get("errmsg"));
        }
        re.setRequest(toJSONString(map));
        re.create(SecurityUtils.getUserId());
        re.setStatus(retcode);
        re.setNotification(retcode);
        re.setNotifyTime(LocalDateTime.now());
        orderRefundMapper.insert(re);
        return re.getId();