fix 支付宝服务商缺少策略类

This commit is contained in:
DaxPay
2024-12-24 19:00:26 +08:00
parent fb1014d907
commit 8aa6b68894
14 changed files with 207 additions and 13 deletions

View File

@@ -1,4 +1,4 @@
package org.dromara.daxpay.channel.alipay.bo.reconcile;
package org.dromara.daxpay.channel.alipay.bo;
import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
import cn.hutool.core.annotation.Alias;

View File

@@ -1,4 +1,4 @@
package org.dromara.daxpay.channel.alipay.bo.reconcile;
package org.dromara.daxpay.channel.alipay.bo;
import cn.bootx.platform.common.mybatisplus.base.MpIdEntity;
import cn.hutool.core.annotation.Alias;

View File

@@ -1,4 +1,4 @@
package org.dromara.daxpay.channel.alipay.convert.config;
package org.dromara.daxpay.channel.alipay.convert;
import org.dromara.daxpay.channel.alipay.entity.AliPayConfig;
import org.dromara.daxpay.channel.alipay.param.config.AlipayConfigParam;

View File

@@ -2,7 +2,7 @@ package org.dromara.daxpay.channel.alipay.entity;
import cn.bootx.platform.common.mybatisplus.function.ToResult;
import cn.bootx.platform.core.util.JsonUtil;
import org.dromara.daxpay.channel.alipay.convert.config.AlipayConfigConvert;
import org.dromara.daxpay.channel.alipay.convert.AlipayConfigConvert;
import org.dromara.daxpay.channel.alipay.result.config.AlipayConfigResult;
import org.dromara.daxpay.core.enums.ChannelEnum;
import org.dromara.daxpay.service.entity.config.ChannelConfig;

View File

@@ -36,7 +36,7 @@ import static org.dromara.daxpay.core.enums.AllocReceiverTypeEnum.*;
@Slf4j
@Service
@RequiredArgsConstructor
public class AliPayAllocReceiverService {
public class AlipayAllocReceiverService {
private final AlipayConfigService aliPayConfigService;
/**

View File

@@ -43,7 +43,7 @@ import java.util.stream.Collectors;
@Slf4j
@Service
@RequiredArgsConstructor
public class AliPayAllocationService {
public class AlipayAllocationService {
private final AlipayConfigService aliPayConfigService;
/**

View File

@@ -12,7 +12,7 @@ import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.dromara.daxpay.channel.alipay.code.AlipayCode;
import org.dromara.daxpay.channel.alipay.convert.config.AlipayConfigConvert;
import org.dromara.daxpay.channel.alipay.convert.AlipayConfigConvert;
import org.dromara.daxpay.channel.alipay.entity.AliPayConfig;
import org.dromara.daxpay.channel.alipay.param.config.AlipayConfigParam;
import org.dromara.daxpay.channel.alipay.result.config.AlipayConfigResult;

View File

@@ -16,8 +16,8 @@ import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
import org.dromara.daxpay.channel.alipay.bo.reconcile.AlipayReconcileBillDetail;
import org.dromara.daxpay.channel.alipay.bo.reconcile.AlipayReconcileBillTotal;
import org.dromara.daxpay.channel.alipay.bo.AlipayReconcileBillDetail;
import org.dromara.daxpay.channel.alipay.bo.AlipayReconcileBillTotal;
import org.dromara.daxpay.channel.alipay.entity.AliPayConfig;
import org.dromara.daxpay.channel.alipay.service.config.AlipayConfigService;
import org.dromara.daxpay.core.enums.TradeStatusEnum;

View File

@@ -0,0 +1,78 @@
package org.dromara.daxpay.channel.alipay.strategy.isv;
import cn.bootx.platform.core.exception.ValidationFailedException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.daxpay.channel.alipay.entity.AliPayConfig;
import org.dromara.daxpay.channel.alipay.service.allocation.AlipayAllocReceiverService;
import org.dromara.daxpay.channel.alipay.service.config.AlipayConfigService;
import org.dromara.daxpay.core.enums.AllocReceiverTypeEnum;
import org.dromara.daxpay.core.enums.ChannelEnum;
import org.dromara.daxpay.service.strategy.AbsAllocReceiverStrategy;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
import java.util.List;
import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROTOTYPE;
/**
* 支付宝分账接收者策略
* @author xxm
* @since 2024/4/1
*/
@Slf4j
@Service
@Scope(SCOPE_PROTOTYPE)
@RequiredArgsConstructor
public class AlipayIsvAllocReceiverStrategy extends AbsAllocReceiverStrategy {
private final AlipayAllocReceiverService receiverService;
private final AlipayConfigService aliPayConfigService;
/**
* 策略标识
*/
@Override
public String getChannel() {
return ChannelEnum.ALIPAY_ISV.getCode();
}
@Override
public List<AllocReceiverTypeEnum> getSupportReceiverTypes() {
return List.of(AllocReceiverTypeEnum.LOGIN_NAME, AllocReceiverTypeEnum.USER_ID, AllocReceiverTypeEnum.OPEN_ID);
}
/**
* 校验方法
*/
@Override
public boolean validation(){
return receiverService.validation(this.getAllocReceiver());
}
/**
* 添加到支付系统中
*/
@Override
public void bind() {
AliPayConfig aliPayConfig = aliPayConfigService.getAliPayConfig(true);
if (!receiverService.validation(this.getAllocReceiver())){
throw new ValidationFailedException("分账接收者参数未通过校验");
}
receiverService.bind(this.getAllocReceiver(),aliPayConfig);
}
/**
* 从三方支付系统中删除
*/
@Override
public void unbind() {
AliPayConfig aliPayConfig = aliPayConfigService.getAliPayConfig(true);
if (!receiverService.validation(this.getAllocReceiver())){
throw new ValidationFailedException("分账参数未通过校验");
}
receiverService.unbind(this.getAllocReceiver(),aliPayConfig);
}
}

View File

@@ -0,0 +1,62 @@
package org.dromara.daxpay.channel.alipay.strategy.isv;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.daxpay.channel.alipay.entity.AliPayConfig;
import org.dromara.daxpay.channel.alipay.service.allocation.AlipayAllocationService;
import org.dromara.daxpay.channel.alipay.service.config.AlipayConfigService;
import org.dromara.daxpay.core.enums.ChannelEnum;
import org.dromara.daxpay.service.bo.allocation.AllocStartResultBo;
import org.dromara.daxpay.service.bo.allocation.AllocSyncResultBo;
import org.dromara.daxpay.service.strategy.AbsAllocationStrategy;
import org.springframework.stereotype.Component;
/**
* 支付宝分账
* @author xxm
* @since 2024/12/9
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class AlipayIsvAllocationStrategy extends AbsAllocationStrategy {
private final AlipayAllocationService aliPayAllocationService;
private final AlipayConfigService aliPayConfigService;
/**
* 分账通道
*/
@Override
public String getChannel() {
return ChannelEnum.ALIPAY_ISV.getCode();
}
/**
* 开始分账
*/
@Override
public AllocStartResultBo start() {
AliPayConfig aliPayConfig = aliPayConfigService.getAliPayConfig(true);
return aliPayAllocationService.start(getOrder(), getDetails(), aliPayConfig);
}
/**
* 分账完结
*/
@Override
public void finish() {
AliPayConfig aliPayConfig = aliPayConfigService.getAliPayConfig(true);
aliPayAllocationService.finish(getOrder(), getDetails(), aliPayConfig);
}
/**
* 同步状态
*/
@Override
public AllocSyncResultBo doSync() {
AliPayConfig aliPayConfig = aliPayConfigService.getAliPayConfig(true);
return aliPayAllocationService.sync(getOrder(), getDetails(), aliPayConfig);
}
}

View File

@@ -0,0 +1,27 @@
package org.dromara.daxpay.channel.alipay.strategy.isv;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.daxpay.core.enums.ChannelEnum;
import org.dromara.daxpay.service.strategy.AbsCashierCodeStrategy;
import org.springframework.stereotype.Component;
/**
* 支付宝收银码牌支付
* @author xxm
* @since 2024/9/29
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class AlipayIsvCashierCodeStrategy extends AbsCashierCodeStrategy {
/**
* 策略标识, 可以自行进行扩展
*/
@Override
public String getChannel() {
return ChannelEnum.ALIPAY_ISV.getCode();
}
}

