feat(payment): 添加分账功能并优化相关服务

- 新增分账功能,支持支付宝和微信支付的分账操作
- 重构支付宝支付流程,使用新的SDK- 更新微信支付示例,调整相关参数
- 优化收银台配置和支付订单相关服务- 调整分账比例的验证规则,支持更灵活的比例设置
This commit is contained in:
DaxPay
2024-11-24 17:14:55 +08:00
parent 1f3b19d79b
commit 8901fb7463
9 changed files with 81 additions and 28 deletions

View File

@@ -1,7 +1,6 @@
package org.dromara.daxpay.channel.alipay.service.allocation.receiver;
import cn.hutool.core.util.StrUtil;
import com.alipay.api.AlipayClient;
import com.alipay.api.AlipayResponse;
import com.alipay.api.domain.AlipayTradeRoyaltyRelationBindModel;
import com.alipay.api.domain.AlipayTradeRoyaltyRelationUnbindModel;
@@ -54,7 +53,6 @@ public class AliPayAllocReceiverService {
*/
@SneakyThrows
public void bind(AllocReceiver allocReceiver){
AlipayClient alipayClient = aliPayConfigService.getAlipayClient();
AlipayTradeRoyaltyRelationBindModel model = new AlipayTradeRoyaltyRelationBindModel();
RoyaltyEntity entity = new RoyaltyEntity();
@@ -69,7 +67,7 @@ public class AliPayAllocReceiverService {
AlipayTradeRoyaltyRelationBindRequest request = new AlipayTradeRoyaltyRelationBindRequest();
model.setOutRequestNo(String.valueOf(allocReceiver.getId()));
request.setBizModel(model);
AlipayTradeRoyaltyRelationBindResponse response = alipayClient.execute(request);
AlipayTradeRoyaltyRelationBindResponse response = aliPayConfigService.execute(request);
this.verifyErrorMsg(response);
}
@@ -78,7 +76,6 @@ public class AliPayAllocReceiverService {
*/
@SneakyThrows
public void unbind(AllocReceiver allocReceiver){
AlipayClient alipayClient = aliPayConfigService.getAlipayClient();
AlipayTradeRoyaltyRelationUnbindModel model = new AlipayTradeRoyaltyRelationUnbindModel();
model.setOutRequestNo(String.valueOf(allocReceiver.getId()));
@@ -90,7 +87,7 @@ public class AliPayAllocReceiverService {
model.setReceiverList(Collections.singletonList(entity));
AlipayTradeRoyaltyRelationUnbindRequest request = new AlipayTradeRoyaltyRelationUnbindRequest();
request.setBizModel(model);
AlipayTradeRoyaltyRelationUnbindResponse response = alipayClient.execute(request);
AlipayTradeRoyaltyRelationUnbindResponse response = aliPayConfigService.execute(request);
System.out.println(response);
// 如果出现分账方不存在也视为成功
if (Objects.equals(response.getSubCode(), AliPayCode.USER_NOT_EXIST)) {