mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	✨ 同步 master 的一些 pr 代码变更
This commit is contained in:
		@@ -44,6 +44,7 @@ public class PayClientFactoryImpl implements PayClientFactory {
 | 
			
		||||
        clientClass.put(WX_APP, WxAppPayClient.class);
 | 
			
		||||
        clientClass.put(WX_BAR, WxBarPayClient.class);
 | 
			
		||||
        clientClass.put(WX_NATIVE, WxNativePayClient.class);
 | 
			
		||||
        clientClass.put(WX_WAP, WxWapPayClient.class);
 | 
			
		||||
        // 支付包支付客户端
 | 
			
		||||
        clientClass.put(ALIPAY_WAP, AlipayWapPayClient.class);
 | 
			
		||||
        clientClass.put(ALIPAY_QR, AlipayQrPayClient.class);
 | 
			
		||||
 
 | 
			
		||||
@@ -45,6 +45,7 @@ public class AlipayWapPayClient extends AbstractAlipayPayClient {
 | 
			
		||||
        request.setNotifyUrl(reqDTO.getNotifyUrl());
 | 
			
		||||
        request.setReturnUrl(reqDTO.getReturnUrl());
 | 
			
		||||
        model.setQuitUrl(reqDTO.getReturnUrl());
 | 
			
		||||
        model.setTimeExpire(formatTime(reqDTO.getExpireTime()));
 | 
			
		||||
 | 
			
		||||
        // 2.1 执行请求
 | 
			
		||||
        AlipayTradeWapPayResponse response = client.pageExecute(request, Method.GET.name());
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,62 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.impl.weixin;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
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.WxPayMwebOrderResult;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderV3Request;
 | 
			
		||||
import com.github.binarywang.wxpay.bean.result.enums.TradeTypeEnum;
 | 
			
		||||
import com.github.binarywang.wxpay.constant.WxPayConstants;
 | 
			
		||||
import com.github.binarywang.wxpay.exception.WxPayException;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 微信支付(H5 网页)的 PayClient 实现类
 | 
			
		||||
 *
 | 
			
		||||
 * 文档:<a href="https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_3_1.shtml">H5下单API</>
 | 
			
		||||
 *
 | 
			
		||||
 * @author YYQ
 | 
			
		||||
 */
 | 
			
		||||
@Slf4j
 | 
			
		||||
public class WxWapPayClient extends AbstractWxPayClient {
 | 
			
		||||
 | 
			
		||||
    public WxWapPayClient(Long channelId, WxPayClientConfig config) {
 | 
			
		||||
        super(channelId, PayChannelEnum.WX_WAP.getCode(), config);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected WxWapPayClient(Long channelId, String channelCode, WxPayClientConfig config) {
 | 
			
		||||
        super(channelId, channelCode, config);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected void doInit() {
 | 
			
		||||
        super.doInit(WxPayConstants.TradeType.MWEB);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected PayOrderRespDTO doUnifiedOrderV2(PayOrderUnifiedReqDTO reqDTO) throws WxPayException {
 | 
			
		||||
        // 构建 WxPayUnifiedOrderRequest 对象
 | 
			
		||||
        WxPayUnifiedOrderRequest request = buildPayUnifiedOrderRequestV2(reqDTO);
 | 
			
		||||
        // 执行请求
 | 
			
		||||
        WxPayMwebOrderResult response = client.createOrder(request);
 | 
			
		||||
 | 
			
		||||
        // 转换结果
 | 
			
		||||
        return PayOrderRespDTO.waitingOf(PayOrderDisplayModeEnum.URL.getMode(), response.getMwebUrl(),
 | 
			
		||||
                reqDTO.getOutTradeNo(), response);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    protected PayOrderRespDTO doUnifiedOrderV3(PayOrderUnifiedReqDTO reqDTO) throws WxPayException {
 | 
			
		||||
        // 构建 WxPayUnifiedOrderRequest 对象
 | 
			
		||||
        WxPayUnifiedOrderV3Request request = buildPayUnifiedOrderRequestV3(reqDTO);
 | 
			
		||||
        // 执行请求
 | 
			
		||||
        String response = client.createOrderV3(TradeTypeEnum.H5, request);
 | 
			
		||||
 | 
			
		||||
        // 转换结果
 | 
			
		||||
        return PayOrderRespDTO.waitingOf(PayOrderDisplayModeEnum.URL.getMode(), response,
 | 
			
		||||
                reqDTO.getOutTradeNo(), response);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -21,6 +21,7 @@ public enum PayChannelEnum {
 | 
			
		||||
    WX_LITE("wx_lite", "微信小程序支付", WxPayClientConfig.class),
 | 
			
		||||
    WX_APP("wx_app", "微信 App 支付", WxPayClientConfig.class),
 | 
			
		||||
    WX_NATIVE("wx_native", "微信 Native 支付", WxPayClientConfig.class),
 | 
			
		||||
    WX_WAP("wx_wap", "微信 Wap 网站支付", WxPayClientConfig.class), // H5 网页
 | 
			
		||||
    WX_BAR("wx_bar", "微信付款码支付", WxPayClientConfig.class),
 | 
			
		||||
 | 
			
		||||
    ALIPAY_PC("alipay_pc", "支付宝 PC 网站支付", AlipayPayClientConfig.class),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user