diff --git a/_doc/Task.md b/_doc/Task.md
index ca455471a..f573a7d92 100644
--- a/_doc/Task.md
+++ b/_doc/Task.md
@@ -2,7 +2,7 @@
2.0.8: 转账/撤销接口和系统优化
- [x] 支持撤销接口
- [x] 增加转账接口功能
-- [ ] 转账订单功能
+- [x] 转账订单前端页面
- [ ] DEMO增加转账演示功能
- [x] 手动发起分账重试参数修正
- [x] 细分各种支付异常类和编码(部分+初版)
@@ -42,6 +42,7 @@
- [x] 支付和退款达到终态不可以再回退回之前的状态
- [x] 修复支付关闭参数名称不正确问题
- [X] 去除消息通知模块
+- [x] 退款回调消息字段不一致导致验签不通过问题
2.0.9: 消息通知改版和系统优化
- [ ] 增加类似支付宝应用通知的方式, 先支持http方式通信
diff --git a/daxpay-single-sdk/pom.xml b/daxpay-single-sdk/pom.xml
index 73ea41ff5..179a61b5d 100644
--- a/daxpay-single-sdk/pom.xml
+++ b/daxpay-single-sdk/pom.xml
@@ -85,6 +85,12 @@
${junit.version}
test
+
+ cn.daxpay.single
+ daxpay-single-core
+ 2.0.7
+ compile
+
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferPayeeTypeEnum.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferPayeeTypeEnum.java
index a350e1e1c..899ebcf65 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferPayeeTypeEnum.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/code/TransferPayeeTypeEnum.java
@@ -16,18 +16,16 @@ import java.util.List;
@AllArgsConstructor
public enum TransferPayeeTypeEnum {
/** 微信 个人 */
- WX_PERSONAL("wx_personal","openid", "个人"),
+ WX_PERSONAL("wx_personal", "OpenId"),
/** 支付宝 userId 以2088开头的纯16位数字 */
- ALI_USER_ID("ali_user_id","ALIPAY_USERID", "用户ID"),
+ ALI_USER_ID("ali_user_id", "用户ID"),
/** 支付宝 openId */
- ALI_OPEN_ID("ali_open_id","ALIPAY_OPENID", "openId"),
+ ALI_OPEN_ID("ali_open_id", "OpenId"),
/** 支付宝 账号 支持邮箱和手机号格式 */
- ALI_LOGIN_NAME("ali_login_name","ALIPAY_LOGONID", "账号");
+ ALI_LOGIN_NAME("ali_login_name", "账号");
/** 编码 */
private final String code;
- /** 外部编码, 三方支付系统使用的编码 */
- private final String outCode;
/** 名称 */
private final String name;
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/RefundNoticeModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/RefundNoticeModel.java
index 963bf8e63..2b1f23199 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/RefundNoticeModel.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/notice/RefundNoticeModel.java
@@ -1,5 +1,6 @@
package cn.daxpay.single.sdk.model.notice;
+import cn.daxpay.single.core.code.RefundStatusEnum;
import cn.daxpay.single.sdk.code.PayChannelEnum;
import cn.daxpay.single.sdk.net.DaxPayResponseModel;
import lombok.Getter;
@@ -57,6 +58,11 @@ public class RefundNoticeModel extends DaxPayResponseModel {
/** 退款创建时间 */
private Long createTime;
+ /**
+ * 退款状态
+ * @see RefundStatusEnum
+ */
+ private String status;
/** 商户扩展参数,回调时会原样返回 */
private String attach;
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/transfer/TransferOrderModel.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/transfer/TransferOrderModel.java
index 687beed2b..ca1c90896 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/transfer/TransferOrderModel.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/model/transfer/TransferOrderModel.java
@@ -51,9 +51,6 @@ public class TransferOrderModel extends DaxPayResponseModel {
*/
private String transferType;
- /** 付款方 */
- private String payer;
-
/**
* 收款人类型
* @see TransferPayeeTypeEnum
diff --git a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/transfer/TransferParam.java b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/transfer/TransferParam.java
index 55539eaa0..8aa8db3e5 100644
--- a/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/transfer/TransferParam.java
+++ b/daxpay-single-sdk/src/main/java/cn/daxpay/single/sdk/param/transfer/TransferParam.java
@@ -46,7 +46,6 @@ public class TransferParam extends DaxPayRequest {
*/
private String transferType;
-
/**
* 收款人账号类型
* @see TransferPayeeTypeEnum
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderTest.java
index 18d611ae8..c8ade40fa 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/RefundOrderTest.java
@@ -39,15 +39,14 @@ public class RefundOrderTest {
public void refund(){
RefundParam param = new RefundParam();
param.setBizRefundNo("R" + RandomUtil.randomNumbers(5));
- param.setBizOrderNo("SDK_1715341621498");
+ param.setBizOrderNo("P1719153314573");
param.setAmount(1);
param.setAttach("{回调参数}");
- param.setNotifyUrl("https://abc.com/callback");
+ param.setNotifyUrl("http://127.0.0.1:9000/demo/callback/refundObject");
param.setClientIp("127.0.0.1");
DaxPayResult execute = DaxPayKit.execute(param);
System.out.println(JSONUtil.toJsonStr(execute));
-
System.out.println(PaySignUtil.verifyHmacSha256Sign(execute.getData(), "123456", execute.getData().getSign()));
}
diff --git a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/TransferOrderTest.java b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/TransferOrderTest.java
index 66ae66c30..8cd27a213 100644
--- a/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/TransferOrderTest.java
+++ b/daxpay-single-sdk/src/test/java/cn/daxpay/single/sdk/payment/TransferOrderTest.java
@@ -10,6 +10,7 @@ import cn.daxpay.single.sdk.param.transfer.TransferParam;
import cn.daxpay.single.sdk.response.DaxPayResult;
import cn.hutool.json.JSONUtil;
import org.junit.Before;
+import org.junit.Test;
/**
* 转账测试
@@ -33,16 +34,19 @@ public class TransferOrderTest {
/**
* 发起转账操作
*/
+ @Test
public void transfer() {
// 构建参数
TransferParam param = new TransferParam();
+ param.setBizTransferNo("T"+System.currentTimeMillis());
param.setTitle("测试转账");
param.setReason("我要转个账");
param.setAmount(500);
param.setChannel(PayChannelEnum.ALI.getCode());
param.setPayeeType(TransferPayeeTypeEnum.ALI_OPEN_ID.getCode());
+ param.setClientIp("127.0.0.1");
// 使用OpenId
- param.setPayeeAccount("");
+ param.setPayeeAccount("065a9aEjER9Fa__hxYyvgYDlkhUiw_6RINhYHB2oegpWAo5");
// 发起请求
DaxPayResult execute = DaxPayKit.execute(param);
System.out.println(JSONUtil.toJsonStr(execute));
diff --git a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/TransferOrderController.java b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/TransferOrderController.java
index d22874bab..da4f67298 100644
--- a/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/TransferOrderController.java
+++ b/daxpay-single/daxpay-single-admin/src/main/java/cn/daxpay/single/admin/controller/order/TransferOrderController.java
@@ -8,7 +8,6 @@ import cn.daxpay.single.core.code.PaymentApiCode;
import cn.daxpay.single.core.param.payment.transfer.TransferParam;
import cn.daxpay.single.service.annotation.InitPaymentContext;
import cn.daxpay.single.service.core.order.transfer.service.TransferOrderQueryService;
-import cn.daxpay.single.service.core.order.transfer.service.TransferOrderService;
import cn.daxpay.single.service.core.payment.transfer.service.TransferService;
import cn.daxpay.single.service.dto.order.transfer.TransferOrderDto;
import cn.daxpay.single.service.param.order.TransferOrderQuery;
@@ -28,7 +27,6 @@ import org.springframework.web.bind.annotation.*;
@RequiredArgsConstructor
public class TransferOrderController {
private final TransferOrderQueryService queryService;
- private final TransferOrderService transferOrderService;
private final TransferService transferService;
@@ -38,12 +36,18 @@ public class TransferOrderController {
return Res.ok(queryService.page(pageParam, query));
}
-
- @Operation(summary = "查询退款订单详情")
+ @Operation(summary = "根据转账号查询")
@GetMapping("/findByTransferNo")
public ResResult findByTransferNo(String refundNo){
return Res.ok(queryService.findByTransferNo(refundNo));
}
+
+ @Operation(summary = "根据商户转账号查询")
+ @GetMapping("/findByBizTransferNo")
+ public ResResult findByBizTransferNo(String bizTransferNo){
+ return Res.ok(queryService.findByBizTransferNo(bizTransferNo));
+ }
+
@Operation(summary = "查询单条")
@GetMapping("/findById")
public ResResult findById(Long id){
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocReceiverTypeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocReceiverTypeEnum.java
index 2be31fc2d..d7db93748 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocReceiverTypeEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/AllocReceiverTypeEnum.java
@@ -1,5 +1,6 @@
package cn.daxpay.single.core.code;
+import cn.daxpay.single.core.exception.UnsupportedAbilityException;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -41,7 +42,7 @@ public enum AllocReceiverTypeEnum {
return Arrays.stream(AllocReceiverTypeEnum.values())
.filter(e -> e.getCode().equals(code))
.findFirst()
- .orElseThrow(() -> new IllegalArgumentException("未找到对应的分账接收方类型"));
+ .orElseThrow(() -> new UnsupportedAbilityException("未找到对应的分账接收方类型"));
}
/** 微信支持类型 */
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferPayeeTypeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferPayeeTypeEnum.java
index f6d8b59b4..af5633ce3 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferPayeeTypeEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferPayeeTypeEnum.java
@@ -1,5 +1,6 @@
package cn.daxpay.single.core.code;
+import cn.daxpay.single.core.exception.UnsupportedAbilityException;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -16,13 +17,13 @@ import java.util.List;
@AllArgsConstructor
public enum TransferPayeeTypeEnum {
/** 微信 个人 */
- WX_PERSONAL("wx_personal","openid", "个人"),
+ WX_PERSONAL("wx_personal","openid", "OpenId"),
/** 支付宝 userId 以2088开头的纯16位数字 */
- ALI_USER_ID("ali_user_id","ALIPAY_USERID", "用户ID"),
+ ALI_USER_ID("ali_user_id","ALIPAY_USER_ID", "用户ID"),
/** 支付宝 openId */
- ALI_OPEN_ID("ali_open_id","ALIPAY_OPENID", "openId"),
+ ALI_OPEN_ID("ali_open_id","ALIPAY_OPEN_ID", "OpenId"),
/** 支付宝 账号 支持邮箱和手机号格式 */
- ALI_LOGIN_NAME("ali_login_name","ALIPAY_LOGONID", "账号");
+ ALI_LOGIN_NAME("ali_login_name","ALIPAY_LOGON_ID", "账号");
/** 编码 */
private final String code;
@@ -38,7 +39,7 @@ public enum TransferPayeeTypeEnum {
return Arrays.stream(TransferPayeeTypeEnum.values())
.filter(e -> e.getCode().equals(code))
.findFirst()
- .orElseThrow(() -> new IllegalArgumentException("未找到对应的分账接收方类型"));
+ .orElseThrow(() -> new UnsupportedAbilityException("未找到对应的分账接收方类型"));
}
/** 微信支持类型 */
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferStatusEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferStatusEnum.java
index 5e586d62b..72a1ce811 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferStatusEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferStatusEnum.java
@@ -14,8 +14,7 @@ public enum TransferStatusEnum {
TRANSFERRING("transferring", "转账中"),
SUCCESS("success", "转账成功"),
- FAIL("fail", "转账失败"),
- ;
+ FAIL("fail", "转账失败"),;
private final String code;
private final String name;
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferTypeEnum.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferTypeEnum.java
index b9aaf82a5..b7393ede8 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferTypeEnum.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/code/TransferTypeEnum.java
@@ -4,7 +4,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
/**
- * 转账类型注解
+ * 转账类型 微信使用
* @author xxm
* @since 2024/6/6
*/
diff --git a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/TransferOrderResult.java b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/TransferOrderResult.java
index 3c564c524..3ae2ba0e4 100644
--- a/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/TransferOrderResult.java
+++ b/daxpay-single/daxpay-single-core/src/main/java/cn/daxpay/single/core/result/order/TransferOrderResult.java
@@ -1,11 +1,17 @@
package cn.daxpay.single.core.result.order;
+import cn.daxpay.single.core.code.PayChannelEnum;
+import cn.daxpay.single.core.code.TransferPayeeTypeEnum;
+import cn.daxpay.single.core.code.TransferStatusEnum;
+import cn.daxpay.single.core.code.TransferTypeEnum;
import cn.daxpay.single.core.result.PaymentCommonResult;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
+import java.time.LocalDateTime;
+
/**
* 转账订单数据
* @author xxm
@@ -16,4 +22,80 @@ import lombok.experimental.Accessors;
@Accessors(chain = true)
@Schema(title = "转账订单数据")
public class TransferOrderResult extends PaymentCommonResult {
+
+ /** 商户转账号 */
+ @Schema(description = "商户转账号")
+ private String bizTransferNo;
+
+ /** 转账号 */
+ @Schema(description = "转账号")
+ private String transferNo;
+
+ /** 通道转账号 */
+ @Schema(description = "通道转账号")
+ private String outTransferNo;
+
+ /**
+ * 支付通道
+ * @see PayChannelEnum
+ */
+ @Schema(description = "支付通道")
+ private String channel;
+
+ /** 转账金额 */
+ @Schema(description = "转账金额")
+ private Integer amount;
+
+ /** 标题 */
+ @Schema(description = "标题")
+ private String title;
+
+ /** 转账原因/备注 */
+ @Schema(description = "转账原因/备注")
+ private String reason;
+
+ /**
+ * 转账类型, 微信使用
+ * @see TransferTypeEnum
+ */
+ @Schema(description = "转账类型, 微信使用")
+ private String transferType;
+
+ /**
+ * 收款人类型
+ * @see TransferPayeeTypeEnum
+ */
+ @Schema(description = "收款人类型")
+ private String payeeType;
+
+ /** 收款人账号 */
+ @Schema(description = "收款人账号")
+ private String payeeAccount;
+
+ /** 收款人姓名 */
+ @Schema(description = "收款人姓名")
+ private String payeeName;
+
+ /**
+ * 状态
+ * @see TransferStatusEnum
+ */
+ @Schema(description = "状态")
+ private String status;
+
+ /** 成功时间 */
+ @Schema(description = "成功时间")
+ private LocalDateTime successTime;
+
+ /**
+ * 错误码
+ */
+ @Schema(description = "错误码")
+ private String errorCode;
+
+ /**
+ * 错误原因
+ */
+ @Schema(description = "错误原因")
+ private String errorMsg;
}
diff --git a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniQueryController.java b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniQueryController.java
index 499d792cd..dda60705d 100644
--- a/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniQueryController.java
+++ b/daxpay-single/daxpay-single-gateway/src/main/java/cn/daxpay/single/gateway/controller/UniQueryController.java
@@ -13,10 +13,12 @@ import cn.daxpay.single.core.result.order.AllocOrderResult;
import cn.daxpay.single.core.result.allocation.AllocReceiversResult;
import cn.daxpay.single.core.result.order.PayOrderResult;
import cn.daxpay.single.core.result.order.RefundOrderResult;
+import cn.daxpay.single.core.result.order.TransferOrderResult;
import cn.daxpay.single.service.annotation.PaymentVerify;
import cn.daxpay.single.service.annotation.InitPaymentContext;
import cn.daxpay.single.service.core.order.pay.service.PayOrderQueryService;
import cn.daxpay.single.service.core.order.refund.service.RefundOrderQueryService;
+import cn.daxpay.single.service.core.order.transfer.service.TransferOrderQueryService;
import cn.daxpay.single.service.core.payment.allocation.service.AllocationReceiverService;
import cn.daxpay.single.service.core.payment.allocation.service.AllocationService;
import cn.daxpay.single.core.util.DaxRes;
@@ -43,6 +45,7 @@ public class UniQueryController {
private final PayOrderQueryService payOrderQueryService;
private final RefundOrderQueryService refundOrderQueryService;
+ private final TransferOrderQueryService transferOrderQueryService;
private final AllocationReceiverService allocationReceiverService;
private final AllocationService allocationService;
@@ -74,8 +77,8 @@ public class UniQueryController {
@InitPaymentContext(PaymentApiCode.QUERY_TRANSFER_ORDER)
@Operation(summary = "转账订单查询接口")
@PostMapping("/transferOrder")
- public DaxResult transferOrder(@RequestBody QueryTransferParam param){
- return DaxRes.ok();
+ public DaxResult transferOrder(@RequestBody QueryTransferParam param){
+ return DaxRes.ok(transferOrderQueryService.queryTransferOrder(param));
}
@PaymentVerify
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayTransferService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayTransferService.java
index c29707005..9d1864b11 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayTransferService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/channel/alipay/service/AliPayTransferService.java
@@ -1,6 +1,7 @@
package cn.daxpay.single.service.core.channel.alipay.service;
import cn.bootx.platform.common.core.util.LocalDateTimeUtil;
+import cn.daxpay.single.core.code.TransferPayeeTypeEnum;
import cn.daxpay.single.core.code.TransferStatusEnum;
import cn.daxpay.single.core.exception.TradeFaileException;
import cn.daxpay.single.service.code.AliPayCode;
@@ -75,12 +76,16 @@ public class AliPayTransferService {
model.setOutBizNo(order.getTransferNo());
// 设置订单总金额
model.setTransAmount(PayUtil.conversionAmount(order.getAmount()).toString());
-
// 设置收款方信息
Participant payeeInfo = new Participant();
+ // 收款人账号
payeeInfo.setIdentity(order.getPayeeAccount());
+ // 收款人姓名
payeeInfo.setName(order.getPayeeName());
- payeeInfo.setIdentityType(order.getPayeeType());
+ // 收款人类型
+ String identityType = TransferPayeeTypeEnum.findByCode(order.getPayeeType())
+ .getOutCode();
+ payeeInfo.setIdentityType(identityType);
model.setPayeeInfo(payeeInfo);
model.setRemark(order.getReason());
request.setBizModel(model);
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeTask.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeTask.java
index 681a548d0..6bdbbcf6c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeTask.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/notice/entity/ClientNoticeTask.java
@@ -81,7 +81,7 @@ public class ClientNoticeTask extends MpBaseEntity implements EntityBaseFunction
private String url;
/** 最后发送时间 */
- @DbColumn(comment = "最后发送时间", isNull = false)
+ @DbColumn(comment = "最后发送时间")
private LocalDateTime latestTime;
/**
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/entity/TransferOrder.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/entity/TransferOrder.java
index 4e8a4d11b..668af2b20 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/entity/TransferOrder.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/order/transfer/entity/TransferOrder.java
@@ -73,10 +73,6 @@ public class TransferOrder extends MpBaseEntity implements EntityBaseFunction new DataNotExistException("转账订单扩展信息不存在"));
+ .orElseThrow(() -> new DataNotExistException("转账订单信息不存在"));
+
+ }
+
+ /**
+ * 根据转账号查询
+ */
+ public TransferOrderDto findByBizTransferNo(String bizTransferNo){
+ return transferOrderManager.findByBizTransferNo(bizTransferNo).map(TransferOrder::toDto)
+ .orElseThrow(() -> new DataNotExistException("转账订单信息不存在"));
}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationAssistService.java
index f92583a19..47754926a 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationAssistService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationAssistService.java
@@ -22,7 +22,7 @@ public class AllocationAssistService {
private final AllocationOrderManager allocationOrderManager;
/**
- * 根据新传入的分账订单更新订单和扩展信息
+ * 根据新传入的分账订单更新订单信息
*/
@Transactional(rollbackFor = Exception.class)
public void updateOrder(AllocationParam allocationParam, AllocOrder orderExtra) {
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationService.java
index 2a4035b2b..e34d80060 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/allocation/service/AllocationService.java
@@ -169,7 +169,7 @@ public class AllocationService {
allocationStrategy.initParam(order, details);
// 分账预处理
allocationStrategy.doBeforeHandler();
- // 更新分账单扩展信息
+ // 更新分账单信息
allocationAssistService.updateOrder(param, order);
try {
// 重复分账处理
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayAssistService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayAssistService.java
index 62044c650..7a2dd9213 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayAssistService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/pay/service/PayAssistService.java
@@ -85,7 +85,7 @@ public class PayAssistService {
}
/**
- * 根据新传入的支付订单更新订单和扩展信息
+ * 根据新传入的支付订单更新订单信息
*/
@Transactional(rollbackFor = Exception.class)
public void updatePayOrder(PayParam payParam,PayOrder order) {
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundService.java
index 902972d6e..52ba2959c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/refund/service/RefundService.java
@@ -175,7 +175,7 @@ public class RefundService {
}
/**
- * 更新退款订单扩展信息
+ * 更新退款订单信息
*/
private void updateOrder(RefundParam param, RefundOrder order){
order.setAttach(param.getAttach())
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferService.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferService.java
index 85093be22..9a6402123 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferService.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/service/TransferService.java
@@ -3,6 +3,7 @@ package cn.daxpay.single.service.core.payment.transfer.service;
import cn.daxpay.single.core.code.RefundStatusEnum;
import cn.daxpay.single.core.param.payment.transfer.TransferParam;
import cn.daxpay.single.core.result.transfer.TransferResult;
+import cn.daxpay.single.service.common.context.TransferLocal;
import cn.daxpay.single.service.common.local.PaymentContextLocal;
import cn.daxpay.single.service.core.order.transfer.dao.TransferOrderManager;
import cn.daxpay.single.service.core.order.transfer.entity.TransferOrder;
@@ -63,7 +64,11 @@ public class TransferService {
*/
@Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRES_NEW)
public void successHandler(TransferOrder order){
- order.setStatus(RefundStatusEnum.SUCCESS.getCode());
+ TransferLocal transferInfo = PaymentContextLocal.get()
+ .getTransferInfo();
+ order.setStatus(transferInfo.getStatus().getCode())
+ .setSuccessTime(transferInfo.getFinishTime())
+ .setOutTransferNo(transferInfo.getOutTransferNo());
transferOrderManager.updateById(order);
}
}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/WeChatTransferStrategy.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/WeChatTransferStrategy.java
index 69002ddf1..8d31de80c 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/WeChatTransferStrategy.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/core/payment/transfer/strategy/WeChatTransferStrategy.java
@@ -48,7 +48,7 @@ public class WeChatTransferStrategy extends AbsTransferStrategy {
// 转账接收方类型校验
String payeeType = transferParam.getPayeeType();
if (!Objects.equals(WX_PERSONAL.getCode(), payeeType)){
- throw new ParamValidationFailException("支付宝不支持该类型收款人");
+ throw new ParamValidationFailException("微信不支持该类型收款人");
}
}
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/transfer/TransferOrderDto.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/transfer/TransferOrderDto.java
index 1894d830a..2e3bbcad7 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/transfer/TransferOrderDto.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/dto/order/transfer/TransferOrderDto.java
@@ -61,10 +61,6 @@ public class TransferOrderDto extends BaseDto {
@Schema(description = "转账类型, 微信使用")
private String transferType;
- /** 付款方 */
- @Schema(description = "付款方")
- private String payer;
-
/**
* 收款人类型
* @see TransferPayeeTypeEnum
diff --git a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/TransferOrderQuery.java b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/TransferOrderQuery.java
index ebdb2b59b..5156ac26a 100644
--- a/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/TransferOrderQuery.java
+++ b/daxpay-single/daxpay-single-service/src/main/java/cn/daxpay/single/service/param/order/TransferOrderQuery.java
@@ -62,9 +62,6 @@ public class TransferOrderQuery extends QueryOrder {
@Schema(description = "转账类型, 微信使用")
private String transferType;
- /** 付款方 */
- @Schema(description = "付款方")
- private String payer;
/**
* 收款人类型