mirror of
https://gitee.com/dromara/dax-pay
synced 2026-08-12 15:35:38 +08:00
feat(alipay): 服务商通道商户应用授权令牌支持手动设置/更新
This commit is contained in:
@@ -3,6 +3,7 @@ package cn.daxpay.open.channel.alipay.controller.isv;
|
||||
import cn.daxpay.open.platform.core.annotation.PermCode;
|
||||
import cn.daxpay.open.platform.core.rest.Res;
|
||||
import cn.daxpay.open.platform.core.rest.result.Result;
|
||||
import cn.daxpay.open.channel.alipay.param.isv.AlipayIsvAppAuthTokenUpdateParam;
|
||||
import cn.daxpay.open.channel.alipay.param.isv.AlipayIsvChannelMerchantCreateParam;
|
||||
import cn.daxpay.open.channel.alipay.result.isv.AlipayIsvChannelMerchantResult;
|
||||
import cn.daxpay.open.channel.alipay.service.isv.AlipayIsvChannelMerchantService;
|
||||
@@ -44,4 +45,12 @@ public class AlipayIsvChannelMerchantController {
|
||||
alipayIsvChannelMerchantService.create(param);
|
||||
return Res.ok();
|
||||
}
|
||||
|
||||
@PermCode(code = "manage", nameCn = "通道商户管理", nameEn = "Channel Merchant Manage")
|
||||
@Operation(summary = "更新应用授权令牌")
|
||||
@PostMapping("/update-app-auth-token")
|
||||
public Result<Void> updateAppAuthToken(@RequestBody @Validated AlipayIsvAppAuthTokenUpdateParam param) {
|
||||
alipayIsvChannelMerchantService.updateAppAuthToken(param);
|
||||
return Res.ok();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package cn.daxpay.open.channel.alipay.param.isv;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/// # 应用授权令牌更新参数
|
||||
///
|
||||
/// 用于手动设置或更新支付宝服务商通道商户的应用授权令牌(app_auth_token)。
|
||||
/// 适用于创建时未填写令牌后续补充, 或令牌过期/变更后重新绑定的场景。
|
||||
///
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@Schema(title = "应用授权令牌更新参数")
|
||||
public class AlipayIsvAppAuthTokenUpdateParam {
|
||||
|
||||
/// 通道商户号
|
||||
@Schema(description = "通道商户号")
|
||||
@NotBlank(message = "{validation.field.channelMchNo.notBlank}")
|
||||
private String channelMchNo;
|
||||
|
||||
/// 应用授权令牌(服务商代子商户调用接口的凭据)
|
||||
@Schema(description = "应用授权令牌")
|
||||
@NotBlank(message = "{validation.field.appAuthToken.notBlank}")
|
||||
private String appAuthToken;
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import cn.daxpay.open.channel.alipay.dao.isv.AlipayIsvAppManager;
|
||||
import cn.daxpay.open.channel.alipay.dao.isv.AlipayIsvChannelMerchantManager;
|
||||
import cn.daxpay.open.channel.alipay.entity.isv.AlipayIsvApp;
|
||||
import cn.daxpay.open.channel.alipay.entity.isv.AlipayIsvChannelMerchant;
|
||||
import cn.daxpay.open.channel.alipay.param.isv.AlipayIsvAppAuthTokenUpdateParam;
|
||||
import cn.daxpay.open.channel.alipay.param.isv.AlipayIsvChannelMerchantCreateParam;
|
||||
import cn.daxpay.open.channel.alipay.result.isv.AlipayIsvChannelMerchantResult;
|
||||
import cn.daxpay.open.payment.channel.dao.mch.ChannelMerchantManager;
|
||||
@@ -75,4 +76,19 @@ public class AlipayIsvChannelMerchantService {
|
||||
// 支付宝: 通道商户配置不存在
|
||||
.orElseThrow(() -> new DataNotExistException("error.payment.channel.channelMerchantNotExist"));
|
||||
}
|
||||
|
||||
/// 更新应用授权令牌
|
||||
///
|
||||
/// 手动设置或更新子商户的 app_auth_token, 适用于创建时未填写后续补充,
|
||||
/// 或令牌过期/变更后重新绑定的场景。
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void updateAppAuthToken(AlipayIsvAppAuthTokenUpdateParam param) {
|
||||
var entity = alipayIsvChannelMerchantManager.lambdaQuery()
|
||||
.eq(AlipayIsvChannelMerchant::getChannelMchNo, param.getChannelMchNo())
|
||||
.oneOpt()
|
||||
// 支付宝: 通道商户配置不存在
|
||||
.orElseThrow(() -> new DataNotExistException("error.payment.channel.channelMerchantNotExist"));
|
||||
entity.setAppAuthToken(param.getAppAuthToken());
|
||||
alipayIsvChannelMerchantManager.updateById(entity);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user