提交kit/sms

Signed-off-by: lixxxww <941403820@qq.com>
This commit is contained in:
lixxxww
2024-01-23 12:09:28 +00:00
committed by Gitee
parent 93d5a562a7
commit 5db4f36e05
2 changed files with 58 additions and 0 deletions

44
kit/sms/aliyun.go Normal file
View File

@@ -0,0 +1,44 @@
package sms
import (
"github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
"github.com/pkg/errors"
)
type AliConfig struct {
accessKeyId string
accessSecret string
RegionId string
}
type AliSms struct {
config AliConfig
}
func NewAliSms(AliConfig AliConfig) *AliSms {
return &AliSms{
config: AliConfig,
}
}
func (a *AliSms) Send(PhoneNumbers, SignName, TemplateCode, TemplateParam string) error {
//客户端
client, err := dysmsapi.NewClientWithAccessKey(a.config.RegionId, a.config.accessKeyId, a.config.accessSecret)
if err != nil {
return errors.Wrapf(err, "ali sms client init fail")
}
//参数处理
request := dysmsapi.CreateSendSmsRequest()
request.Scheme = "https"
request.PhoneNumbers = PhoneNumbers
request.SignName = SignName
request.TemplateCode = TemplateCode
//json格式
request.TemplateParam = TemplateParam
//发送
_, err = client.SendSms(request)
if err != nil {
return errors.Wrapf(err, "ali sms send fail")
}
return nil
}

14
kit/sms/sms.go Normal file
View File

@@ -0,0 +1,14 @@
package sms
type Sms interface {
Send(PhoneNumbers, SignName, TemplateCode, TemplateParam string) error
}
func NewDefaultSms(use string) Sms {
switch use {
case "AliYun":
return NewAliSms(AliConfig{})
default:
panic(any("sms driver err"))
}
}