package router import ( "strings" "hfb_sys/backend/internal/config" smsintegration "hfb_sys/backend/internal/integrations/sms" "hfb_sys/backend/internal/modules/realname" "hfb_sys/backend/pkg/crypto" "go.uber.org/zap" ) func newSMSProvider(cfg config.Config, logger *zap.Logger) smsintegration.Provider { switch strings.ToLower(strings.TrimSpace(cfg.SMS.Provider)) { case "aliyun": provider, err := smsintegration.NewAliyunProvider(smsintegration.AliyunConfig{ AccessKeyID: cfg.SMS.AliyunAccessKeyID, AccessKeySecret: cfg.SMS.AliyunAccessKeySecret, Endpoint: cfg.SMS.AliyunEndpoint, SignName: cfg.SMS.AliyunSignName, LoginTemplateCode: cfg.SMS.AliyunLoginTemplateCode, }, logger) if err != nil { logger.Warn("阿里云短信服务初始化失败", zap.Error(err)) return smsintegration.NewUnavailableProvider(err) } return provider default: return smsintegration.NewMockProvider(logger) } } func newRealnameProvider(cfg config.Config, encryptor crypto.Encryptor, logger *zap.Logger) realname.Provider { switch strings.ToLower(strings.TrimSpace(cfg.Realname.Provider)) { case "cloudmarket", "aliyun_cloudmarket": provider, err := realname.NewCloudMarketProvider(realname.CloudMarketConfig{ URL: cfg.Realname.CloudMarketURL, AppCode: cfg.Realname.CloudMarketAppCode, Encryptor: encryptor, }) if err != nil { logger.Warn("实名认证服务初始化失败", zap.Error(err)) return realname.NewUnavailableProvider(err) } return provider default: return realname.NewMockProvider(encryptor) } }