diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml
index bf16cd37d4..5530d93d38 100644
--- a/yudao-dependencies/pom.xml
+++ b/yudao-dependencies/pom.xml
@@ -75,7 +75,7 @@
1.16.7
1.4.0
1.9.4
- 4.7.4.B
+ 4.7.5.B
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/withdraw/BrokerageWithdrawBaseVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/withdraw/BrokerageWithdrawBaseVO.java
deleted file mode 100644
index 46e63b25b2..0000000000
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/withdraw/BrokerageWithdrawBaseVO.java
+++ /dev/null
@@ -1,68 +0,0 @@
-package cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.withdraw;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import jakarta.validation.constraints.NotNull;
-import java.time.LocalDateTime;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-/**
- * 佣金提现 Base VO,提供给添加、修改、详细的子 VO 使用
- * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
- */
-@Data
-public class BrokerageWithdrawBaseVO {
-
- @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11436")
- @NotNull(message = "用户编号不能为空")
- private Long userId;
-
- @Schema(description = "提现金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "18781")
- @NotNull(message = "提现金额不能为空")
- private Integer price;
-
- @Schema(description = "提现手续费", requiredMode = Schema.RequiredMode.REQUIRED, example = "11417")
- @NotNull(message = "提现手续费不能为空")
- private Integer feePrice;
-
- @Schema(description = "当前总佣金", requiredMode = Schema.RequiredMode.REQUIRED, example = "18576")
- @NotNull(message = "当前总佣金不能为空")
- private Integer totalPrice;
-
- @Schema(description = "提现类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
- @NotNull(message = "提现类型不能为空")
- private Integer type;
-
- @Schema(description = "真实姓名", example = "赵六")
- private String userName;
-
- @Schema(description = "收款账号", example = "88677912132")
- private String userAccount;
-
- @Schema(description = "银行名称", example = "1")
- private String bankName;
-
- @Schema(description = "开户地址", example = "海淀支行")
- private String bankAddress;
-
- @Schema(description = "收款码", example = "https://www.iocoder.cn")
- private String qrCodeUrl;
-
- @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
- @NotNull(message = "状态不能为空")
- private Integer status;
-
- @Schema(description = "审核驳回原因", example = "不对")
- private String auditReason;
-
- @Schema(description = "审核时间")
- @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
- private LocalDateTime auditTime;
-
- @Schema(description = "备注", example = "随便")
- private String remark;
-
-}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/withdraw/BrokerageWithdrawRespVO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/withdraw/BrokerageWithdrawRespVO.java
index 4096dd9514..a2a7005bfe 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/withdraw/BrokerageWithdrawRespVO.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/brokerage/vo/withdraw/BrokerageWithdrawRespVO.java
@@ -2,27 +2,68 @@ package cn.iocoder.yudao.module.trade.controller.admin.brokerage.vo.withdraw;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 佣金提现 Response VO")
@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class BrokerageWithdrawRespVO extends BrokerageWithdrawBaseVO {
+public class BrokerageWithdrawRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7161")
private Long id;
+ @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "11436")
+ private Long userId;
+
+ @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
+ private String userNickname;
+
+ @Schema(description = "提现金额", requiredMode = Schema.RequiredMode.REQUIRED, example = "18781")
+ private Integer price;
+
+ @Schema(description = "提现手续费", requiredMode = Schema.RequiredMode.REQUIRED, example = "11417")
+ private Integer feePrice;
+
+ @Schema(description = "当前总佣金", requiredMode = Schema.RequiredMode.REQUIRED, example = "18576")
+ private Integer totalPrice;
+
+ @Schema(description = "提现类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ private Integer type;
+
+ @Schema(description = "真实姓名", example = "赵六")
+ private String userName;
+
+ @Schema(description = "收款账号", example = "88677912132")
+ private String userAccount;
+
+ @Schema(description = "银行名称", example = "1")
+ private String bankName;
+
+ @Schema(description = "开户地址", example = "海淀支行")
+ private String bankAddress;
+
+ @Schema(description = "收款码", example = "https://www.iocoder.cn")
+ private String qrCodeUrl;
+
+ @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+ private Integer status;
+
+ @Schema(description = "审核驳回原因", example = "不对")
+ private String auditReason;
+
+ @Schema(description = "审核时间")
+ private LocalDateTime auditTime;
+
+ @Schema(description = "备注", example = "随便")
+ private String remark;
+
+ @Schema(description = "转账单编号", example = "1024")
+ private Long payTransferId;
+
@Schema(description = "转账错误提示", example = "余额不足")
private String transferErrorMsg;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
private LocalDateTime createTime;
- @Schema(description = "用户昵称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
- private String userNickname;
-
}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/BrokerageWithdrawDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/BrokerageWithdrawDO.java
index 0b996eadb4..525a38912e 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/BrokerageWithdrawDO.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/brokerage/BrokerageWithdrawDO.java
@@ -126,5 +126,12 @@ public class BrokerageWithdrawDO extends BaseDO {
* 转账错误提示
*/
private String transferErrorMsg;
+ /**
+ * 渠道 package 信息
+ *
+ * 特殊:目前只有微信转账有这个东西!!!
+ * @see JSAPI 调起用户确认收款
+ */
+ private String transferChannelPackageInfo;
}
diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawServiceImpl.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawServiceImpl.java
index 353f75742b..4546bdce09 100644
--- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawServiceImpl.java
+++ b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/brokerage/BrokerageWithdrawServiceImpl.java
@@ -10,6 +10,7 @@ import cn.iocoder.yudao.framework.common.util.number.MoneyUtils;
import cn.iocoder.yudao.framework.common.util.object.ObjectUtils;
import cn.iocoder.yudao.module.pay.api.transfer.PayTransferApi;
import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
+import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;
import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferRespDTO;
import cn.iocoder.yudao.module.pay.api.wallet.PayWalletApi;
import cn.iocoder.yudao.module.pay.api.wallet.dto.PayWalletRespDTO;
@@ -152,11 +153,12 @@ public class BrokerageWithdrawServiceImpl implements BrokerageWithdrawService {
.setUserAccount(userAccount).setUserName(userName).setUserIp(getClientIP())
.setChannelExtras(channelExtras);
// 1.3 发起请求
- Long payTransferId = payTransferApi.createTransfer(transferReqDTO);
+ PayTransferCreateRespDTO transferRespDTO = payTransferApi.createTransfer(transferReqDTO);
// 2. 更新提现记录
brokerageWithdrawMapper.updateById(new BrokerageWithdrawDO().setId(withdraw.getId())
- .setPayTransferId(payTransferId).setTransferChannelCode(channelCode));
+ .setPayTransferId(transferRespDTO.getId()).setTransferChannelCode(channelCode)
+ .setTransferChannelPackageInfo(transferRespDTO.getChannelPackageInfo()));
}
private BrokerageWithdrawDO validateBrokerageWithdrawExists(Long id) {
diff --git a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApi.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApi.java
index e9312e1862..e3227ebe09 100644
--- a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApi.java
+++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApi.java
@@ -1,7 +1,7 @@
package cn.iocoder.yudao.module.pay.api.transfer;
import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
-
+import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;
import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferRespDTO;
import jakarta.validation.Valid;
@@ -16,9 +16,9 @@ public interface PayTransferApi {
* 创建转账单
*
* @param reqDTO 创建请求
- * @return 转账单编号
+ * @return 创建结果
*/
- Long createTransfer(@Valid PayTransferCreateReqDTO reqDTO);
+ PayTransferCreateRespDTO createTransfer(@Valid PayTransferCreateReqDTO reqDTO);
/**
* 获得转账单
diff --git a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferCreateRespDTO.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferCreateRespDTO.java
new file mode 100644
index 0000000000..a445eb07f7
--- /dev/null
+++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferCreateRespDTO.java
@@ -0,0 +1,28 @@
+package cn.iocoder.yudao.module.pay.api.transfer.dto;
+
+import lombok.Data;
+
+/**
+ * 转账单创建 Response DTO
+ *
+ * @author 芋道源码
+ */
+@Data
+public class PayTransferCreateRespDTO {
+
+ /**
+ * 编号
+ */
+ private Long id;
+
+ // ========== 其它字段 ==========
+
+ /**
+ * 渠道 package 信息
+ *
+ * 特殊:目前只有微信转账有这个东西!!!
+ * @see JSAPI 调起用户确认收款
+ */
+ private String channelPackageInfo;
+
+}
diff --git a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferRespDTO.java b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferRespDTO.java
index 98abf5d3a0..4db60a64af 100644
--- a/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferRespDTO.java
+++ b/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/dto/PayTransferRespDTO.java
@@ -63,4 +63,12 @@ public class PayTransferRespDTO {
*/
private String channelErrorMsg;
+ /**
+ * 渠道 package 信息
+ *
+ * 特殊:目前只有微信转账有这个东西!!!
+ * @see JSAPI 调起用户确认收款
+ */
+ private String channelPackageInfo;
+
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApiImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApiImpl.java
index 4109211254..0e759ff280 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApiImpl.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/transfer/PayTransferApiImpl.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.pay.api.transfer;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
+import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;
import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferRespDTO;
import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
import cn.iocoder.yudao.module.pay.service.transfer.PayTransferService;
@@ -22,7 +23,7 @@ public class PayTransferApiImpl implements PayTransferApi {
private PayTransferService payTransferService;
@Override
- public Long createTransfer(PayTransferCreateReqDTO reqDTO) {
+ public PayTransferCreateRespDTO createTransfer(PayTransferCreateReqDTO reqDTO) {
return payTransferService.createTransfer(reqDTO);
}
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/demo/PayDemoWithdrawDO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/demo/PayDemoWithdrawDO.java
index 71d803c02f..c1a9e4bccc 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/demo/PayDemoWithdrawDO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/demo/PayDemoWithdrawDO.java
@@ -80,5 +80,12 @@ public class PayDemoWithdrawDO extends BaseDO {
* 转账错误提示
*/
private String transferErrorMsg;
+ /**
+ * 渠道 package 信息
+ *
+ * 特殊:目前只有微信转账有这个东西!!!
+ * @see JSAPI 调起用户确认收款
+ */
+ private String transferChannelPackageInfo;
}
\ No newline at end of file
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferDO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferDO.java
index fe443e96e3..69dc506bac 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferDO.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/dal/dataobject/transfer/PayTransferDO.java
@@ -135,4 +135,12 @@ public class PayTransferDO extends BaseDO {
*/
private String channelNotifyData;
+ /**
+ * 渠道 package 信息
+ *
+ * 特殊:目前只有微信转账有这个东西!!!
+ * @see JSAPI 调起用户确认收款
+ */
+ private String channelPackageInfo;
+
}
\ No newline at end of file
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoTransferServiceImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoTransferServiceImpl.java
index 90e79db979..0a89e14adf 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoTransferServiceImpl.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/demo/PayDemoTransferServiceImpl.java
@@ -8,6 +8,7 @@ import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.pay.api.transfer.PayTransferApi;
import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
+import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;
import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferRespDTO;
import cn.iocoder.yudao.module.pay.controller.admin.demo.vo.withdraw.PayDemoWithdrawCreateReqVO;
import cn.iocoder.yudao.module.pay.dal.dataobject.demo.PayDemoWithdrawDO;
@@ -83,12 +84,13 @@ public class PayDemoTransferServiceImpl implements PayDemoWithdrawService {
transferReqDTO.setChannelExtras(PayTransferCreateReqDTO.buildWeiXinChannelExtra1000(
"测试活动", "测试奖励"));
}
- Long payTransferId = payTransferApi.createTransfer(transferReqDTO);
+ PayTransferCreateRespDTO transferRespDTO = payTransferApi.createTransfer(transferReqDTO);
// 2.2 更新转账单到 demo 示例提现单,并将状态更新为转账中
demoTransferMapper.updateByIdAndStatus(withdraw.getId(), withdraw.getStatus(),
- new PayDemoWithdrawDO().setPayTransferId(payTransferId));
- return payTransferId;
+ new PayDemoWithdrawDO().setPayTransferId(transferRespDTO.getId())
+ .setTransferChannelPackageInfo(transferRespDTO.getChannelPackageInfo()));
+ return transferRespDTO.getId();
}
private PayDemoWithdrawDO validateDemoWithdrawCanTransfer(Long id) {
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferService.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferService.java
index 6692c2ef25..b62670f496 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferService.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferService.java
@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.pay.service.transfer;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferRespDTO;
import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
+import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;
import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageReqVO;
import cn.iocoder.yudao.module.pay.dal.dataobject.transfer.PayTransferDO;
import jakarta.validation.Valid;
@@ -20,7 +21,7 @@ public interface PayTransferService {
* @param reqDTO 创建请求
* @return 转账单编号
*/
- Long createTransfer(@Valid PayTransferCreateReqDTO reqDTO);
+ PayTransferCreateRespDTO createTransfer(@Valid PayTransferCreateReqDTO reqDTO);
/**
* 获取转账单
diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferServiceImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferServiceImpl.java
index 42f77e6298..6f1a04dc2b 100644
--- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferServiceImpl.java
+++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/transfer/PayTransferServiceImpl.java
@@ -12,6 +12,7 @@ import cn.iocoder.yudao.framework.pay.core.client.dto.transfer.PayTransferUnifie
import cn.iocoder.yudao.framework.pay.core.enums.transfer.PayTransferStatusRespEnum;
import cn.iocoder.yudao.framework.tenant.core.util.TenantUtils;
import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateReqDTO;
+import cn.iocoder.yudao.module.pay.api.transfer.dto.PayTransferCreateRespDTO;
import cn.iocoder.yudao.module.pay.controller.admin.transfer.vo.PayTransferPageReqVO;
import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO;
import cn.iocoder.yudao.module.pay.dal.dataobject.channel.PayChannelDO;
@@ -62,7 +63,7 @@ public class PayTransferServiceImpl implements PayTransferService {
private PayNoRedisDAO noRedisDAO;
@Override
- public Long createTransfer(PayTransferCreateReqDTO reqDTO) {
+ public PayTransferCreateRespDTO createTransfer(PayTransferCreateReqDTO reqDTO) {
// 1.1 校验 App
PayAppDO payApp = appService.validPayApp(reqDTO.getAppKey());
// 1.2 校验支付渠道是否有效
@@ -88,12 +89,13 @@ public class PayTransferServiceImpl implements PayTransferService {
transferMapper.updateByIdAndStatus(transfer.getId(), transfer.getStatus(),
new PayTransferDO().setStatus(PayTransferStatusEnum.WAITING.getStatus()));
}
+ PayTransferRespDTO unifiedTransferResp = null;
try {
// 3. 调用三方渠道发起转账
PayTransferUnifiedReqDTO transferUnifiedReq = BeanUtils.toBean(reqDTO, PayTransferUnifiedReqDTO.class)
.setOutTransferNo(transfer.getNo())
.setNotifyUrl(genChannelTransferNotifyUrl(channel));
- PayTransferRespDTO unifiedTransferResp = client.unifiedTransfer(transferUnifiedReq);
+ unifiedTransferResp = client.unifiedTransfer(transferUnifiedReq);
// 4. 通知转账结果
getSelf().notifyTransfer(channel, unifiedTransferResp);
} catch (Throwable e) {
@@ -102,7 +104,8 @@ public class PayTransferServiceImpl implements PayTransferService {
// 或者,使用相同 no 再次发起转账请求
log.error("[createTransfer][转账编号({}) requestDTO({}) 发生异常]", transfer.getId(), reqDTO, e);
}
- return transfer.getId();
+ return new PayTransferCreateRespDTO().setId(transfer.getId())
+ .setChannelPackageInfo(unifiedTransferResp != null ? unifiedTransferResp.getChannelPackageInfo() : null);
}
/**
@@ -154,7 +157,7 @@ public class PayTransferServiceImpl implements PayTransferService {
}
private void notifyTransferProgressing(PayChannelDO channel, PayTransferRespDTO notify) {
- // 1.校验
+ // 1. 校验
PayTransferDO transfer = transferMapper.selectByAppIdAndNo(channel.getAppId(), notify.getOutTransferNo());
if (transfer == null) {
throw exception(PAY_TRANSFER_NOT_FOUND);
@@ -170,7 +173,8 @@ public class PayTransferServiceImpl implements PayTransferService {
// 2. 更新状态
int updateCounts = transferMapper.updateByIdAndStatus(transfer.getId(),
PayTransferStatusEnum.WAITING.getStatus(),
- new PayTransferDO().setStatus(PayTransferStatusEnum.PROCESSING.getStatus()));
+ new PayTransferDO().setStatus(PayTransferStatusEnum.PROCESSING.getStatus())
+ .setChannelPackageInfo(transfer.getChannelPackageInfo()));
if (updateCounts == 0) {
throw exception(PAY_TRANSFER_NOTIFY_FAIL_STATUS_IS_NOT_WAITING);
}
@@ -261,6 +265,9 @@ public class PayTransferServiceImpl implements PayTransferService {
}
int count = 0;
for (PayTransferDO transfer : list) {
+ if (!transfer.getId().equals(54L)) {
+ continue;
+ }
count += syncTransfer(transfer) ? 1 : 0;
}
return count;
diff --git a/yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java b/yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java
index 2be8b572bc..4a472730b9 100644
--- a/yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java
+++ b/yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/dto/transfer/PayTransferRespDTO.java
@@ -22,7 +22,6 @@ public class PayTransferRespDTO {
/**
* 外部转账单号
- *
*/
private String outTransferNo;
@@ -50,11 +49,19 @@ public class PayTransferRespDTO {
*/
private String channelErrorMsg;
+ /**
+ * 渠道 package 信息
+ *
+ * 特殊:目前只有微信转账有这个东西!!!
+ * @see JSAPI 调起用户确认收款
+ */
+ private String channelPackageInfo;
+
/**
* 创建【WAITING】状态的转账返回
*/
public static PayTransferRespDTO waitingOf(String channelTransferNo,
- String outTransferNo, Object rawData) {
+ String outTransferNo, Object rawData) {
PayTransferRespDTO respDTO = new PayTransferRespDTO();
respDTO.status = PayTransferStatusRespEnum.WAITING.getStatus();
respDTO.channelTransferNo = channelTransferNo;
diff --git a/yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java b/yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java
index 3f5ff93188..643d708728 100644
--- a/yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java
+++ b/yudao-module-pay/yudao-spring-boot-starter-biz-pay/src/main/java/cn/iocoder/yudao/framework/pay/core/client/impl/weixin/AbstractWxPayClient.java
@@ -482,11 +482,19 @@ public abstract class AbstractWxPayClient extends AbstractPayClient