mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	mall + pay:调整异常的处理
1. 在 PayOrderUnifiedRespDTO 增加 status 字段,用于后续微信付款码支付时,直接支付成功的场景。
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto.notify;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayNotifyRefundStatusEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.refund.PayNotifyRefundStatusEnum;
 | 
			
		||||
import lombok.Builder;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import lombok.ToString;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto.order;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayDisplayModeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import org.hibernate.validator.constraints.Length;
 | 
			
		||||
import org.hibernate.validator.constraints.URL;
 | 
			
		||||
@@ -8,7 +8,6 @@ import org.hibernate.validator.constraints.URL;
 | 
			
		||||
import javax.validation.constraints.DecimalMin;
 | 
			
		||||
import javax.validation.constraints.NotEmpty;
 | 
			
		||||
import javax.validation.constraints.NotNull;
 | 
			
		||||
import java.awt.*;
 | 
			
		||||
import java.time.LocalDateTime;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
 | 
			
		||||
@@ -85,7 +84,7 @@ public class PayOrderUnifiedReqDTO {
 | 
			
		||||
     *
 | 
			
		||||
     * 如果不传递,则每个支付渠道使用默认的方式
 | 
			
		||||
     *
 | 
			
		||||
     * 枚举 {@link PayDisplayModeEnum}
 | 
			
		||||
     * 枚举 {@link PayOrderDisplayModeEnum}
 | 
			
		||||
     */
 | 
			
		||||
    private String displayMode;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,7 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto.order;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderStatusRespEnum;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
@@ -12,6 +14,8 @@ public class PayOrderUnifiedRespDTO {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 展示模式
 | 
			
		||||
     *
 | 
			
		||||
     * 枚举 {@link PayOrderDisplayModeEnum} 类
 | 
			
		||||
     */
 | 
			
		||||
    private String displayMode;
 | 
			
		||||
    /**
 | 
			
		||||
@@ -19,4 +23,20 @@ public class PayOrderUnifiedRespDTO {
 | 
			
		||||
     */
 | 
			
		||||
    private String displayContent;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 支付状态
 | 
			
		||||
     *
 | 
			
		||||
     * 枚举 {@link PayOrderStatusRespEnum} 类
 | 
			
		||||
     */
 | 
			
		||||
    private Integer status;
 | 
			
		||||
 | 
			
		||||
    public PayOrderUnifiedRespDTO(String displayMode, String displayContent) {
 | 
			
		||||
        this(displayMode, displayContent, PayOrderStatusRespEnum.WAITING.getStatus());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public PayOrderUnifiedRespDTO(String displayMode, String displayContent, Integer status) {
 | 
			
		||||
        this.displayMode = displayMode;
 | 
			
		||||
        this.displayContent = displayContent;
 | 
			
		||||
        this.status = status;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,5 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto.refund;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelRefundRespEnum;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Builder;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.framework.pay.core.client.PayClientConfig;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayClientFactory;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.impl.alipay.*;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.impl.weixin.*;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
 | 
			
		||||
import java.util.concurrent.ConcurrentHashMap;
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayRefundNotifyResp
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.impl.AbstractPayClient;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayNotifyRefundStatusEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.refund.PayNotifyRefundStatusEnum;
 | 
			
		||||
import com.alipay.api.*;
 | 
			
		||||
import com.alipay.api.domain.AlipayTradeRefundModel;
 | 
			
		||||
import com.alipay.api.internal.util.AlipaySignature;
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@ package cn.iocoder.yudao.framework.pay.core.client.impl.alipay;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayDisplayModeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
 | 
			
		||||
import com.alipay.api.AlipayApiException;
 | 
			
		||||
import com.alipay.api.domain.AlipayTradeAppPayModel;
 | 
			
		||||
import com.alipay.api.request.AlipayTradeAppPayRequest;
 | 
			
		||||
@@ -38,7 +38,7 @@ public class AlipayAppPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
        model.setProductCode(" QUICK_MSECURITY_PAY"); // 销售产品码:无线快捷支付产品
 | 
			
		||||
        // ② 个性化的参数【无】
 | 
			
		||||
        // ③ 支付宝扫码支付只有一种展示
 | 
			
		||||
        String displayMode = PayDisplayModeEnum.APP.getMode();
 | 
			
		||||
        String displayMode = PayOrderDisplayModeEnum.APP.getMode();
 | 
			
		||||
 | 
			
		||||
        // 1.2 构建 AlipayTradePrecreateRequest 请求
 | 
			
		||||
        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest();
 | 
			
		||||
@@ -50,8 +50,7 @@ public class AlipayAppPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
        AlipayTradeAppPayResponse response = client.execute(request);
 | 
			
		||||
        // 2.2 处理结果
 | 
			
		||||
        validateUnifiedOrderResponse(request, response);
 | 
			
		||||
        return new PayOrderUnifiedRespDTO()
 | 
			
		||||
                .setDisplayMode(displayMode).setDisplayContent("");
 | 
			
		||||
        return new PayOrderUnifiedRespDTO(displayMode, "");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4,8 +4,8 @@ import cn.hutool.core.map.MapUtil;
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayDisplayModeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
 | 
			
		||||
import com.alipay.api.AlipayApiException;
 | 
			
		||||
import com.alipay.api.domain.AlipayTradePayModel;
 | 
			
		||||
import com.alipay.api.request.AlipayTradePayRequest;
 | 
			
		||||
@@ -47,7 +47,7 @@ public class AlipayBarPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
        // ② 个性化的参数
 | 
			
		||||
        model.setAuthCode(authCode);
 | 
			
		||||
        // ③ 支付宝条码支付只有一种展示
 | 
			
		||||
        String displayMode = PayDisplayModeEnum.BAR_CODE.getMode();
 | 
			
		||||
        String displayMode = PayOrderDisplayModeEnum.BAR_CODE.getMode();
 | 
			
		||||
 | 
			
		||||
        // 1.2 构建 AlipayTradePayRequest 请求
 | 
			
		||||
        AlipayTradePayRequest request = new AlipayTradePayRequest();
 | 
			
		||||
@@ -59,8 +59,7 @@ public class AlipayBarPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
        AlipayTradePayResponse response = client.execute(request);
 | 
			
		||||
        // 2.2 处理结果
 | 
			
		||||
        validateUnifiedOrderResponse(request, response);
 | 
			
		||||
        return new PayOrderUnifiedRespDTO()
 | 
			
		||||
                .setDisplayMode(displayMode).setDisplayContent("");
 | 
			
		||||
        return new PayOrderUnifiedRespDTO(displayMode, "");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4,8 +4,8 @@ import cn.hutool.core.util.ObjectUtil;
 | 
			
		||||
import cn.hutool.http.Method;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayDisplayModeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
 | 
			
		||||
import com.alipay.api.AlipayApiException;
 | 
			
		||||
import com.alipay.api.domain.AlipayTradePagePayModel;
 | 
			
		||||
import com.alipay.api.request.AlipayTradePagePayRequest;
 | 
			
		||||
@@ -44,7 +44,7 @@ public class AlipayPcPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
        model.setQrPayMode("2"); // 跳转模式 - 订单码,效果参见:https://help.pingxx.com/article/1137360/
 | 
			
		||||
        // ③ 支付宝 PC 支付有两种展示模式:FORM、URL
 | 
			
		||||
        String displayMode = ObjectUtil.defaultIfNull(reqDTO.getDisplayMode(),
 | 
			
		||||
                PayDisplayModeEnum.URL.getMode());
 | 
			
		||||
                PayOrderDisplayModeEnum.URL.getMode());
 | 
			
		||||
 | 
			
		||||
        // 1.2 构建 AlipayTradePagePayRequest 请求
 | 
			
		||||
        AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
 | 
			
		||||
@@ -54,15 +54,14 @@ public class AlipayPcPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
 | 
			
		||||
        // 2.1 执行请求
 | 
			
		||||
        AlipayTradePagePayResponse response;
 | 
			
		||||
        if (Objects.equals(displayMode, PayDisplayModeEnum.FORM.getMode())) {
 | 
			
		||||
        if (Objects.equals(displayMode, PayOrderDisplayModeEnum.FORM.getMode())) {
 | 
			
		||||
            response = client.pageExecute(request, Method.POST.name()); // 需要特殊使用 POST 请求
 | 
			
		||||
        } else {
 | 
			
		||||
            response = client.pageExecute(request, Method.GET.name());
 | 
			
		||||
        }
 | 
			
		||||
        // 2.2 处理结果
 | 
			
		||||
        validateUnifiedOrderResponse(request, response);
 | 
			
		||||
        return new PayOrderUnifiedRespDTO().setDisplayMode(displayMode)
 | 
			
		||||
                .setDisplayContent(response.getBody());
 | 
			
		||||
        return new PayOrderUnifiedRespDTO(displayMode, response.getBody());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,8 +2,8 @@ package cn.iocoder.yudao.framework.pay.core.client.impl.alipay;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayDisplayModeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
 | 
			
		||||
import com.alipay.api.AlipayApiException;
 | 
			
		||||
import com.alipay.api.domain.AlipayTradePrecreateModel;
 | 
			
		||||
import com.alipay.api.request.AlipayTradePrecreateRequest;
 | 
			
		||||
@@ -36,7 +36,7 @@ public class AlipayQrPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
        model.setProductCode("FACE_TO_FACE_PAYMENT"); // 销售产品码. 目前扫码支付场景下仅支持 FACE_TO_FACE_PAYMENT
 | 
			
		||||
        // ② 个性化的参数【无】
 | 
			
		||||
        // ③ 支付宝扫码支付只有一种展示,考虑到前端可能希望二维码扫描后,手机打开
 | 
			
		||||
        String displayMode = PayDisplayModeEnum.QR_CODE.getMode();
 | 
			
		||||
        String displayMode = PayOrderDisplayModeEnum.QR_CODE.getMode();
 | 
			
		||||
 | 
			
		||||
        // 1.2 构建 AlipayTradePrecreateRequest 请求
 | 
			
		||||
        AlipayTradePrecreateRequest request = new AlipayTradePrecreateRequest();
 | 
			
		||||
@@ -48,7 +48,7 @@ public class AlipayQrPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
        AlipayTradePrecreateResponse response = client.execute(request);
 | 
			
		||||
        // 2.2 处理结果
 | 
			
		||||
        validateUnifiedOrderResponse(request, response);
 | 
			
		||||
        return new PayOrderUnifiedRespDTO()
 | 
			
		||||
                .setDisplayMode(displayMode).setDisplayContent(response.getQrCode());
 | 
			
		||||
        return new PayOrderUnifiedRespDTO(displayMode, response.getQrCode());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -3,8 +3,8 @@ package cn.iocoder.yudao.framework.pay.core.client.impl.alipay;
 | 
			
		||||
import cn.hutool.http.Method;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayDisplayModeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
 | 
			
		||||
import com.alipay.api.AlipayApiException;
 | 
			
		||||
import com.alipay.api.domain.AlipayTradeWapPayModel;
 | 
			
		||||
import com.alipay.api.request.AlipayTradeWapPayRequest;
 | 
			
		||||
@@ -37,7 +37,7 @@ public class AlipayWapPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
        model.setProductCode("QUICK_WAP_PAY"); // 销售产品码. 目前 Wap 支付场景下仅支持 QUICK_WAP_PAY
 | 
			
		||||
        // ② 个性化的参数【无】
 | 
			
		||||
        // ③ 支付宝 Wap 支付只有一种展示:URL
 | 
			
		||||
        String displayMode = PayDisplayModeEnum.URL.getMode();
 | 
			
		||||
        String displayMode = PayOrderDisplayModeEnum.URL.getMode();
 | 
			
		||||
 | 
			
		||||
        // 1.2 构建 AlipayTradeWapPayRequest 请求
 | 
			
		||||
        AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
 | 
			
		||||
@@ -51,8 +51,7 @@ public class AlipayWapPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
 | 
			
		||||
        // 2.2 处理结果
 | 
			
		||||
        validateUnifiedOrderResponse(request, response);
 | 
			
		||||
        return new PayOrderUnifiedRespDTO()
 | 
			
		||||
                .setDisplayMode(displayMode).setDisplayContent(response.getBody());
 | 
			
		||||
        return new PayOrderUnifiedRespDTO(displayMode, response.getBody());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedRespD
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.impl.AbstractPayClient;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyV3Result;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.order.WxPayNativeOrderResult;
 | 
			
		||||
 
 | 
			
		||||
@@ -7,8 +7,8 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDT
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayDisplayModeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.request.WxPayMicropayRequest;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.result.WxPayMicropayResult;
 | 
			
		||||
import com.github.binarywang.wxpay.constant.WxPayConstants;
 | 
			
		||||
@@ -44,8 +44,8 @@ public class WxBarPayClient extends AbstractWxPayClient {
 | 
			
		||||
 | 
			
		||||
        // 转换结果
 | 
			
		||||
        // TODO 芋艿:这里后面要看看
 | 
			
		||||
        return new PayOrderUnifiedRespDTO().setDisplayMode(PayDisplayModeEnum.CUSTOM.getMode())
 | 
			
		||||
                .setDisplayContent(JsonUtils.toJsonString(response));
 | 
			
		||||
        return new PayOrderUnifiedRespDTO(PayOrderDisplayModeEnum.CUSTOM.getMode(),
 | 
			
		||||
                JsonUtils.toJsonString(response));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.impl.weixin;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
@@ -7,8 +7,8 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDT
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayDisplayModeEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.order.PayOrderDisplayModeEnum;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.order.WxPayMpOrderResult;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderV3Request;
 | 
			
		||||
@@ -58,8 +58,8 @@ public class WxPubPayClient extends AbstractWxPayClient {
 | 
			
		||||
        WxPayMpOrderResult response = client.createOrder(request);
 | 
			
		||||
 | 
			
		||||
        // 转换结果
 | 
			
		||||
        return new PayOrderUnifiedRespDTO().setDisplayMode(PayDisplayModeEnum.CUSTOM.getMode())
 | 
			
		||||
                .setDisplayContent(JsonUtils.toJsonString(response));
 | 
			
		||||
        return new PayOrderUnifiedRespDTO(PayOrderDisplayModeEnum.CUSTOM.getMode(),
 | 
			
		||||
                JsonUtils.toJsonString(response));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
@@ -77,8 +77,8 @@ public class WxPubPayClient extends AbstractWxPayClient {
 | 
			
		||||
        WxPayUnifiedOrderV3Result.JsapiResult response = client.createOrderV3(TradeTypeEnum.JSAPI, request);
 | 
			
		||||
 | 
			
		||||
        // 转换结果
 | 
			
		||||
        return new PayOrderUnifiedRespDTO().setDisplayMode(PayDisplayModeEnum.CUSTOM.getMode())
 | 
			
		||||
                .setDisplayContent(JsonUtils.toJsonString(response));
 | 
			
		||||
        return new PayOrderUnifiedRespDTO(PayOrderDisplayModeEnum.CUSTOM.getMode(),
 | 
			
		||||
                JsonUtils.toJsonString(response));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.enums;
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.enums.channel;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.ArrayUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayClientConfig;
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.enums;
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.enums.order;
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Getter;
 | 
			
		||||
@@ -10,7 +10,7 @@ import lombok.Getter;
 | 
			
		||||
 */
 | 
			
		||||
@Getter
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
public enum PayDisplayModeEnum {
 | 
			
		||||
public enum PayOrderDisplayModeEnum {
 | 
			
		||||
 | 
			
		||||
    URL("url"), // Redirect 跳转链接的方式
 | 
			
		||||
    IFRAME("iframe"), // IFrame 内嵌链接的方式【目前暂时用不到】
 | 
			
		||||
@@ -0,0 +1,23 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.enums.order;
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Getter;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 渠道的支付状态枚举
 | 
			
		||||
 *
 | 
			
		||||
 * @author 遇到源码
 | 
			
		||||
 */
 | 
			
		||||
@Getter
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
public enum PayOrderStatusRespEnum {
 | 
			
		||||
 | 
			
		||||
    WAITING(0, "未支付"),
 | 
			
		||||
    SUCCESS(10, "支付成功"),
 | 
			
		||||
    CLOSED(20, "支付关闭"), // 未付款交易超时关闭,或支付完成后全额退款
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
    private final Integer status;
 | 
			
		||||
    private final String name;
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.enums;
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.enums.refund;
 | 
			
		||||
 | 
			
		||||
// TODO 芋艿:看看能不能去掉
 | 
			
		||||
/**
 | 
			
		||||
 * 退款通知, 统一的渠道退款状态
 | 
			
		||||
 *
 | 
			
		||||
@@ -1,16 +1,16 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.enums;
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.enums.refund;
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Getter;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 渠道统一的退款返回结果
 | 
			
		||||
 * 渠道的退款状态枚举
 | 
			
		||||
 *
 | 
			
		||||
 * @author  jason
 | 
			
		||||
 * @author jason
 | 
			
		||||
 */
 | 
			
		||||
@Getter
 | 
			
		||||
@AllArgsConstructor
 | 
			
		||||
public enum PayChannelRefundRespEnum {
 | 
			
		||||
public enum PayRefundRespEnum {
 | 
			
		||||
 | 
			
		||||
    SUCCESS(1, "退款成功"),
 | 
			
		||||
    FAILURE(2, "退款失败"),
 | 
			
		||||
@@ -9,7 +9,7 @@ import cn.iocoder.yudao.framework.pay.core.client.impl.alipay.AlipayQrPayClient;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.impl.alipay.AlipayWapPayClient;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.impl.weixin.WxPayClientConfig;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.impl.weixin.WxPubPayClient;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.channel.PayChannelEnum;
 | 
			
		||||
import org.junit.jupiter.api.Disabled;
 | 
			
		||||
import org.junit.jupiter.api.Test;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user