mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 20:28:44 +08:00 
			
		
		
		
	pay: 临时性的提交,准备 client 部分的重构
This commit is contained in:
		@@ -1,7 +1,12 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.*;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayNotifyDataDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayRefundNotifyDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayOrderNotifyRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedRespDTO;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 支付客户端,用于对接各支付渠道的 SDK,实现发起支付、退款等功能
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto;
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto.notify;
 | 
			
		||||
 | 
			
		||||
import lombok.Builder;
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto;
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto.notify;
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Builder;
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto;
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto.notify;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayNotifyRefundStatusEnum;
 | 
			
		||||
import lombok.Builder;
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto;
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto.order;
 | 
			
		||||
 | 
			
		||||
import lombok.Data;
 | 
			
		||||
import org.hibernate.validator.constraints.Length;
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto;
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto.refund;
 | 
			
		||||
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
import lombok.Builder;
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto;
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.dto.refund;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelRefundRespEnum;
 | 
			
		||||
import lombok.AllArgsConstructor;
 | 
			
		||||
@@ -4,9 +4,9 @@ import cn.iocoder.yudao.framework.pay.core.client.AbstractPayCodeMapping;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayClient;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayClientConfig;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayRefundUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayRefundUnifiedRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.refund.PayRefundUnifiedRespDTO;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
 | 
			
		||||
import javax.validation.Validation;
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,11 @@ import cn.hutool.core.bean.BeanUtil;
 | 
			
		||||
import cn.hutool.core.date.LocalDateTimeUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.AbstractPayCodeMapping;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.*;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayNotifyDataDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayRefundNotifyDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayOrderNotifyRespDTO;
 | 
			
		||||
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 com.alipay.api.AlipayApiException;
 | 
			
		||||
