mirror of
https://gitee.com/dromara/dax-pay
synced 2026-08-10 06:46:04 +08:00
refactor: 直连表名统一 alipay_mch_* → alipay_direct_*, ISV 密钥表补 _key
This commit is contained in:
@@ -30,8 +30,8 @@ ALTER TABLE alipay_isv_app ADD CONSTRAINT pk_alipay_isv_app PRIMARY KEY (id);
|
||||
-- ----------------------------
|
||||
-- 支付宝服务商应用密钥配置表
|
||||
-- ----------------------------
|
||||
DROP TABLE IF EXISTS alipay_isv_app_config;
|
||||
CREATE TABLE alipay_isv_app_config (
|
||||
DROP TABLE IF EXISTS alipay_isv_app_key_config;
|
||||
CREATE TABLE alipay_isv_app_key_config (
|
||||
id int8 NOT NULL,
|
||||
app_id int8,
|
||||
auth_type varchar(32) COLLATE pg_catalog.default,
|
||||
@@ -49,24 +49,24 @@ CREATE TABLE alipay_isv_app_config (
|
||||
deleted bool NOT NULL DEFAULT false
|
||||
);
|
||||
|
||||
COMMENT ON TABLE alipay_isv_app_config IS '支付宝服务商应用密钥配置表';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.id IS '主键';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.app_id IS '关联应用ID';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.auth_type IS '认证类型';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.alipay_public_key IS '支付宝公钥';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.private_key IS '商户私钥';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.app_cert IS '应用公钥证书';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.alipay_cert IS '支付宝公钥证书';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.alipay_root_cert IS '支付宝根证书';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.secret_key IS '密钥';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.creator IS '创建者ID';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.create_time IS '创建时间';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.last_modifier IS '最后修改ID';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.last_modified_time IS '最后修改时间';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.version IS '版本号';
|
||||
COMMENT ON COLUMN alipay_isv_app_config.deleted IS '删除标志';
|
||||
COMMENT ON TABLE alipay_isv_app_key_config IS '支付宝服务商应用密钥配置表';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.id IS '主键';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.app_id IS '关联应用ID';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.auth_type IS '认证类型';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.alipay_public_key IS '支付宝公钥';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.private_key IS '商户私钥';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.app_cert IS '应用公钥证书';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.alipay_cert IS '支付宝公钥证书';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.alipay_root_cert IS '支付宝根证书';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.secret_key IS '密钥';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.creator IS '创建者ID';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.create_time IS '创建时间';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.last_modifier IS '最后修改ID';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.last_modified_time IS '最后修改时间';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.version IS '版本号';
|
||||
COMMENT ON COLUMN alipay_isv_app_key_config.deleted IS '删除标志';
|
||||
|
||||
ALTER TABLE alipay_isv_app_config ADD CONSTRAINT pk_alipay_isv_app_config PRIMARY KEY (id);
|
||||
ALTER TABLE alipay_isv_app_key_config ADD CONSTRAINT pk_alipay_isv_app_key_config PRIMARY KEY (id);
|
||||
|
||||
-- ----------------------------
|
||||
-- 支付宝服务商应用授权认证配置表
|
||||
|
||||
@@ -8,6 +8,8 @@ import org.springframework.context.annotation.ComponentScan;
|
||||
|
||||
/// # 支付宝支付实现
|
||||
///
|
||||
/// 支付宝通道的自动配置入口,扫描当前模块下的所有组件(Controller/Service/Manager/Mapper等),自动注册到Spring容器。
|
||||
///
|
||||
@AutoConfiguration
|
||||
@ConfigurationPropertiesScan
|
||||
@MapperScan(annotationClass = Mapper.class)
|
||||
|
||||
@@ -2,6 +2,8 @@ package org.dromara.daxpay.channel.alipay.code;
|
||||
|
||||
/// # 支付宝支付参数常量
|
||||
///
|
||||
/// 定义支付宝支付相关的常量,包括认证类型(公钥/证书)和用户标识类型(openid/userid)等枚举值。
|
||||
///
|
||||
public interface AlipayCode {
|
||||
|
||||
/// # 认证类型
|
||||
@@ -11,7 +13,7 @@ public interface AlipayCode {
|
||||
String AUTH_TYPE_KEY = "public_key";
|
||||
|
||||
/// 证书模式
|
||||
String AUTH_TYPE_CART = "cert";
|
||||
String AUTH_TYPE_CERT = "cert";
|
||||
}
|
||||
|
||||
/// # 用户标识类型
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
package org.dromara.daxpay.channel.alipay.controller.app;
|
||||
package org.dromara.daxpay.channel.alipay.controller.direct;
|
||||
|
||||
import org.dromara.daxpay.platform.core.annotation.PermCode;
|
||||
import org.dromara.daxpay.platform.core.rest.Res;
|
||||
import org.dromara.daxpay.platform.core.rest.result.Result;
|
||||
import org.dromara.daxpay.platform.core.util.ValidationUtil;
|
||||
import org.dromara.daxpay.platform.core.validation.ValidationGroup;
|
||||
import org.dromara.daxpay.channel.alipay.param.app.AlipayMchAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayMchAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayMchAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.app.AlipayMchAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayMchAppAuthConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayMchAppKeyConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.app.AlipayMchAppService;
|
||||
import org.dromara.daxpay.channel.alipay.service.config.AlipayMchAppAuthConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.service.config.AlipayMchAppKeyConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppAuthConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppKeyConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.direct.AlipayDirectAppService;
|
||||
import org.dromara.daxpay.channel.alipay.service.direct.AlipayDirectAppAuthConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.service.direct.AlipayDirectAppKeyConfigService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
@@ -26,33 +26,35 @@ import java.util.List;
|
||||
|
||||
/// # 支付宝直连商户应用管理
|
||||
///
|
||||
/// 提供直连商户应用及其密钥配置、授权认证配置的 REST API,支持按商户号和通道商户号查询列表。
|
||||
///
|
||||
@PermCode(menuCode = "payment:alipay:mch-app")
|
||||
@Validated
|
||||
@Tag(name = "支付宝直连商户应用管理")
|
||||
@RestController
|
||||
@RequestMapping("/admin/alipay/mch-app")
|
||||
@RequiredArgsConstructor
|
||||
public class AlipayMchAppController {
|
||||
public class AlipayDirectAppController {
|
||||
|
||||
private final AlipayMchAppService alipayMchAppService;
|
||||
private final AlipayMchAppKeyConfigService alipayMchAppKeyConfigService;
|
||||
private final AlipayMchAppAuthConfigService alipayMchAppAuthConfigService;
|
||||
private final AlipayDirectAppService alipayDirectAppService;
|
||||
private final AlipayDirectAppKeyConfigService alipayDirectAppKeyConfigService;
|
||||
private final AlipayDirectAppAuthConfigService alipayDirectAppAuthConfigService;
|
||||
|
||||
@PermCode(code = "view", nameCn = "通道商户查看", nameEn = "Channel Merchant View")
|
||||
@Operation(summary = "根据商户号和通道商户号查询应用列表")
|
||||
@GetMapping("/list-by-channel-mch-no")
|
||||
public Result<List<AlipayMchAppResult>> listByChannelMchNo(
|
||||
public Result<List<AlipayDirectAppResult>> listByChannelMchNo(
|
||||
@NotBlank(message = "{validation.field.mchNo.notBlank}") String mchNo,
|
||||
@NotBlank(message = "{validation.field.channelMerchantNo.notBlank}") String channelMchNo) {
|
||||
return Res.ok(alipayMchAppService.listByMchNoAndChannelMchNo(mchNo, channelMchNo));
|
||||
return Res.ok(alipayDirectAppService.listByMchNoAndChannelMchNo(mchNo, channelMchNo));
|
||||
}
|
||||
|
||||
@PermCode(code = "view", nameCn = "通道商户查看", nameEn = "Channel Merchant View")
|
||||
@Operation(summary = "查询应用详情")
|
||||
@GetMapping("/find-by-id")
|
||||
public Result<AlipayMchAppResult> findById(
|
||||
public Result<AlipayDirectAppResult> findById(
|
||||
@NotNull(message = "{validation.field.id.notNull}") Long id) {
|
||||
return Res.ok(alipayMchAppService.findById(id));
|
||||
return Res.ok(alipayDirectAppService.findById(id));
|
||||
}
|
||||
|
||||
@PermCode(code = "view", nameCn = "通道商户查看", nameEn = "Channel Merchant View")
|
||||
@@ -62,7 +64,7 @@ public class AlipayMchAppController {
|
||||
@NotBlank(message = "{validation.field.mchNo.notBlank}") String mchNo,
|
||||
@NotBlank(message = "{validation.field.channelMerchantNo.notBlank}") String channelMchNo,
|
||||
@NotBlank(message = "{validation.field.aliAppId.notBlank}") String aliAppId) {
|
||||
return Res.ok(alipayMchAppService.existsAliAppIdByChannel(mchNo, channelMchNo, aliAppId, null));
|
||||
return Res.ok(alipayDirectAppService.existsAliAppIdByChannel(mchNo, channelMchNo, aliAppId, null));
|
||||
}
|
||||
|
||||
@PermCode(code = "view", nameCn = "通道商户查看", nameEn = "Channel Merchant View")
|
||||
@@ -73,24 +75,24 @@ public class AlipayMchAppController {
|
||||
@NotBlank(message = "{validation.field.channelMerchantNo.notBlank}") String channelMchNo,
|
||||
@NotBlank(message = "{validation.field.aliAppId.notBlank}") String aliAppId,
|
||||
@NotNull(message = "{validation.field.id.notNull}") Long id) {
|
||||
return Res.ok(alipayMchAppService.existsAliAppIdByChannel(mchNo, channelMchNo, aliAppId, id));
|
||||
return Res.ok(alipayDirectAppService.existsAliAppIdByChannel(mchNo, channelMchNo, aliAppId, id));
|
||||
}
|
||||
|
||||
@PermCode(code = "add", nameCn = "通道商户新增", nameEn = "Channel Merchant Add")
|
||||
@Operation(summary = "新增直连商户应用")
|
||||
@PostMapping("/add")
|
||||
public Result<Void> add(@RequestBody @Validated(ValidationGroup.add.class) AlipayMchAppParam param) {
|
||||
public Result<Void> add(@RequestBody @Validated(ValidationGroup.add.class) AlipayDirectAppParam param) {
|
||||
ValidationUtil.validateParam(param, ValidationGroup.add.class);
|
||||
alipayMchAppService.add(param);
|
||||
alipayDirectAppService.add(param);
|
||||
return Res.ok();
|
||||
}
|
||||
|
||||
@PermCode(code = "edit", nameCn = "通道商户编辑", nameEn = "Channel Merchant Edit")
|
||||
@Operation(summary = "修改直连商户应用")
|
||||
@PostMapping("/update")
|
||||
public Result<Void> update(@RequestBody @Validated(ValidationGroup.edit.class) AlipayMchAppParam param) {
|
||||
public Result<Void> update(@RequestBody @Validated(ValidationGroup.edit.class) AlipayDirectAppParam param) {
|
||||
ValidationUtil.validateParam(param, ValidationGroup.edit.class);
|
||||
alipayMchAppService.update(param);
|
||||
alipayDirectAppService.update(param);
|
||||
return Res.ok();
|
||||
}
|
||||
|
||||
@@ -98,39 +100,39 @@ public class AlipayMchAppController {
|
||||
@Operation(summary = "删除直连商户应用")
|
||||
@PostMapping("/delete")
|
||||
public Result<Void> delete(@NotNull(message = "{validation.field.id.notNull}") Long id) {
|
||||
alipayMchAppService.delete(id);
|
||||
alipayDirectAppService.delete(id);
|
||||
return Res.ok();
|
||||
}
|
||||
|
||||
@PermCode(code = "view", nameCn = "通道商户查看", nameEn = "Channel Merchant View")
|
||||
@Operation(summary = "查询应用密钥配置")
|
||||
@GetMapping("/find-key-config-by-app-id")
|
||||
public Result<AlipayMchAppKeyConfigResult> findKeyConfigByAppId(
|
||||
public Result<AlipayDirectAppKeyConfigResult> findKeyConfigByAppId(
|
||||
@NotNull(message = "{validation.field.id.notNull}") Long appId) {
|
||||
return Res.ok(alipayMchAppKeyConfigService.findByAppId(appId));
|
||||
return Res.ok(alipayDirectAppKeyConfigService.findByAppId(appId));
|
||||
}
|
||||
|
||||
@PermCode(code = "edit", nameCn = "通道商户编辑", nameEn = "Channel Merchant Edit")
|
||||
@Operation(summary = "保存应用密钥配置")
|
||||
@PostMapping("/save-key-config")
|
||||
public Result<Void> saveKeyConfig(@RequestBody @Validated AlipayMchAppKeyConfigParam param) {
|
||||
alipayMchAppKeyConfigService.save(param);
|
||||
public Result<Void> saveKeyConfig(@RequestBody @Validated AlipayDirectAppKeyConfigParam param) {
|
||||
alipayDirectAppKeyConfigService.save(param);
|
||||
return Res.ok();
|
||||
}
|
||||
|
||||
@PermCode(code = "view", nameCn = "通道商户查看", nameEn = "Channel Merchant View")
|
||||
@Operation(summary = "查询应用授权认证配置")
|
||||
@GetMapping("/find-auth-config-by-app-id")
|
||||
public Result<AlipayMchAppAuthConfigResult> findAuthConfigByAppId(
|
||||
public Result<AlipayDirectAppAuthConfigResult> findAuthConfigByAppId(
|
||||
@NotNull(message = "{validation.field.id.notNull}") Long appId) {
|
||||
return Res.ok(alipayMchAppAuthConfigService.findByAppId(appId));
|
||||
return Res.ok(alipayDirectAppAuthConfigService.findByAppId(appId));
|
||||
}
|
||||
|
||||
@PermCode(code = "edit", nameCn = "通道商户编辑", nameEn = "Channel Merchant Edit")
|
||||
@Operation(summary = "保存应用授权认证配置")
|
||||
@PostMapping("/save-auth-config")
|
||||
public Result<Void> saveAuthConfig(@RequestBody @Validated AlipayMchAppAuthConfigParam param) {
|
||||
alipayMchAppAuthConfigService.save(param);
|
||||
public Result<Void> saveAuthConfig(@RequestBody @Validated AlipayDirectAppAuthConfigParam param) {
|
||||
alipayDirectAppAuthConfigService.save(param);
|
||||
return Res.ok();
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
package org.dromara.daxpay.channel.alipay.controller.mch;
|
||||
package org.dromara.daxpay.channel.alipay.controller.direct;
|
||||
|
||||
import org.dromara.daxpay.platform.core.annotation.PermCode;
|
||||
import org.dromara.daxpay.platform.core.rest.Res;
|
||||
import org.dromara.daxpay.platform.core.rest.result.Result;
|
||||
import org.dromara.daxpay.channel.alipay.param.mch.AlipayDirectChannelMerchantCreateParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayDirectChannelMerchantResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.mch.AlipayDirectChannelMerchantService;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectChannelMerchantCreateParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectChannelMerchantResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.direct.AlipayDirectChannelMerchantService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
@@ -17,6 +17,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/// # 支付宝直连通道商户管理
|
||||
///
|
||||
@PermCode(menuCode = "payment:merchant:channelMerchant")
|
||||
@Validated
|
||||
@Tag(name = "支付宝直连通道商户管理")
|
||||
@@ -1,19 +1,19 @@
|
||||
package org.dromara.daxpay.channel.alipay.controller.app;
|
||||
package org.dromara.daxpay.channel.alipay.controller.isv;
|
||||
|
||||
import org.dromara.daxpay.platform.core.annotation.PermCode;
|
||||
import org.dromara.daxpay.platform.core.rest.Res;
|
||||
import org.dromara.daxpay.platform.core.rest.result.Result;
|
||||
import org.dromara.daxpay.platform.core.util.ValidationUtil;
|
||||
import org.dromara.daxpay.platform.core.validation.ValidationGroup;
|
||||
import org.dromara.daxpay.channel.alipay.param.app.AlipayIsvAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayIsvAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayIsvAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.app.AlipayIsvAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvAppAuthConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvAppKeyConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.app.AlipayIsvAppService;
|
||||
import org.dromara.daxpay.channel.alipay.service.config.AlipayIsvAppAuthConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.service.config.AlipayIsvAppKeyConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppAuthConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppKeyConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.isv.AlipayIsvAppService;
|
||||
import org.dromara.daxpay.channel.alipay.service.isv.AlipayIsvAppAuthConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.service.isv.AlipayIsvAppKeyConfigService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
@@ -26,6 +26,8 @@ import java.util.List;
|
||||
|
||||
/// # 支付宝服务商应用管理
|
||||
///
|
||||
/// 提供服务商应用及其密钥配置、授权认证配置的 REST API,包含查询列表、详情、唯一性校验和增删改操作。
|
||||
///
|
||||
@PermCode(menuCode = "payment:alipay:isv")
|
||||
@Validated
|
||||
@Tag(name = "支付宝服务商应用管理")
|
||||
@@ -1,11 +1,11 @@
|
||||
package org.dromara.daxpay.channel.alipay.controller.mch;
|
||||
package org.dromara.daxpay.channel.alipay.controller.isv;
|
||||
|
||||
import org.dromara.daxpay.platform.core.annotation.PermCode;
|
||||
import org.dromara.daxpay.platform.core.rest.Res;
|
||||
import org.dromara.daxpay.platform.core.rest.result.Result;
|
||||
import org.dromara.daxpay.channel.alipay.param.mch.AlipayIsvChannelMerchantCreateParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvChannelMerchantResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.mch.AlipayIsvChannelMerchantService;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvChannelMerchantCreateParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvChannelMerchantResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.isv.AlipayIsvChannelMerchantService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
@@ -17,6 +17,8 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/// # 支付宝服务商通道商户管理
|
||||
///
|
||||
@PermCode(menuCode = "payment:merchant:channelMerchant")
|
||||
@Validated
|
||||
@Tag(name = "支付宝服务商通道商户管理")
|
||||
@@ -0,0 +1,30 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectAppAuthConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppAuthConfigResult;
|
||||
import org.mapstruct.BeanMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.NullValuePropertyMappingStrategy;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝直连商户应用授权认证配置转换
|
||||
///
|
||||
/// MapStruct转换器,负责支付宝直连商户应用授权认证配置在实体、参数和返回结果之间的转换,更新时空值不覆盖。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayDirectAppAuthConfigConvert {
|
||||
|
||||
AlipayDirectAppAuthConfigConvert CONVERT = Mappers.getMapper(AlipayDirectAppAuthConfigConvert.class);
|
||||
|
||||
/// 转换为返回对象
|
||||
AlipayDirectAppAuthConfigResult toResult(AlipayDirectAppAuthConfig entity);
|
||||
|
||||
/// 转换为实体
|
||||
AlipayDirectAppAuthConfig toEntity(AlipayDirectAppAuthConfigParam param);
|
||||
|
||||
/// 更新源数据到实体(空值不覆盖)
|
||||
@BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
|
||||
void copy(AlipayDirectAppAuthConfigParam param, @MappingTarget AlipayDirectAppAuthConfig entity);
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectApp;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppResult;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝直连商户应用转换
|
||||
///
|
||||
/// MapStruct转换器,负责支付宝直连商户应用在实体、参数和返回结果之间的相互转换。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayDirectAppConvert {
|
||||
|
||||
AlipayDirectAppConvert CONVERT = Mappers.getMapper(AlipayDirectAppConvert.class);
|
||||
|
||||
/// 转换为返回对象
|
||||
AlipayDirectAppResult toResult(AlipayDirectApp entity);
|
||||
|
||||
/// 转换为实体
|
||||
AlipayDirectApp toEntity(AlipayDirectAppParam param);
|
||||
|
||||
/// 更新源数据到实体(忽略空值)
|
||||
void copy(AlipayDirectAppParam param, @MappingTarget AlipayDirectApp entity);
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectAppKeyConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppKeyConfigResult;
|
||||
import org.mapstruct.BeanMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.NullValuePropertyMappingStrategy;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝直连商户应用密钥配置转换
|
||||
///
|
||||
/// MapStruct转换器,负责支付宝直连商户应用密钥配置在实体、参数和返回结果之间的转换,更新时空值不覆盖。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayDirectAppKeyConfigConvert {
|
||||
|
||||
AlipayDirectAppKeyConfigConvert CONVERT = Mappers.getMapper(AlipayDirectAppKeyConfigConvert.class);
|
||||
|
||||
/// 转换为返回对象
|
||||
AlipayDirectAppKeyConfigResult toResult(AlipayDirectAppKeyConfig entity);
|
||||
|
||||
/// 转换为实体
|
||||
AlipayDirectAppKeyConfig toEntity(AlipayDirectAppKeyConfigParam param);
|
||||
|
||||
/// 更新源数据到实体(空值不覆盖,密钥/证书为空时保留原值)
|
||||
@BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
|
||||
void copy(AlipayDirectAppKeyConfigParam param, @MappingTarget AlipayDirectAppKeyConfig entity);
|
||||
}
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayDirectChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayDirectChannelMerchantResult;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectChannelMerchantResult;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝直连通道商户绑定转换
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayDirectChannelMerchantConvert {
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvAppAuthConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayIsvAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvAppAuthConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvAppAuthConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppAuthConfigResult;
|
||||
import org.mapstruct.BeanMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
@@ -11,6 +11,8 @@ import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝服务商应用授权认证配置转换
|
||||
///
|
||||
/// MapStruct转换器,负责支付宝服务商应用授权认证配置在实体、参数和返回结果之间的转换,更新时空值不覆盖。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayIsvAppAuthConfigConvert {
|
||||
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayIsvApp;
|
||||
import org.dromara.daxpay.channel.alipay.param.app.AlipayIsvAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.app.AlipayIsvAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvApp;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppResult;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝服务商应用转换
|
||||
///
|
||||
/// MapStruct转换器,负责支付宝服务商应用在实体、参数和返回结果之间的相互转换。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayIsvAppConvert {
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvAppKeyConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayIsvAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvAppKeyConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvAppKeyConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppKeyConfigResult;
|
||||
import org.mapstruct.BeanMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
@@ -11,6 +11,8 @@ import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝服务商应用密钥配置转换
|
||||
///
|
||||
/// MapStruct转换器,负责支付宝服务商应用密钥配置在实体、参数和返回结果之间的转换,更新时空值不覆盖。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayIsvAppKeyConfigConvert {
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvChannelMerchantResult;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvChannelMerchantResult;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝服务商通道商户绑定转换
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayIsvChannelMerchantConvert {
|
||||
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayMchAppAuthConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayMchAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayMchAppAuthConfigResult;
|
||||
import org.mapstruct.BeanMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.NullValuePropertyMappingStrategy;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝直连商户应用授权认证配置转换
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayMchAppAuthConfigConvert {
|
||||
|
||||
AlipayMchAppAuthConfigConvert CONVERT = Mappers.getMapper(AlipayMchAppAuthConfigConvert.class);
|
||||
|
||||
/// 转换为返回对象
|
||||
AlipayMchAppAuthConfigResult toResult(AlipayMchAppAuthConfig entity);
|
||||
|
||||
/// 转换为实体
|
||||
AlipayMchAppAuthConfig toEntity(AlipayMchAppAuthConfigParam param);
|
||||
|
||||
/// 更新源数据到实体(空值不覆盖)
|
||||
@BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
|
||||
void copy(AlipayMchAppAuthConfigParam param, @MappingTarget AlipayMchAppAuthConfig entity);
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayMchApp;
|
||||
import org.dromara.daxpay.channel.alipay.param.app.AlipayMchAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.app.AlipayMchAppResult;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝直连商户应用转换
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayMchAppConvert {
|
||||
|
||||
AlipayMchAppConvert CONVERT = Mappers.getMapper(AlipayMchAppConvert.class);
|
||||
|
||||
/// 转换为返回对象
|
||||
AlipayMchAppResult toResult(AlipayMchApp entity);
|
||||
|
||||
/// 转换为实体
|
||||
AlipayMchApp toEntity(AlipayMchAppParam param);
|
||||
|
||||
/// 更新源数据到实体(忽略空值)
|
||||
void copy(AlipayMchAppParam param, @MappingTarget AlipayMchApp entity);
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package org.dromara.daxpay.channel.alipay.convert;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayMchAppKeyConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayMchAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayMchAppKeyConfigResult;
|
||||
import org.mapstruct.BeanMapping;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
import org.mapstruct.NullValuePropertyMappingStrategy;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
/// # 支付宝直连商户应用密钥配置转换
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayMchAppKeyConfigConvert {
|
||||
|
||||
AlipayMchAppKeyConfigConvert CONVERT = Mappers.getMapper(AlipayMchAppKeyConfigConvert.class);
|
||||
|
||||
/// 转换为返回对象
|
||||
AlipayMchAppKeyConfigResult toResult(AlipayMchAppKeyConfig entity);
|
||||
|
||||
/// 转换为实体
|
||||
AlipayMchAppKeyConfig toEntity(AlipayMchAppKeyConfigParam param);
|
||||
|
||||
/// 更新源数据到实体(空值不覆盖,密钥/证书为空时保留原值)
|
||||
@BeanMapping(nullValuePropertyMappingStrategy = NullValuePropertyMappingStrategy.IGNORE)
|
||||
void copy(AlipayMchAppKeyConfigParam param, @MappingTarget AlipayMchAppKeyConfig entity);
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.app;
|
||||
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayMchApp;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/// # 支付宝直连商户应用
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AlipayMchAppManager extends BaseManager<AlipayMchAppMapper, AlipayMchApp> {
|
||||
|
||||
/// 根据商户号和通道商户号查询应用列表(按创建时间升序)
|
||||
public List<AlipayMchApp> listByMchNoAndChannelMchNo(String mchNo, String channelMchNo) {
|
||||
return lambdaQuery()
|
||||
.eq(AlipayMchApp::getMchNo, mchNo)
|
||||
.eq(AlipayMchApp::getChannelMchNo, channelMchNo)
|
||||
.orderByAsc(AlipayMchApp::getCreateTime)
|
||||
.orderByAsc(AlipayMchApp::getId)
|
||||
.list();
|
||||
}
|
||||
|
||||
/// 校验同一通道商户下aliAppId是否已存在(排除自身)
|
||||
public boolean existsByChannelMchNoAndAliAppId(String mchNo, String channelMchNo, String aliAppId, Long excludeId) {
|
||||
return lambdaQuery()
|
||||
.eq(AlipayMchApp::getMchNo, mchNo)
|
||||
.eq(AlipayMchApp::getChannelMchNo, channelMchNo)
|
||||
.eq(AlipayMchApp::getAliAppId, aliAppId)
|
||||
.ne(excludeId != null, AlipayMchApp::getId, excludeId)
|
||||
.exists();
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.app;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayMchApp;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝直连商户应用
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayMchAppMapper extends MPJBaseMapper<AlipayMchApp> {
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayMchAppAuthConfig;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/// # 支付宝直连商户应用授权认证配置
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AlipayMchAppAuthConfigManager extends BaseManager<AlipayMchAppAuthConfigMapper, AlipayMchAppAuthConfig> {
|
||||
|
||||
/// 根据应用ID查询授权认证配置
|
||||
public Optional<AlipayMchAppAuthConfig> findByAppId(Long appId) {
|
||||
return lambdaQuery()
|
||||
.eq(AlipayMchAppAuthConfig::getAppId, appId)
|
||||
.oneOpt();
|
||||
}
|
||||
|
||||
/// 根据应用ID删除授权认证配置
|
||||
public void deleteByAppId(Long appId) {
|
||||
lambdaUpdate()
|
||||
.eq(AlipayMchAppAuthConfig::getAppId, appId)
|
||||
.remove();
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayMchAppAuthConfig;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝直连商户应用授权认证配置
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayMchAppAuthConfigMapper extends MPJBaseMapper<AlipayMchAppAuthConfig> {
|
||||
}
|
||||
@@ -1,31 +0,0 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayMchAppKeyConfig;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/// # 支付宝直连商户应用密钥配置
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AlipayMchAppKeyConfigManager extends BaseManager<AlipayMchAppKeyConfigMapper, AlipayMchAppKeyConfig> {
|
||||
|
||||
/// 根据应用ID查询密钥配置
|
||||
public Optional<AlipayMchAppKeyConfig> findByAppId(Long appId) {
|
||||
return lambdaQuery()
|
||||
.eq(AlipayMchAppKeyConfig::getAppId, appId)
|
||||
.oneOpt();
|
||||
}
|
||||
|
||||
/// 根据应用ID删除密钥配置
|
||||
public void deleteByAppId(Long appId) {
|
||||
lambdaUpdate()
|
||||
.eq(AlipayMchAppKeyConfig::getAppId, appId)
|
||||
.remove();
|
||||
}
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayMchAppKeyConfig;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝直连商户应用密钥配置
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayMchAppKeyConfigMapper extends MPJBaseMapper<AlipayMchAppKeyConfig> {
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.direct;
|
||||
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectAppAuthConfig;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/// # 支付宝直连商户应用授权认证配置
|
||||
///
|
||||
/// 直连商户应用授权认证配置数据访问管理器,提供按应用ID查询和删除授权认证配置的方法。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AlipayDirectAppAuthConfigManager extends BaseManager<AlipayDirectAppAuthConfigMapper, AlipayDirectAppAuthConfig> {
|
||||
|
||||
/// 根据应用ID查询授权认证配置
|
||||
public Optional<AlipayDirectAppAuthConfig> findByAppId(Long appId) {
|
||||
return lambdaQuery()
|
||||
.eq(AlipayDirectAppAuthConfig::getAppId, appId)
|
||||
.oneOpt();
|
||||
}
|
||||
|
||||
/// 根据应用ID删除授权认证配置
|
||||
public void deleteByAppId(Long appId) {
|
||||
lambdaUpdate()
|
||||
.eq(AlipayDirectAppAuthConfig::getAppId, appId)
|
||||
.remove();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectAppAuthConfig;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝直连商户应用授权认证配置
|
||||
///
|
||||
/// 支付宝直连商户应用授权认证配置 MyBatis-Plus Mapper,继承 MPJBaseMapper 支持多表联查。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayDirectAppAuthConfigMapper extends MPJBaseMapper<AlipayDirectAppAuthConfig> {
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.direct;
|
||||
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectAppKeyConfig;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/// # 支付宝直连商户应用密钥配置
|
||||
///
|
||||
/// 直连商户应用密钥配置数据访问管理器,提供按应用ID查询和删除密钥配置的方法。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AlipayDirectAppKeyConfigManager extends BaseManager<AlipayDirectAppKeyConfigMapper, AlipayDirectAppKeyConfig> {
|
||||
|
||||
/// 根据应用ID查询密钥配置
|
||||
public Optional<AlipayDirectAppKeyConfig> findByAppId(Long appId) {
|
||||
return lambdaQuery()
|
||||
.eq(AlipayDirectAppKeyConfig::getAppId, appId)
|
||||
.oneOpt();
|
||||
}
|
||||
|
||||
/// 根据应用ID删除密钥配置
|
||||
public void deleteByAppId(Long appId) {
|
||||
lambdaUpdate()
|
||||
.eq(AlipayDirectAppKeyConfig::getAppId, appId)
|
||||
.remove();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectAppKeyConfig;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝直连商户应用密钥配置
|
||||
///
|
||||
/// 支付宝直连商户应用密钥配置 MyBatis-Plus Mapper,继承 MPJBaseMapper 支持多表联查。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayDirectAppKeyConfigMapper extends MPJBaseMapper<AlipayDirectAppKeyConfig> {
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.direct;
|
||||
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectApp;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/// # 支付宝直连商户应用
|
||||
///
|
||||
/// 直连商户应用数据访问管理器,提供按商户号和通道商户号查询列表、同一通道下应用ID唯一性校验等方法。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AlipayDirectAppManager extends BaseManager<AlipayDirectAppMapper, AlipayDirectApp> {
|
||||
|
||||
/// 根据商户号和通道商户号查询应用列表(按创建时间升序)
|
||||
public List<AlipayDirectApp> listByMchNoAndChannelMchNo(String mchNo, String channelMchNo) {
|
||||
return lambdaQuery()
|
||||
.eq(AlipayDirectApp::getMchNo, mchNo)
|
||||
.eq(AlipayDirectApp::getChannelMchNo, channelMchNo)
|
||||
.orderByAsc(AlipayDirectApp::getCreateTime)
|
||||
.orderByAsc(AlipayDirectApp::getId)
|
||||
.list();
|
||||
}
|
||||
|
||||
/// 校验同一通道商户下aliAppId是否已存在(排除自身)
|
||||
public boolean existsByChannelMchNoAndAliAppId(String mchNo, String channelMchNo, String aliAppId, Long excludeId) {
|
||||
return lambdaQuery()
|
||||
.eq(AlipayDirectApp::getMchNo, mchNo)
|
||||
.eq(AlipayDirectApp::getChannelMchNo, channelMchNo)
|
||||
.eq(AlipayDirectApp::getAliAppId, aliAppId)
|
||||
.ne(excludeId != null, AlipayDirectApp::getId, excludeId)
|
||||
.exists();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectApp;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝直连商户应用
|
||||
///
|
||||
/// 支付宝直连商户应用 MyBatis-Plus Mapper,继承 MPJBaseMapper 支持多表联查。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayDirectAppMapper extends MPJBaseMapper<AlipayDirectApp> {
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
package org.dromara.daxpay.channel.alipay.dao.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayDirectChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectChannelMerchant;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/// # 支付宝直连通道商户绑定
|
||||
///
|
||||
@Repository
|
||||
public class AlipayDirectChannelMerchantManager extends BaseManager<AlipayDirectChannelMerchantMapper, AlipayDirectChannelMerchant> {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
package org.dromara.daxpay.channel.alipay.dao.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayDirectChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectChannelMerchant;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝直连通道商户绑定
|
||||
///
|
||||
/// 支付宝直连通道商户 MyBatis-Plus Mapper,继承 MPJBaseMapper 支持多表联查。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayDirectChannelMerchantMapper extends MPJBaseMapper<AlipayDirectChannelMerchant> {
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
package org.dromara.daxpay.channel.alipay.dao.isv;
|
||||
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvAppAuthConfig;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvAppAuthConfig;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -10,6 +10,8 @@ import java.util.Optional;
|
||||
|
||||
/// # 支付宝服务商应用授权认证配置
|
||||
///
|
||||
/// 服务商应用授权认证配置数据访问管理器,提供按应用ID查询和删除授权认证配置的方法。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
package org.dromara.daxpay.channel.alipay.dao.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvAppAuthConfig;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvAppAuthConfig;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝服务商应用授权认证配置
|
||||
///
|
||||
/// 支付宝服务商应用授权认证配置 MyBatis-Plus Mapper,继承 MPJBaseMapper 支持多表联查。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayIsvAppAuthConfigMapper extends MPJBaseMapper<AlipayIsvAppAuthConfig> {
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
package org.dromara.daxpay.channel.alipay.dao.isv;
|
||||
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvAppKeyConfig;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvAppKeyConfig;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -10,6 +10,8 @@ import java.util.Optional;
|
||||
|
||||
/// # 支付宝服务商应用密钥配置
|
||||
///
|
||||
/// 服务商应用密钥配置数据访问管理器,提供按应用ID查询和删除密钥配置的方法。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
package org.dromara.daxpay.channel.alipay.dao.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvAppKeyConfig;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvAppKeyConfig;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝服务商应用密钥配置
|
||||
///
|
||||
/// 支付宝服务商应用密钥配置 MyBatis-Plus Mapper,继承 MPJBaseMapper 支持多表联查。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayIsvAppKeyConfigMapper extends MPJBaseMapper<AlipayIsvAppKeyConfig> {
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.app;
|
||||
package org.dromara.daxpay.channel.alipay.dao.isv;
|
||||
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayIsvApp;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvApp;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -11,6 +11,8 @@ import java.util.Optional;
|
||||
|
||||
/// # 支付宝服务商应用
|
||||
///
|
||||
/// 服务商应用数据访问管理器,提供列表查询、按支付宝应用ID查找和唯一性校验等方法。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.app;
|
||||
package org.dromara.daxpay.channel.alipay.dao.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayIsvApp;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvApp;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝服务商应用
|
||||
///
|
||||
/// 支付宝服务商应用 MyBatis-Plus Mapper,继承 MPJBaseMapper 支持多表联查。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayIsvAppMapper extends MPJBaseMapper<AlipayIsvApp> {
|
||||
}
|
||||
@@ -1,9 +1,11 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
package org.dromara.daxpay.channel.alipay.dao.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvChannelMerchant;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.impl.BaseManager;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/// # 支付宝服务商通道商户绑定
|
||||
///
|
||||
@Repository
|
||||
public class AlipayIsvChannelMerchantManager extends BaseManager<AlipayIsvChannelMerchantMapper, AlipayIsvChannelMerchant> {
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.dao.config;
|
||||
package org.dromara.daxpay.channel.alipay.dao.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvChannelMerchant;
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/// # 支付宝服务商通道商户绑定
|
||||
///
|
||||
/// 支付宝服务商通道商户 MyBatis-Plus Mapper,继承 MPJBaseMapper 支持多表联查。
|
||||
///
|
||||
@Mapper
|
||||
public interface AlipayIsvChannelMerchantMapper extends MPJBaseMapper<AlipayIsvChannelMerchant> {
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.entity.app;
|
||||
package org.dromara.daxpay.channel.alipay.entity.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayMchAppConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.app.AlipayMchAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayDirectAppConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppResult;
|
||||
import org.dromara.daxpay.payment.common.entity.merchant.MchBaseEntity;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.function.ToResult;
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
@@ -13,11 +13,13 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连商户应用
|
||||
///
|
||||
/// 表示支付宝直连模式下商户注册的应用实体,每个应用关联一个通道商户号,拥有独立的支付宝应用ID。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@TableName(value = "alipay_mch_app", autoResultMap = true)
|
||||
public class AlipayMchApp extends MchBaseEntity implements ToResult<AlipayMchAppResult> {
|
||||
@TableName(value = "alipay_direct_app", autoResultMap = true)
|
||||
public class AlipayDirectApp extends MchBaseEntity implements ToResult<AlipayDirectAppResult> {
|
||||
|
||||
/// 通道商户号
|
||||
@TableField(updateStrategy = FieldStrategy.NEVER)
|
||||
@@ -31,7 +33,7 @@ public class AlipayMchApp extends MchBaseEntity implements ToResult<AlipayMchApp
|
||||
|
||||
/// 转换
|
||||
@Override
|
||||
public AlipayMchAppResult toResult() {
|
||||
return AlipayMchAppConvert.CONVERT.toResult(this);
|
||||
public AlipayDirectAppResult toResult() {
|
||||
return AlipayDirectAppConvert.CONVERT.toResult(this);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.entity.config;
|
||||
package org.dromara.daxpay.channel.alipay.entity.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayMchAppAuthConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayMchAppAuthConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayDirectAppAuthConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppAuthConfigResult;
|
||||
import org.dromara.daxpay.payment.common.entity.merchant.MchBaseEntity;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.function.ToResult;
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
@@ -13,11 +13,13 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连商户应用授权认证配置
|
||||
///
|
||||
/// 配置直连商户应用的用户标识类型和授权回调地址,用于支付宝用户授权流程中的身份识别与回调跳转。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@TableName(value = "alipay_mch_app_auth_config", autoResultMap = true)
|
||||
public class AlipayMchAppAuthConfig extends MchBaseEntity implements ToResult<AlipayMchAppAuthConfigResult> {
|
||||
@TableName(value = "alipay_direct_app_auth_config", autoResultMap = true)
|
||||
public class AlipayDirectAppAuthConfig extends MchBaseEntity implements ToResult<AlipayDirectAppAuthConfigResult> {
|
||||
|
||||
/// 通道商户号
|
||||
@TableField(updateStrategy = FieldStrategy.NEVER)
|
||||
@@ -35,7 +37,7 @@ public class AlipayMchAppAuthConfig extends MchBaseEntity implements ToResult<Al
|
||||
|
||||
/// 转换
|
||||
@Override
|
||||
public AlipayMchAppAuthConfigResult toResult() {
|
||||
return AlipayMchAppAuthConfigConvert.CONVERT.toResult(this);
|
||||
public AlipayDirectAppAuthConfigResult toResult() {
|
||||
return AlipayDirectAppAuthConfigConvert.CONVERT.toResult(this);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.entity.config;
|
||||
package org.dromara.daxpay.channel.alipay.entity.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayMchAppKeyConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayMchAppKeyConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayDirectAppKeyConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppKeyConfigResult;
|
||||
import org.dromara.daxpay.payment.common.entity.merchant.MchBaseEntity;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.function.ToResult;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.handler.encrypt.DataEncryptTypeHandler;
|
||||
@@ -14,11 +14,13 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连商户应用密钥配置
|
||||
///
|
||||
/// 存储直连商户应用的密钥和证书信息,支持公钥模式和证书模式两种认证方式,敏感字段加密存储。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@TableName(value = "alipay_mch_app_config", autoResultMap = true)
|
||||
public class AlipayMchAppKeyConfig extends MchBaseEntity implements ToResult<AlipayMchAppKeyConfigResult> {
|
||||
@TableName(value = "alipay_direct_app_key_config", autoResultMap = true)
|
||||
public class AlipayDirectAppKeyConfig extends MchBaseEntity implements ToResult<AlipayDirectAppKeyConfigResult> {
|
||||
|
||||
/// 通道商户号
|
||||
@TableField(updateStrategy = FieldStrategy.NEVER)
|
||||
@@ -56,7 +58,7 @@ public class AlipayMchAppKeyConfig extends MchBaseEntity implements ToResult<Ali
|
||||
|
||||
/// 转换
|
||||
@Override
|
||||
public AlipayMchAppKeyConfigResult toResult() {
|
||||
return AlipayMchAppKeyConfigConvert.CONVERT.toResult(this);
|
||||
public AlipayDirectAppKeyConfigResult toResult() {
|
||||
return AlipayDirectAppKeyConfigConvert.CONVERT.toResult(this);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.entity.config;
|
||||
package org.dromara.daxpay.channel.alipay.entity.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayDirectChannelMerchantConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayDirectChannelMerchantResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectChannelMerchantResult;
|
||||
import org.dromara.daxpay.payment.common.entity.merchant.MchBaseEntity;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.function.ToResult;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.entity.app;
|
||||
package org.dromara.daxpay.channel.alipay.entity.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayIsvAppConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.app.AlipayIsvAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppResult;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.base.MpBaseEntity;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.function.ToResult;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
@@ -11,6 +11,8 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商应用
|
||||
///
|
||||
/// 表示支付宝开放平台上注册的服务商(ISV)应用实体,服务商通过此应用代为商户发起支付请求。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.entity.config;
|
||||
package org.dromara.daxpay.channel.alipay.entity.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayIsvAppAuthConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvAppAuthConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppAuthConfigResult;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.base.MpBaseEntity;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.function.ToResult;
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
@@ -13,6 +13,8 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商应用授权认证配置
|
||||
///
|
||||
/// 配置服务商应用的用户标识类型和授权回调地址,用于支付宝用户授权流程中的身份识别与回调跳转。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.entity.config;
|
||||
package org.dromara.daxpay.channel.alipay.entity.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayIsvAppKeyConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvAppKeyConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppKeyConfigResult;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.base.MpBaseEntity;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.function.ToResult;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.handler.encrypt.DataEncryptTypeHandler;
|
||||
@@ -14,10 +14,12 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商应用密钥配置
|
||||
///
|
||||
/// 存储服务商应用的密钥和证书信息,支持公钥模式和证书模式两种认证方式,敏感字段加密存储。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@TableName(value = "alipay_isv_app_config", autoResultMap = true)
|
||||
@TableName(value = "alipay_isv_app_key_config", autoResultMap = true)
|
||||
public class AlipayIsvAppKeyConfig extends MpBaseEntity implements ToResult<AlipayIsvAppKeyConfigResult> {
|
||||
|
||||
/// 支付宝服务商应用ID
|
||||
@@ -1,7 +1,7 @@
|
||||
package org.dromara.daxpay.channel.alipay.entity.config;
|
||||
package org.dromara.daxpay.channel.alipay.entity.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayIsvChannelMerchantConvert;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvChannelMerchantResult;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvChannelMerchantResult;
|
||||
import org.dromara.daxpay.payment.common.entity.merchant.MchBaseEntity;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.function.ToResult;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.param.config;
|
||||
package org.dromara.daxpay.channel.alipay.param.direct;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
@@ -9,10 +9,12 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连商户应用授权认证配置保存参数
|
||||
///
|
||||
/// 保存/更新支付宝直连商户应用授权认证配置时接收的请求参数,含商户号、通道商户号、用户标识类型和授权回调地址。
|
||||
///
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝直连商户应用授权认证配置保存参数")
|
||||
public class AlipayMchAppAuthConfigParam {
|
||||
public class AlipayDirectAppAuthConfigParam {
|
||||
|
||||
@NotNull(message = "{validation.field.id.notNull}")
|
||||
@Schema(description = "关联应用ID")
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.param.config;
|
||||
package org.dromara.daxpay.channel.alipay.param.direct;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
@@ -8,10 +8,12 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连商户应用密钥配置保存参数
|
||||
///
|
||||
/// 保存/更新支付宝直连商户应用密钥和证书时接收的请求参数,含商户号、通道商户号和认证类型等信息。
|
||||
///
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝直连商户应用密钥配置保存参数")
|
||||
public class AlipayMchAppKeyConfigParam {
|
||||
public class AlipayDirectAppKeyConfigParam {
|
||||
|
||||
@NotNull(message = "{validation.field.id.notNull}")
|
||||
@Schema(description = "关联应用ID")
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.param.app;
|
||||
package org.dromara.daxpay.channel.alipay.param.direct;
|
||||
|
||||
import org.dromara.daxpay.platform.core.validation.ValidationGroup;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -9,10 +9,12 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连商户应用保存参数
|
||||
///
|
||||
/// 保存/更新支付宝直连商户应用时接收的请求参数,含商户号、通道商户号、应用名称和支付宝应用ID。
|
||||
///
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝直连商户应用保存参数")
|
||||
public class AlipayMchAppParam {
|
||||
public class AlipayDirectAppParam {
|
||||
|
||||
@NotNull(message = "{validation.field.id.notNull}", groups = ValidationGroup.edit.class)
|
||||
@Schema(description = "主键,新增时不传")
|
||||
@@ -1,10 +1,12 @@
|
||||
package org.dromara.daxpay.channel.alipay.param.mch;
|
||||
package org.dromara.daxpay.channel.alipay.param.direct;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连通道商户创建参数
|
||||
///
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝直连通道商户创建参数")
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.param.config;
|
||||
package org.dromara.daxpay.channel.alipay.param.isv;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
@@ -9,6 +9,8 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商应用授权认证配置保存参数
|
||||
///
|
||||
/// 保存/更新支付宝服务商应用授权认证配置时接收的请求参数,含应用ID、用户标识类型和授权回调地址。
|
||||
///
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝服务商应用授权认证配置保存参数")
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.param.config;
|
||||
package org.dromara.daxpay.channel.alipay.param.isv;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
@@ -8,6 +8,8 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商应用密钥配置保存参数
|
||||
///
|
||||
/// 保存/更新支付宝服务商应用密钥和证书时接收的请求参数,认证类型决定必填字段:公钥模式需传支付宝公钥,证书模式需传三个证书。
|
||||
///
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝服务商应用密钥配置保存参数")
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.param.app;
|
||||
package org.dromara.daxpay.channel.alipay.param.isv;
|
||||
|
||||
import org.dromara.daxpay.platform.core.validation.ValidationGroup;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -9,6 +9,8 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商应用保存参数
|
||||
///
|
||||
/// 保存/更新支付宝服务商应用时接收的请求参数,含应用名称和支付宝应用ID,新增时不传主键。
|
||||
///
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝服务商应用保存参数")
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.param.mch;
|
||||
package org.dromara.daxpay.channel.alipay.param.isv;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
@@ -6,6 +6,8 @@ import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商通道商户创建参数
|
||||
///
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝服务商通道商户创建参数")
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.result.config;
|
||||
package org.dromara.daxpay.channel.alipay.result.direct;
|
||||
|
||||
import org.dromara.daxpay.platform.core.result.BaseResult;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -8,11 +8,13 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连商户应用授权认证配置
|
||||
///
|
||||
/// 支付宝直连商户应用授权认证配置的返回结果对象,含商户号、通道商户号,以及用户标识类型和授权回调地址。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝直连商户应用授权认证配置")
|
||||
public class AlipayMchAppAuthConfigResult extends BaseResult {
|
||||
public class AlipayDirectAppAuthConfigResult extends BaseResult {
|
||||
|
||||
@Schema(description = "商户号")
|
||||
private String mchNo;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.result.config;
|
||||
package org.dromara.daxpay.channel.alipay.result.direct;
|
||||
|
||||
import org.dromara.daxpay.platform.common.json.sensitive.SensitiveInfo;
|
||||
import org.dromara.daxpay.platform.core.result.BaseResult;
|
||||
@@ -9,11 +9,13 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连商户应用密钥配置
|
||||
///
|
||||
/// 支付宝直连商户应用密钥和证书的返回结果对象,含商户号、通道商户号信息,敏感字段脱敏展示。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝直连商户应用密钥配置")
|
||||
public class AlipayMchAppKeyConfigResult extends BaseResult {
|
||||
public class AlipayDirectAppKeyConfigResult extends BaseResult {
|
||||
|
||||
@Schema(description = "商户号")
|
||||
private String mchNo;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.result.app;
|
||||
package org.dromara.daxpay.channel.alipay.result.direct;
|
||||
|
||||
import org.dromara.daxpay.payment.common.result.MchBaseResult;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -8,11 +8,13 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连商户应用
|
||||
///
|
||||
/// 支付宝直连商户应用的返回结果对象,包含通道商户号、应用名称和支付宝应用ID等信息。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "支付宝直连商户应用")
|
||||
public class AlipayMchAppResult extends MchBaseResult {
|
||||
public class AlipayDirectAppResult extends MchBaseResult {
|
||||
|
||||
@Schema(description = "通道商户号")
|
||||
private String channelMchNo;
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.result.config;
|
||||
package org.dromara.daxpay.channel.alipay.result.direct;
|
||||
|
||||
import org.dromara.daxpay.payment.common.result.MchTradeBaseResult;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -8,6 +8,8 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝直连通道商户绑定结果
|
||||
///
|
||||
/// 支付宝直连通道商户绑定关系的返回结果对象,包含通道商户号、所属产品和支付宝商家识别码等信息。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.result.config;
|
||||
package org.dromara.daxpay.channel.alipay.result.isv;
|
||||
|
||||
import org.dromara.daxpay.platform.core.result.BaseResult;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -8,6 +8,8 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商应用授权认证配置
|
||||
///
|
||||
/// 支付宝服务商应用授权认证配置的返回结果对象,包含用户标识类型和授权回调地址。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.result.config;
|
||||
package org.dromara.daxpay.channel.alipay.result.isv;
|
||||
|
||||
import org.dromara.daxpay.platform.core.result.BaseResult;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -8,6 +8,8 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商应用密钥配置
|
||||
///
|
||||
/// 支付宝服务商应用密钥和证书的返回结果对象,脱敏展示敏感字段。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.result.app;
|
||||
package org.dromara.daxpay.channel.alipay.result.isv;
|
||||
|
||||
import org.dromara.daxpay.platform.core.result.BaseResult;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -8,6 +8,8 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商应用
|
||||
///
|
||||
/// 支付宝服务商应用的返回结果对象,包含应用名称和支付宝应用ID等信息。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@@ -1,4 +1,4 @@
|
||||
package org.dromara.daxpay.channel.alipay.result.config;
|
||||
package org.dromara.daxpay.channel.alipay.result.isv;
|
||||
|
||||
import org.dromara.daxpay.payment.common.result.MchTradeBaseResult;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
@@ -8,6 +8,8 @@ import lombok.experimental.Accessors;
|
||||
|
||||
/// # 支付宝服务商通道商户绑定结果
|
||||
///
|
||||
/// 支付宝服务商通道商户绑定关系的返回结果对象,包含通道商户号、所属产品、关联服务商应用ID等信息。
|
||||
///
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@@ -1,13 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.service.config;
|
||||
package org.dromara.daxpay.channel.alipay.service.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.code.AlipayCode;
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayMchAppAuthConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.dao.app.AlipayMchAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.dao.config.AlipayMchAppAuthConfigManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayMchApp;
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayMchAppAuthConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayMchAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayMchAppAuthConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayDirectAppAuthConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.dao.direct.AlipayDirectAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.dao.direct.AlipayDirectAppAuthConfigManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectApp;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectAppAuthConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppAuthConfigResult;
|
||||
import org.dromara.daxpay.platform.core.code.CommonErrorCode;
|
||||
import org.dromara.daxpay.platform.core.exception.BizInfoException;
|
||||
import org.dromara.daxpay.platform.core.exception.DataNotExistException;
|
||||
@@ -20,10 +20,12 @@ import java.util.Set;
|
||||
|
||||
/// # 支付宝直连商户应用授权认证配置
|
||||
///
|
||||
/// 管理直连商户应用的用户授权认证配置,校验应用归属关系后执行新增或更新,校验用户标识类型的合法性。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AlipayMchAppAuthConfigService {
|
||||
public class AlipayDirectAppAuthConfigService {
|
||||
|
||||
private static final Set<String> USER_ID_TYPES = Set.of(
|
||||
AlipayCode.UserIdType.OPENID,
|
||||
@@ -31,16 +33,16 @@ public class AlipayMchAppAuthConfigService {
|
||||
AlipayCode.UserIdType.OPENID_USERID
|
||||
);
|
||||
|
||||
private final AlipayMchAppAuthConfigManager alipayMchAppAuthConfigManager;
|
||||
private final AlipayMchAppManager alipayMchAppManager;
|
||||
private final AlipayDirectAppAuthConfigManager alipayDirectAppAuthConfigManager;
|
||||
private final AlipayDirectAppManager alipayDirectAppManager;
|
||||
|
||||
/// 根据应用ID查询授权认证配置
|
||||
public AlipayMchAppAuthConfigResult findByAppId(Long appId) {
|
||||
AlipayMchApp app = alipayMchAppManager.findById(appId)
|
||||
public AlipayDirectAppAuthConfigResult findByAppId(Long appId) {
|
||||
AlipayDirectApp app = alipayDirectAppManager.findById(appId)
|
||||
.orElseThrow(() -> new DataNotExistException("error.channel.alipay.appNotFound"));
|
||||
return alipayMchAppAuthConfigManager.findByAppId(appId)
|
||||
.map(AlipayMchAppAuthConfigConvert.CONVERT::toResult)
|
||||
.orElseGet(() -> new AlipayMchAppAuthConfigResult()
|
||||
return alipayDirectAppAuthConfigManager.findByAppId(appId)
|
||||
.map(AlipayDirectAppAuthConfigConvert.CONVERT::toResult)
|
||||
.orElseGet(() -> new AlipayDirectAppAuthConfigResult()
|
||||
.setAppId(appId)
|
||||
.setMchNo(app.getMchNo())
|
||||
.setChannelMchNo(app.getChannelMchNo())
|
||||
@@ -48,31 +50,31 @@ public class AlipayMchAppAuthConfigService {
|
||||
}
|
||||
|
||||
/// 保存应用授权认证配置
|
||||
public void save(AlipayMchAppAuthConfigParam param) {
|
||||
AlipayMchApp app = alipayMchAppManager.findById(param.getAppId())
|
||||
public void save(AlipayDirectAppAuthConfigParam param) {
|
||||
AlipayDirectApp app = alipayDirectAppManager.findById(param.getAppId())
|
||||
.orElseThrow(() -> new DataNotExistException("error.channel.alipay.appNotFound"));
|
||||
if (!app.getMchNo().equals(param.getMchNo()) || !app.getChannelMchNo().equals(param.getChannelMchNo())) {
|
||||
throw new BizInfoException(CommonErrorCode.VALIDATE_PARAMETERS_ERROR, "error.channel.alipay.appNotFound");
|
||||
}
|
||||
this.validateUserIdType(param.getUserIdType());
|
||||
Optional<AlipayMchAppAuthConfig> existing = alipayMchAppAuthConfigManager.findByAppId(param.getAppId());
|
||||
Optional<AlipayDirectAppAuthConfig> existing = alipayDirectAppAuthConfigManager.findByAppId(param.getAppId());
|
||||
if (existing.isPresent()) {
|
||||
AlipayMchAppAuthConfig config = existing.get();
|
||||
AlipayDirectAppAuthConfig config = existing.get();
|
||||
config.setUserIdType(param.getUserIdType());
|
||||
config.setAuthCallbackUrl(param.getAuthCallbackUrl());
|
||||
alipayMchAppAuthConfigManager.updateById(config);
|
||||
alipayDirectAppAuthConfigManager.updateById(config);
|
||||
return;
|
||||
}
|
||||
AlipayMchAppAuthConfig config = AlipayMchAppAuthConfigConvert.CONVERT.toEntity(param);
|
||||
AlipayDirectAppAuthConfig config = AlipayDirectAppAuthConfigConvert.CONVERT.toEntity(param);
|
||||
config.setMchNo(app.getMchNo());
|
||||
config.setChannelMchNo(app.getChannelMchNo());
|
||||
config.setAppId(param.getAppId());
|
||||
alipayMchAppAuthConfigManager.save(config);
|
||||
alipayDirectAppAuthConfigManager.save(config);
|
||||
}
|
||||
|
||||
/// 删除应用授权认证配置
|
||||
public void deleteByAppId(Long appId) {
|
||||
alipayMchAppAuthConfigManager.deleteByAppId(appId);
|
||||
alipayDirectAppAuthConfigManager.deleteByAppId(appId);
|
||||
}
|
||||
|
||||
/// 校验用户标识类型
|
||||
@@ -1,13 +1,13 @@
|
||||
package org.dromara.daxpay.channel.alipay.service.config;
|
||||
package org.dromara.daxpay.channel.alipay.service.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.code.AlipayCode;
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayMchAppKeyConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.dao.app.AlipayMchAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.dao.config.AlipayMchAppKeyConfigManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayMchApp;
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayMchAppKeyConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayMchAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayMchAppKeyConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayDirectAppKeyConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.dao.direct.AlipayDirectAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.dao.direct.AlipayDirectAppKeyConfigManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectApp;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectAppKeyConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppKeyConfigResult;
|
||||
import org.dromara.daxpay.platform.core.code.CommonErrorCode;
|
||||
import org.dromara.daxpay.platform.core.exception.BizInfoException;
|
||||
import org.dromara.daxpay.platform.core.exception.DataNotExistException;
|
||||
@@ -20,21 +20,23 @@ import java.util.Optional;
|
||||
|
||||
/// # 支付宝直连商户应用密钥配置
|
||||
///
|
||||
/// 管理直连商户应用的密钥和证书配置,校验应用归属关系后执行新增或更新,更新时合并敏感字段。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AlipayMchAppKeyConfigService {
|
||||
public class AlipayDirectAppKeyConfigService {
|
||||
|
||||
private final AlipayMchAppKeyConfigManager alipayMchAppKeyConfigManager;
|
||||
private final AlipayMchAppManager alipayMchAppManager;
|
||||
private final AlipayDirectAppKeyConfigManager alipayDirectAppKeyConfigManager;
|
||||
private final AlipayDirectAppManager alipayDirectAppManager;
|
||||
|
||||
/// 根据应用ID查询密钥配置
|
||||
public AlipayMchAppKeyConfigResult findByAppId(Long appId) {
|
||||
AlipayMchApp app = alipayMchAppManager.findById(appId)
|
||||
public AlipayDirectAppKeyConfigResult findByAppId(Long appId) {
|
||||
AlipayDirectApp app = alipayDirectAppManager.findById(appId)
|
||||
.orElseThrow(() -> new DataNotExistException("error.channel.alipay.appNotFound"));
|
||||
return alipayMchAppKeyConfigManager.findByAppId(appId)
|
||||
.map(AlipayMchAppKeyConfigConvert.CONVERT::toResult)
|
||||
.orElseGet(() -> new AlipayMchAppKeyConfigResult()
|
||||
return alipayDirectAppKeyConfigManager.findByAppId(appId)
|
||||
.map(AlipayDirectAppKeyConfigConvert.CONVERT::toResult)
|
||||
.orElseGet(() -> new AlipayDirectAppKeyConfigResult()
|
||||
.setAppId(appId)
|
||||
.setMchNo(app.getMchNo())
|
||||
.setChannelMchNo(app.getChannelMchNo())
|
||||
@@ -42,35 +44,35 @@ public class AlipayMchAppKeyConfigService {
|
||||
}
|
||||
|
||||
/// 保存应用密钥配置
|
||||
public void save(AlipayMchAppKeyConfigParam param) {
|
||||
AlipayMchApp app = alipayMchAppManager.findById(param.getAppId())
|
||||
public void save(AlipayDirectAppKeyConfigParam param) {
|
||||
AlipayDirectApp app = alipayDirectAppManager.findById(param.getAppId())
|
||||
.orElseThrow(() -> new DataNotExistException("error.channel.alipay.appNotFound"));
|
||||
if (!app.getMchNo().equals(param.getMchNo()) || !app.getChannelMchNo().equals(param.getChannelMchNo())) {
|
||||
throw new BizInfoException(CommonErrorCode.VALIDATE_PARAMETERS_ERROR, "error.channel.alipay.appNotFound");
|
||||
}
|
||||
Optional<AlipayMchAppKeyConfig> existing = alipayMchAppKeyConfigManager.findByAppId(param.getAppId());
|
||||
Optional<AlipayDirectAppKeyConfig> existing = alipayDirectAppKeyConfigManager.findByAppId(param.getAppId());
|
||||
if (existing.isPresent()) {
|
||||
AlipayMchAppKeyConfig config = existing.get();
|
||||
AlipayDirectAppKeyConfig config = existing.get();
|
||||
config.setAuthType(param.getAuthType());
|
||||
this.mergeSensitiveFields(config, param);
|
||||
alipayMchAppKeyConfigManager.updateById(config);
|
||||
alipayDirectAppKeyConfigManager.updateById(config);
|
||||
return;
|
||||
}
|
||||
this.validateForCreate(param);
|
||||
AlipayMchAppKeyConfig config = AlipayMchAppKeyConfigConvert.CONVERT.toEntity(param);
|
||||
AlipayDirectAppKeyConfig config = AlipayDirectAppKeyConfigConvert.CONVERT.toEntity(param);
|
||||
config.setMchNo(app.getMchNo());
|
||||
config.setChannelMchNo(app.getChannelMchNo());
|
||||
config.setAppId(param.getAppId());
|
||||
alipayMchAppKeyConfigManager.save(config);
|
||||
alipayDirectAppKeyConfigManager.save(config);
|
||||
}
|
||||
|
||||
/// 删除应用密钥配置
|
||||
public void deleteByAppId(Long appId) {
|
||||
alipayMchAppKeyConfigManager.deleteByAppId(appId);
|
||||
alipayDirectAppKeyConfigManager.deleteByAppId(appId);
|
||||
}
|
||||
|
||||
/// 合并敏感字段,空值表示不更新
|
||||
private void mergeSensitiveFields(AlipayMchAppKeyConfig config, AlipayMchAppKeyConfigParam param) {
|
||||
private void mergeSensitiveFields(AlipayDirectAppKeyConfig config, AlipayDirectAppKeyConfigParam param) {
|
||||
if (StrUtil.isNotBlank(param.getAlipayPublicKey())) {
|
||||
config.setAlipayPublicKey(param.getAlipayPublicKey());
|
||||
}
|
||||
@@ -92,7 +94,7 @@ public class AlipayMchAppKeyConfigService {
|
||||
}
|
||||
|
||||
/// 新增时的条件校验
|
||||
private void validateForCreate(AlipayMchAppKeyConfigParam param) {
|
||||
private void validateForCreate(AlipayDirectAppKeyConfigParam param) {
|
||||
if (StrUtil.isBlank(param.getPrivateKey())) {
|
||||
throw new BizInfoException(CommonErrorCode.VALIDATE_PARAMETERS_ERROR, "error.channel.alipay.privateKeyRequired");
|
||||
}
|
||||
@@ -100,7 +102,7 @@ public class AlipayMchAppKeyConfigService {
|
||||
if (StrUtil.isBlank(param.getAlipayPublicKey())) {
|
||||
throw new BizInfoException(CommonErrorCode.VALIDATE_PARAMETERS_ERROR, "error.channel.alipay.alipayPublicKeyRequired");
|
||||
}
|
||||
} else if (AlipayCode.AuthType.AUTH_TYPE_CART.equals(param.getAuthType())) {
|
||||
} else if (AlipayCode.AuthType.AUTH_TYPE_CERT.equals(param.getAuthType())) {
|
||||
if (StrUtil.isBlank(param.getAppCert())) {
|
||||
throw new BizInfoException(CommonErrorCode.VALIDATE_PARAMETERS_ERROR, "error.channel.alipay.appCertRequired");
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
package org.dromara.daxpay.channel.alipay.service.app;
|
||||
package org.dromara.daxpay.channel.alipay.service.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayMchAppConvert;
|
||||
import org.dromara.daxpay.channel.alipay.dao.app.AlipayMchAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayMchApp;
|
||||
import org.dromara.daxpay.channel.alipay.param.app.AlipayMchAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.app.AlipayMchAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.config.AlipayMchAppAuthConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.service.config.AlipayMchAppKeyConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayDirectAppConvert;
|
||||
import org.dromara.daxpay.channel.alipay.dao.direct.AlipayDirectAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectApp;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.direct.AlipayDirectAppAuthConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.service.direct.AlipayDirectAppKeyConfigService;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.util.MpUtil;
|
||||
import org.dromara.daxpay.platform.core.code.CommonErrorCode;
|
||||
import org.dromara.daxpay.platform.core.exception.BizInfoException;
|
||||
@@ -20,25 +20,27 @@ import java.util.List;
|
||||
|
||||
/// # 支付宝直连商户应用管理
|
||||
///
|
||||
/// 提供直连商户应用的增删改查功能,包含同一通道商户下应用ID的唯一性校验和操作范围校验(防止跨商户操作)。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AlipayMchAppService {
|
||||
public class AlipayDirectAppService {
|
||||
|
||||
private final AlipayMchAppManager alipayMchAppManager;
|
||||
private final AlipayMchAppKeyConfigService alipayMchAppKeyConfigService;
|
||||
private final AlipayMchAppAuthConfigService alipayMchAppAuthConfigService;
|
||||
private final AlipayDirectAppManager alipayDirectAppManager;
|
||||
private final AlipayDirectAppKeyConfigService alipayDirectAppKeyConfigService;
|
||||
private final AlipayDirectAppAuthConfigService alipayDirectAppAuthConfigService;
|
||||
|
||||
/// 根据商户号和通道商户号查询应用列表
|
||||
public List<AlipayMchAppResult> listByMchNoAndChannelMchNo(String mchNo, String channelMchNo) {
|
||||
List<AlipayMchApp> list = alipayMchAppManager.listByMchNoAndChannelMchNo(mchNo, channelMchNo);
|
||||
public List<AlipayDirectAppResult> listByMchNoAndChannelMchNo(String mchNo, String channelMchNo) {
|
||||
List<AlipayDirectApp> list = alipayDirectAppManager.listByMchNoAndChannelMchNo(mchNo, channelMchNo);
|
||||
return MpUtil.toListResult(list);
|
||||
}
|
||||
|
||||
/// 根据ID查询应用详情
|
||||
public AlipayMchAppResult findById(Long id) {
|
||||
return alipayMchAppManager.findById(id)
|
||||
.map(AlipayMchApp::toResult)
|
||||
public AlipayDirectAppResult findById(Long id) {
|
||||
return alipayDirectAppManager.findById(id)
|
||||
.map(AlipayDirectApp::toResult)
|
||||
.orElseThrow(() -> new DataNotExistException("error.channel.alipay.appNotFound"));
|
||||
}
|
||||
|
||||
@@ -47,33 +49,33 @@ public class AlipayMchAppService {
|
||||
if (StrUtil.hasBlank(mchNo, channelMchNo, aliAppId)) {
|
||||
return false;
|
||||
}
|
||||
return alipayMchAppManager.existsByChannelMchNoAndAliAppId(mchNo, channelMchNo, aliAppId, excludeId);
|
||||
return alipayDirectAppManager.existsByChannelMchNoAndAliAppId(mchNo, channelMchNo, aliAppId, excludeId);
|
||||
}
|
||||
|
||||
/// 新增支付宝直连商户应用
|
||||
public void add(AlipayMchAppParam param) {
|
||||
public void add(AlipayDirectAppParam param) {
|
||||
this.assertAliAppIdUnique(param.getMchNo(), param.getChannelMchNo(), param.getAliAppId(), null);
|
||||
AlipayMchApp entity = AlipayMchAppConvert.CONVERT.toEntity(param);
|
||||
alipayMchAppManager.save(entity);
|
||||
AlipayDirectApp entity = AlipayDirectAppConvert.CONVERT.toEntity(param);
|
||||
alipayDirectAppManager.save(entity);
|
||||
}
|
||||
|
||||
/// 更新支付宝直连商户应用
|
||||
public void update(AlipayMchAppParam param) {
|
||||
AlipayMchApp entity = alipayMchAppManager.findById(param.getId())
|
||||
public void update(AlipayDirectAppParam param) {
|
||||
AlipayDirectApp entity = alipayDirectAppManager.findById(param.getId())
|
||||
.orElseThrow(() -> new DataNotExistException("error.channel.alipay.appNotFound"));
|
||||
this.assertScopeMatch(entity, param.getMchNo(), param.getChannelMchNo());
|
||||
this.assertAliAppIdUnique(entity.getMchNo(), entity.getChannelMchNo(), param.getAliAppId(), param.getId());
|
||||
AlipayMchAppConvert.CONVERT.copy(param, entity);
|
||||
alipayMchAppManager.updateById(entity);
|
||||
AlipayDirectAppConvert.CONVERT.copy(param, entity);
|
||||
alipayDirectAppManager.updateById(entity);
|
||||
}
|
||||
|
||||
/// 删除应用(级联删除密钥配置和授权认证配置)
|
||||
public void delete(Long id) {
|
||||
alipayMchAppManager.findById(id)
|
||||
alipayDirectAppManager.findById(id)
|
||||
.orElseThrow(() -> new DataNotExistException("error.channel.alipay.appNotFound"));
|
||||
alipayMchAppKeyConfigService.deleteByAppId(id);
|
||||
alipayMchAppAuthConfigService.deleteByAppId(id);
|
||||
alipayMchAppManager.deleteById(id);
|
||||
alipayDirectAppKeyConfigService.deleteByAppId(id);
|
||||
alipayDirectAppAuthConfigService.deleteByAppId(id);
|
||||
alipayDirectAppManager.deleteById(id);
|
||||
}
|
||||
|
||||
/// 校验同一通道商户下应用ID唯一
|
||||
@@ -84,7 +86,7 @@ public class AlipayMchAppService {
|
||||
}
|
||||
|
||||
/// 校验操作范围与记录归属一致
|
||||
private void assertScopeMatch(AlipayMchApp entity, String mchNo, String channelMchNo) {
|
||||
private void assertScopeMatch(AlipayDirectApp entity, String mchNo, String channelMchNo) {
|
||||
if (!entity.getMchNo().equals(mchNo) || !entity.getChannelMchNo().equals(channelMchNo)) {
|
||||
throw new BizInfoException(CommonErrorCode.VALIDATE_PARAMETERS_ERROR, "error.channel.alipay.appNotFound");
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
package org.dromara.daxpay.channel.alipay.service.mch;
|
||||
package org.dromara.daxpay.channel.alipay.service.direct;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.dao.config.AlipayDirectChannelMerchantManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayDirectChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.param.mch.AlipayDirectChannelMerchantCreateParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayDirectChannelMerchantResult;
|
||||
import org.dromara.daxpay.channel.alipay.dao.direct.AlipayDirectChannelMerchantManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.direct.AlipayDirectChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.param.direct.AlipayDirectChannelMerchantCreateParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.direct.AlipayDirectChannelMerchantResult;
|
||||
import org.dromara.daxpay.payment.channel.dao.mch.ChannelMerchantManager;
|
||||
import org.dromara.daxpay.payment.channel.entity.mch.ChannelMerchant;
|
||||
import org.dromara.daxpay.platform.core.code.CommonErrorCode;
|
||||
@@ -1,12 +1,12 @@
|
||||
package org.dromara.daxpay.channel.alipay.service.config;
|
||||
package org.dromara.daxpay.channel.alipay.service.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.code.AlipayCode;
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayIsvAppAuthConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.dao.app.AlipayIsvAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.dao.config.AlipayIsvAppAuthConfigManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvAppAuthConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayIsvAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvAppAuthConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.dao.isv.AlipayIsvAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.dao.isv.AlipayIsvAppAuthConfigManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvAppAuthConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvAppAuthConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppAuthConfigResult;
|
||||
import org.dromara.daxpay.platform.core.code.CommonErrorCode;
|
||||
import org.dromara.daxpay.platform.core.exception.BizInfoException;
|
||||
import org.dromara.daxpay.platform.core.exception.DataNotExistException;
|
||||
@@ -19,6 +19,8 @@ import java.util.Set;
|
||||
|
||||
/// # 支付宝服务商应用授权认证配置
|
||||
///
|
||||
/// 管理服务商应用的用户授权认证配置,包括用户标识类型的合法性校验(仅支持openid/userid/openid_userid)。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -1,12 +1,12 @@
|
||||
package org.dromara.daxpay.channel.alipay.service.config;
|
||||
package org.dromara.daxpay.channel.alipay.service.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.code.AlipayCode;
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayIsvAppKeyConfigConvert;
|
||||
import org.dromara.daxpay.channel.alipay.dao.app.AlipayIsvAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.dao.config.AlipayIsvAppKeyConfigManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvAppKeyConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.config.AlipayIsvAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvAppKeyConfigResult;
|
||||
import org.dromara.daxpay.channel.alipay.dao.isv.AlipayIsvAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.dao.isv.AlipayIsvAppKeyConfigManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvAppKeyConfig;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvAppKeyConfigParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppKeyConfigResult;
|
||||
import org.dromara.daxpay.platform.core.code.CommonErrorCode;
|
||||
import org.dromara.daxpay.platform.core.exception.BizInfoException;
|
||||
import org.dromara.daxpay.platform.core.exception.DataNotExistException;
|
||||
@@ -19,6 +19,8 @@ import java.util.Optional;
|
||||
|
||||
/// # 支付宝服务商应用密钥配置
|
||||
///
|
||||
/// 管理服务商应用的密钥和证书配置,支持新增和更新操作,更新时合并敏感字段(空值表示不修改)。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -92,7 +94,7 @@ public class AlipayIsvAppKeyConfigService {
|
||||
if (StrUtil.isBlank(param.getAlipayPublicKey())) {
|
||||
throw new BizInfoException(CommonErrorCode.VALIDATE_PARAMETERS_ERROR, "error.channel.alipay.alipayPublicKeyRequired");
|
||||
}
|
||||
} else if (AlipayCode.AuthType.AUTH_TYPE_CART.equals(param.getAuthType())) {
|
||||
} else if (AlipayCode.AuthType.AUTH_TYPE_CERT.equals(param.getAuthType())) {
|
||||
if (StrUtil.isBlank(param.getAppCert())) {
|
||||
throw new BizInfoException(CommonErrorCode.VALIDATE_PARAMETERS_ERROR, "error.channel.alipay.appCertRequired");
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
package org.dromara.daxpay.channel.alipay.service.app;
|
||||
package org.dromara.daxpay.channel.alipay.service.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.convert.AlipayIsvAppConvert;
|
||||
import org.dromara.daxpay.channel.alipay.dao.app.AlipayIsvAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayIsvApp;
|
||||
import org.dromara.daxpay.channel.alipay.param.app.AlipayIsvAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.app.AlipayIsvAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.config.AlipayIsvAppAuthConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.service.config.AlipayIsvAppKeyConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.dao.isv.AlipayIsvAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvApp;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvAppParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvAppResult;
|
||||
import org.dromara.daxpay.channel.alipay.service.isv.AlipayIsvAppAuthConfigService;
|
||||
import org.dromara.daxpay.channel.alipay.service.isv.AlipayIsvAppKeyConfigService;
|
||||
import org.dromara.daxpay.platform.common.mybatisplus.util.MpUtil;
|
||||
import org.dromara.daxpay.platform.core.code.CommonErrorCode;
|
||||
import org.dromara.daxpay.platform.core.exception.BizInfoException;
|
||||
@@ -20,6 +20,8 @@ import java.util.List;
|
||||
|
||||
/// # 支付宝服务商应用管理
|
||||
///
|
||||
/// 提供服务商应用的增删改查功能,包含支付宝应用ID的唯一性校验和级联删除密钥/授权配置。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@@ -1,11 +1,11 @@
|
||||
package org.dromara.daxpay.channel.alipay.service.mch;
|
||||
package org.dromara.daxpay.channel.alipay.service.isv;
|
||||
|
||||
import org.dromara.daxpay.channel.alipay.dao.app.AlipayIsvAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.dao.config.AlipayIsvChannelMerchantManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.app.AlipayIsvApp;
|
||||
import org.dromara.daxpay.channel.alipay.entity.config.AlipayIsvChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.param.mch.AlipayIsvChannelMerchantCreateParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.config.AlipayIsvChannelMerchantResult;
|
||||
import org.dromara.daxpay.channel.alipay.dao.isv.AlipayIsvAppManager;
|
||||
import org.dromara.daxpay.channel.alipay.dao.isv.AlipayIsvChannelMerchantManager;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvApp;
|
||||
import org.dromara.daxpay.channel.alipay.entity.isv.AlipayIsvChannelMerchant;
|
||||
import org.dromara.daxpay.channel.alipay.param.isv.AlipayIsvChannelMerchantCreateParam;
|
||||
import org.dromara.daxpay.channel.alipay.result.isv.AlipayIsvChannelMerchantResult;
|
||||
import org.dromara.daxpay.payment.channel.dao.mch.ChannelMerchantManager;
|
||||
import org.dromara.daxpay.payment.channel.entity.mch.ChannelMerchant;
|
||||
import org.dromara.daxpay.platform.core.code.CommonErrorCode;
|
||||
@@ -18,6 +18,8 @@ import static org.dromara.daxpay.platform.core.enums.pay.channel.PayProviderEnum
|
||||
|
||||
/// # 支付宝直连产品策略
|
||||
///
|
||||
/// 支付宝直连模式的支付产品策略,定义支持条码、扫码、JSAPI、小程序、PC、H5和APP等全部支付方式,使用商户API调用模式并支持沙箱环境。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
|
||||
@@ -18,6 +18,8 @@ import static org.dromara.daxpay.platform.core.enums.pay.channel.PayProviderEnum
|
||||
|
||||
/// # 支付宝服务商产品策略
|
||||
///
|
||||
/// 支付宝服务商(ISV)模式的支付产品策略,定义支持条码、扫码、JSAPI、小程序、PC、H5和APP等全部支付方式,使用服务商API调用模式。
|
||||
///
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
|
||||
Reference in New Issue
Block a user