diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/FileUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/FileUtils.java
new file mode 100644
index 000000000..56baaed95
--- /dev/null
+++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/io/FileUtils.java
@@ -0,0 +1,34 @@
+package cn.iocoder.yudao.framework.common.util.io;
+
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.core.util.IdUtil;
+import lombok.SneakyThrows;
+
+import java.io.File;
+
+/**
+ * 文件工具类
+ *
+ * @author 芋道源码
+ */
+public class FileUtils {
+
+ /**
+ * 创建临时文件
+ * 该文件会在 JVM 退出时,进行删除
+ *
+ * @param data 文件内容
+ * @return 文件
+ */
+ @SneakyThrows
+ public static File createTempFile(String data) {
+ // 创建文件,通过 UUID 保证唯一
+ File file = File.createTempFile(IdUtil.simpleUUID(), null);
+ // 标记 JVM 退出时,自动删除
+ file.deleteOnExit();
+ // 写入内容
+ FileUtil.writeUtf8String(data, file);
+ return file;
+ }
+
+}
diff --git a/yudao-framework/yudao-spring-boot-starter-biz-pay/pom.xml b/yudao-framework/yudao-spring-boot-starter-biz-pay/pom.xml
index 862a41e45..668ce5d3d 100644
--- a/yudao-framework/yudao-spring-boot-starter-biz-pay/pom.xml
+++ b/yudao-framework/yudao-spring-boot-starter-biz-pay/pom.xml
@@ -11,7 +11,10 @@
yudao-spring-boot-starter-biz-pay
${artifactId}
- 支付拓展,基于 IJPay 简单封装,支持微信、支付宝等常见支付渠道
+ 支付拓展,接入国内多个支付渠道
+ 1. 支付宝,基于官方 SDK 接入
+ 2. 微信支付,基于 weixin-java-pay 接入
+
@@ -34,17 +37,36 @@
slf4j-api
-
- com.github.javen205
- IJPay-AliPay
- 2.7.8
+ com.fasterxml.jackson.core
+ jackson-databind
- com.github.javen205
- IJPay-WxPay
- 2.7.8
+ com.fasterxml.jackson.core
+ jackson-core
+
+
+
+
+
+
+
+
+
+
+
+
+ com.alipay.sdk
+ alipay-sdk-java
+ 4.17.9.ALL
+
+
+ com.github.binarywang
+ weixin-java-pay
+ 4.1.9.B
+
+
diff --git a/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/AbstractPayCodeMapping.java b/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/AbstractPayCodeMapping.java
new file mode 100644
index 000000000..88be97f00
--- /dev/null
+++ b/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/AbstractPayCodeMapping.java
@@ -0,0 +1,33 @@
+package cn.iocoder.yudao.framework.pay.core.client;
+
+import cn.iocoder.yudao.framework.common.exception.ErrorCode;
+import cn.iocoder.yudao.framework.pay.core.enums.PayFrameworkErrorCodeConstants;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 将 API 的错误码,转换为通用的错误码
+ *
+ * @see PayCommonResult
+ * @see PayFrameworkErrorCodeConstants
+ *
+ * @author 芋道源码
+ */
+@Slf4j
+public abstract class AbstractPayCodeMapping {
+
+ public final ErrorCode apply(String apiCode, String apiMsg) {
+ if (apiCode == null) {
+ log.error("[apply][API 错误码为空,请排查]");
+ return PayFrameworkErrorCodeConstants.EXCEPTION;
+ }
+ ErrorCode errorCode = this.apply0(apiCode, apiMsg);
+ if (errorCode == null) {
+ log.error("[apply][API 错误码({}) 错误提示({}) 无法匹配]", apiCode, apiMsg);
+ return PayFrameworkErrorCodeConstants.PAY_UNKNOWN;
+ }
+ return errorCode;
+ }
+
+ protected abstract ErrorCode apply0(String apiCode, String apiMsg);
+
+}
diff --git a/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClient.java b/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClient.java
index 1fe3690e1..05278a9ce 100644
--- a/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClient.java
+++ b/yudao-framework/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/PayClient.java
@@ -18,6 +18,6 @@ public interface PayClient {
Long getId();
// TODO 缺少注释
- CommonResult