You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
OneAuth/libs/sms/sms.go

29 lines
685 B
Go

//
// Copyright (C) 2024 veypi <i@veypi.com>
// 2025-03-04 16:08:06
// Distributed under terms of the MIT license.
//
package sms
import (
"fmt"
)
// Provider 短信提供商接口
type Provider interface {
Send(phone, code string) error
}
// NewProvider 创建短信提供商
func NewProvider(providerType, accessKey, accessSecret, signName, templateCode string) (Provider, error) {
switch providerType {
case "aliyun":
return NewAliyunProvider(accessKey, accessSecret, signName, templateCode)
case "tencent":
return NewTencentProvider(accessKey, accessSecret, signName, templateCode)
default:
return nil, fmt.Errorf("unsupported sms provider: %s", providerType)
}
}