View File

@@ -0,0 +1,27 @@
package org.dromara.daxpay.channel.alipay.strategy.merchant;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.daxpay.core.enums.ChannelEnum;
import org.dromara.daxpay.service.strategy.AbsCashierCodeStrategy;
import org.springframework.stereotype.Component;
/**
* 支付宝收银码牌支付
* @author xxm
* @since 2024/9/29
*/
@Slf4j
@Component
@RequiredArgsConstructor
public class AliPayCashierCodeStrategy extends AbsCashierCodeStrategy {
/**
* 策略标识, 可以自行进行扩展
*/
@Override
public String getChannel() {
return ChannelEnum.ALIPAY.getCode();
}
}

View File

@@ -4,7 +4,7 @@ import cn.bootx.platform.core.exception.ValidationFailedException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.daxpay.channel.alipay.entity.AliPayConfig;
import org.dromara.daxpay.channel.alipay.service.allocation.AliPayAllocReceiverService;
import org.dromara.daxpay.channel.alipay.service.allocation.AlipayAllocReceiverService;
import org.dromara.daxpay.channel.alipay.service.config.AlipayConfigService;
import org.dromara.daxpay.core.enums.AllocReceiverTypeEnum;
import org.dromara.daxpay.core.enums.ChannelEnum;
@@ -27,7 +27,7 @@ import static org.springframework.beans.factory.config.BeanDefinition.SCOPE_PROT
@RequiredArgsConstructor
public class AlipayAllocReceiverStrategy extends AbsAllocReceiverStrategy {
private final AliPayAllocReceiverService receiverService;
private final AlipayAllocReceiverService receiverService;
private final AlipayConfigService aliPayConfigService;

View File

@@ -1,7 +1,7 @@
package org.dromara.daxpay.channel.alipay.strategy.merchant;
import org.dromara.daxpay.channel.alipay.entity.AliPayConfig;
import org.dromara.daxpay.channel.alipay.service.allocation.AliPayAllocationService;
import org.dromara.daxpay.channel.alipay.service.allocation.AlipayAllocationService;
import org.dromara.daxpay.channel.alipay.service.config.AlipayConfigService;
import org.dromara.daxpay.core.enums.ChannelEnum;
import org.dromara.daxpay.service.bo.allocation.AllocStartResultBo;
@@ -21,7 +21,7 @@ import org.springframework.stereotype.Component;
@RequiredArgsConstructor
public class AlipayAllocationStrategy extends AbsAllocationStrategy {
private final AliPayAllocationService aliPayAllocationService;
private final AlipayAllocationService aliPayAllocationService;
private final AlipayConfigService aliPayConfigService;