@@ -106,11 +110,15 @@ public abstract class AbstractAlipayClient extends AbstractPayClient<AlipayPayCl
 | 
			
		||||
        AlipayTradeRefundModel model=new AlipayTradeRefundModel();
 | 
			
		||||
        model.setTradeNo(reqDTO.getChannelOrderNo());
 | 
			
		||||
        model.setOutTradeNo(reqDTO.getPayTradeNo());
 | 
			
		||||
 | 
			
		||||
        model.setOutRequestNo(reqDTO.getMerchantRefundId());
 | 
			
		||||
        model.setRefundAmount(calculateAmount(reqDTO.getAmount()).toString());
 | 
			
		||||
        model.setRefundAmount(calculateAmount(reqDTO.getAmount() / 2).toString());
 | 
			
		||||
        model.setRefundReason(reqDTO.getReason());
 | 
			
		||||
 | 
			
		||||
        AlipayTradeRefundRequest refundRequest = new AlipayTradeRefundRequest();
 | 
			
		||||
        refundRequest.setBizModel(model);
 | 
			
		||||
        refundRequest.setNotifyUrl(reqDTO.getNotifyUrl());
 | 
			
		||||
        refundRequest.setReturnUrl(reqDTO.getNotifyUrl());
 | 
			
		||||
        try {
 | 
			
		||||
            AlipayTradeRefundResponse response =  client.execute(refundRequest);
 | 
			
		||||
            log.info("[doUnifiedRefund][response({}) 发起退款 渠道返回", toJsonString(response));
 | 
			
		||||
 
 | 
			
		||||
@@ -1,9 +1,10 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.impl.alipay;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.hutool.http.Method;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import com.alibaba.fastjson.JSONObject;
 | 
			
		||||
import com.alipay.api.AlipayApiException;
 | 
			
		||||
@@ -36,24 +37,25 @@ public class AlipayPcPayClient extends AbstractAlipayClient {
 | 
			
		||||
        JSONObject bizContent = new JSONObject();
 | 
			
		||||
        // 参数说明可查看: https://opendocs.alipay.com/open/028r8t?scene=22
 | 
			
		||||
        bizContent.put("out_trade_no", reqDTO.getMerchantOrderId());
 | 
			
		||||
        bizContent.put("total_amount", calculateAmount(reqDTO.getAmount()));
 | 
			
		||||
        bizContent.put("subject", reqDTO.getSubject());
 | 
			
		||||
        bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY");
 | 
			
		||||
        bizContent.put("total_amount", calculateAmount(reqDTO.getAmount()));
 | 
			
		||||
        bizContent.put("product_code", "FAST_INSTANT_TRADE_PAY"); // 销售产品码. 目前电脑支付场景下仅支持 FAST_INSTANT_TRADE_PAY
 | 
			
		||||
        // PC扫码支付的方式:支持前置模式和跳转模式。4: 订单码-可定义宽度的嵌入式二维码
 | 
			
		||||
        bizContent.put("qr_pay_mode", "4");
 | 
			
		||||
//        bizContent.put("qr_pay_mode", "4");
 | 
			
		||||
        // 自定义二维码宽度
 | 
			
		||||
        bizContent.put("qrcode_width", "150");
 | 
			
		||||
//        bizContent.put("qrcode_width", "150");
 | 
			
		||||
        request.setBizContent(bizContent.toJSONString());
 | 
			
		||||
        request.setNotifyUrl(reqDTO.getNotifyUrl());
 | 
			
		||||
        request.setReturnUrl("");
 | 
			
		||||
        // 执行请求
 | 
			
		||||
        AlipayTradePagePayResponse response;
 | 
			
		||||
        try {
 | 
			
		||||
            response = client.pageExecute(request);
 | 
			
		||||
            response = client.pageExecute(request, Method.GET.name());
 | 
			
		||||
        } catch (AlipayApiException e) {
 | 
			
		||||
            log.error("[unifiedOrder][request({}) 发起支付失败]", JsonUtils.toJsonString(reqDTO), e);
 | 
			
		||||
            return PayCommonResult.build(e.getErrCode(), e.getErrMsg(), null, codeMapping);
 | 
			
		||||
        }
 | 
			
		||||
        System.out.println(response.getBody());
 | 
			
		||||
        // 响应为表单格式,前端可嵌入响应的页面或关闭当前支付窗口
 | 
			
		||||
        return PayCommonResult.build(StrUtil.blankToDefault(response.getCode(),"10000") ,response.getMsg(), response, codeMapping);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.impl.alipay;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import com.alipay.api.AlipayApiException;
 | 
			
		||||
import com.alipay.api.domain.AlipayTradePrecreateModel;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,9 @@
 | 
			
		||||
package cn.iocoder.yudao.framework.pay.core.client.impl.alipay;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.date.DateUtil;
 | 
			
		||||
import cn.hutool.http.Method;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.enums.PayChannelEnum;
 | 
			
		||||
import com.alipay.api.AlipayApiException;
 | 
			
		||||
import com.alipay.api.domain.AlipayTradeWapPayModel;
 | 
			
		||||
@@ -50,10 +51,11 @@ public class AlipayWapPayClient extends AbstractAlipayClient {
 | 
			
		||||
        // 执行请求
 | 
			
		||||
        AlipayTradeWapPayResponse response;
 | 
			
		||||
        try {
 | 
			
		||||
            response = client.pageExecute(request);
 | 
			
		||||
            response = client.pageExecute(request, Method.GET.name());
 | 
			
		||||
        } catch (AlipayApiException e) {
 | 
			
		||||
            return PayCommonResult.build(e.getErrCode(), e.getErrMsg(), null, codeMapping);
 | 
			
		||||
        }
 | 
			
		||||
        System.out.println(response.getBody());
 | 
			
		||||
 | 
			
		||||
        // TODO 芋艿:sub Code
 | 
			
		||||
        if(response.isSuccess() && Objects.isNull(response.getCode()) && Objects.nonNull(response.getBody())){
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,12 @@ import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.io.FileUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.*;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayNotifyDataDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayRefundNotifyDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayOrderNotifyRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
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 com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,12 @@ import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.io.FileUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.*;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayNotifyDataDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayRefundNotifyDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayOrderNotifyRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
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 com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,12 @@ import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.io.FileUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.*;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayNotifyDataDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayRefundNotifyDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.notify.PayOrderNotifyRespDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
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 com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,7 @@ import cn.hutool.core.util.RandomUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayClient;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.impl.alipay.AlipayPayClientConfig;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.impl.alipay.AlipayQrPayClient;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.impl.alipay.AlipayWapPayClient;
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@ package cn.iocoder.yudao.framework.pay.core.client.impl.alipay;
 | 
			
		||||
import cn.hutool.core.util.ReflectUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstants;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.PayCommonResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderUnifiedReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.framework.test.core.ut.BaseMockitoUnitTest;
 | 
			
		||||
import com.alipay.api.AlipayApiException;
 | 
			
		||||
import com.alipay.api.DefaultAlipayClient;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user