mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
44
kit/sms/aliyun.go
Normal file
44
kit/sms/aliyun.go
Normal 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
14
kit/sms/sms.go
Normal 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"))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user