mirror of
https://gitee.com/dromara/dax-pay.git
synced 2025-10-13 21:30:25 +00:00
feat 商户应用增加停用功能
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
- [ ] 支持配置背景色和图标
|
||||
- [x] 对各种交易增加新的同步失败异常处理, 防止同步失败后无限进行同步
|
||||
- [ ] 增加首页驾驶舱功能
|
||||
- [ ] 商户应用要有类似删除的功能, 实现停用冻结, 但不影响数据的关联
|
||||
- [x] 商户应用增加停用功能, 实现停用冻结, 但不影响数据的关联
|
||||
- [ ] 同步接口优化, 返回同步完的数据
|
||||
- [x] 服务商支付支持
|
||||
- [x] 支付宝
|
||||
|
@@ -6,6 +6,7 @@ import org.dromara.daxpay.core.enums.SignTypeEnum;
|
||||
import org.dromara.daxpay.core.enums.MerchantNotifyTypeEnum;
|
||||
import org.dromara.daxpay.service.convert.merchant.MchAppConvert;
|
||||
import org.dromara.daxpay.service.enums.MchAppStatusEnum;
|
||||
import org.dromara.daxpay.service.param.merchant.MchAppParam;
|
||||
import org.dromara.daxpay.service.result.merchant.MchAppResult;
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
@@ -72,6 +73,13 @@ public class MchApp extends MpBaseEntity implements ToResult<MchAppResult> {
|
||||
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||
private String notifyUrl;
|
||||
|
||||
/**
|
||||
* 初始化
|
||||
*/
|
||||
public static MchApp init(MchAppParam param){
|
||||
return MchAppConvert.CONVERT.toEntity(param);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MchAppResult toResult() {
|
||||
return MchAppConvert.CONVERT.toResult(this);
|
||||
|
@@ -8,6 +8,7 @@ import jakarta.validation.constraints.Min;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.service.enums.MchAppStatusEnum;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
@@ -28,7 +29,7 @@ public class MchAppParam {
|
||||
|
||||
/** 应用名称 */
|
||||
@Schema(description = "应用名称")
|
||||
@NotNull(message = "应用名称不可为空", groups = ValidationGroup.add.class)
|
||||
@NotNull(message = "应用名称不可为空")
|
||||
private String appName;
|
||||
|
||||
/**
|
||||
@@ -36,13 +37,21 @@ public class MchAppParam {
|
||||
* @see SignTypeEnum
|
||||
*/
|
||||
@Schema(description = "签名方式")
|
||||
@NotNull(message = "签名方式不可为空", groups = ValidationGroup.add.class)
|
||||
@NotNull(message = "签名方式不可为空")
|
||||
private String signType;
|
||||
|
||||
/**
|
||||
* 应用状态
|
||||
* @see MchAppStatusEnum
|
||||
*/
|
||||
@Schema(description = "应用状态")
|
||||
@NotNull(message = "应用状态不可为空")
|
||||
private String status;
|
||||
|
||||
|
||||
/** 签名秘钥 */
|
||||
@Schema(description = "签名秘钥")
|
||||
@NotNull(message = "签名秘钥不可为空", groups = ValidationGroup.add.class)
|
||||
@NotNull(message = "签名秘钥不可为空")
|
||||
private String signSecret;
|
||||
|
||||
/** 是否对请求进行验签 */
|
||||
@@ -51,12 +60,12 @@ public class MchAppParam {
|
||||
|
||||
/** 支付限额 */
|
||||
@Schema(description = "支付限额")
|
||||
@NotNull(message = "支付限额不可为空", groups = ValidationGroup.add.class)
|
||||
@NotNull(message = "支付限额不可为空")
|
||||
private BigDecimal limitAmount;
|
||||
|
||||
/** 订单默认超时时间(分钟) */
|
||||
@Schema(description = "订单默认超时时间(分钟)")
|
||||
@NotNull(message = "订单默认超时时间(分钟)不可为空", groups = ValidationGroup.add.class)
|
||||
@NotNull(message = "订单默认超时时间(分钟)不可为空")
|
||||
@Min(value = 5, message = "订单默认超时时间(分钟)不可小于5分钟")
|
||||
private Integer orderTimeout;
|
||||
|
||||
|
@@ -7,6 +7,7 @@ import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.daxpay.core.enums.SignTypeEnum;
|
||||
import org.dromara.daxpay.core.exception.ConfigNotEnableException;
|
||||
import org.dromara.daxpay.core.exception.VerifySignFailedException;
|
||||
import org.dromara.daxpay.core.param.PaymentCommonParam;
|
||||
import org.dromara.daxpay.core.result.DaxResult;
|
||||
@@ -16,6 +17,7 @@ import org.dromara.daxpay.service.common.context.ClientLocal;
|
||||
import org.dromara.daxpay.service.common.context.MchAppLocal;
|
||||
import org.dromara.daxpay.service.common.local.PaymentContextLocal;
|
||||
import org.dromara.daxpay.service.entity.merchant.MchApp;
|
||||
import org.dromara.daxpay.service.enums.MchAppStatusEnum;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -131,6 +133,9 @@ public class PaymentAssistService {
|
||||
public void initMchApp(String appId) {
|
||||
// 获取应用信息
|
||||
MchApp mchApp = mchAppCacheService.get(appId);
|
||||
if (!Objects.equals(mchApp.getStatus(), MchAppStatusEnum.ENABLE.getCode())){
|
||||
throw new ConfigNotEnableException("商户应用未启用");
|
||||
}
|
||||
// 初始化支付上下文信息
|
||||
MchAppLocal mchAppInfo = PaymentContextLocal.get().getMchAppInfo();
|
||||
BeanUtil.copyProperties(mchApp, mchAppInfo);
|
||||
|
@@ -12,7 +12,6 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.daxpay.core.exception.ConfigNotExistException;
|
||||
import org.dromara.daxpay.core.exception.OperationFailException;
|
||||
import org.dromara.daxpay.service.convert.merchant.MchAppConvert;
|
||||
import org.dromara.daxpay.service.dao.config.ChannelConfigManager;
|
||||
import org.dromara.daxpay.service.dao.merchant.MchAppManager;
|
||||
import org.dromara.daxpay.service.entity.config.ChannelConfig;
|
||||
@@ -44,7 +43,7 @@ public class MchAppService {
|
||||
* 添加应用
|
||||
*/
|
||||
public void add(MchAppParam param) {
|
||||
MchApp entity = MchAppConvert.CONVERT.toEntity(param);
|
||||
MchApp entity = MchApp.init(param);
|
||||
// 生成应用号
|
||||
entity.setAppId(this.generateAppId())
|
||||
.setStatus(MchAppStatusEnum.ENABLE.getCode());
|
||||
@@ -92,7 +91,6 @@ public class MchAppService {
|
||||
if (channelConfigManager.existedByField(ChannelConfig::getAppId, mchApp.getAppId())){
|
||||
throw new OperationFailException("该商户应用已绑定支付配置,请先删除支付配置");
|
||||
}
|
||||
|
||||
mchAppManager.deleteById(id);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user