Files
web_template/internal/sms/sms.go
2026-07-10 10:06:51 +00:00

31 lines
878 B
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package sms
import "gotest/internal/config"
// Sender 短信发送接口,统一抽象不同短信通道的发送行为
type Sender interface {
// Send 向指定手机号发送验证码
Send(phone string, code string) error
}
// NewSender 根据配置创建短信发送实例
// 规则:DevMode 为 true 时无论 Provider 是什么都返回 MockSender;
// 否则按 Provider 返回 aliyun/tencent,默认 mock。
func NewSender(cfg *config.SMSConfig) Sender {
// 开发模式直接返回 MockSender,不真实发送
if cfg.DevMode {
return &MockSender{}
}
// 根据 Provider 选择具体短信通道
switch cfg.Provider {
case "aliyun":
return NewAliyunSender(&cfg.Aliyun)
case "tencent":
return NewTencentSender(&cfg.Tencent)
default:
// 未识别的 Provider 默认使用 mock,避免配置错误导致服务不可用
return &MockSender{}
}
}