f
This commit is contained in:
@@ -23,6 +23,16 @@ type AliSMSService struct {
|
||||
|
||||
// NewAliSMSService 创建阿里云短信服务
|
||||
func NewAliSMSService(cfg config.SMSConfig, logger *zap.Logger) (*AliSMSService, error) {
|
||||
if cfg.AccessKeyID == "" || cfg.AccessKeySecret == "" {
|
||||
return nil, fmt.Errorf("阿里云短信未配置 access_key_id / access_key_secret")
|
||||
}
|
||||
if cfg.SignName == "" {
|
||||
return nil, fmt.Errorf("阿里云短信未配置 sign_name")
|
||||
}
|
||||
if cfg.TemplateCode == "" {
|
||||
return nil, fmt.Errorf("阿里云短信未配置 template_code")
|
||||
}
|
||||
|
||||
client, err := dysmsapi.NewClientWithAccessKey("cn-hangzhou", cfg.AccessKeyID, cfg.AccessKeySecret)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("创建短信客户端失败: %w", err)
|
||||
|
||||
@@ -21,12 +21,16 @@ type SMSSender interface {
|
||||
// provider 为空时默认 tencent。
|
||||
func NewSMSSender(cfg config.SMSConfig, logger *zap.Logger) (SMSSender, error) {
|
||||
if cfg.MockEnabled {
|
||||
logger.Info("短信服务使用 Mock 模式,已跳过云厂商发送")
|
||||
return NewMockSMSService(logger), nil
|
||||
}
|
||||
p := strings.ToLower(strings.TrimSpace(cfg.Provider))
|
||||
if p == "" {
|
||||
p = "tencent"
|
||||
}
|
||||
|
||||
logger.Info("初始化短信服务商", zap.String("provider", p))
|
||||
|
||||
switch p {
|
||||
case "tencent":
|
||||
return NewTencentSMSService(cfg, logger)
|
||||
|
||||
Reference in New Issue
Block a user