package smsx import ( "encoding/json" "errors" "github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi" ) type Sms struct { endPoint string accessKeyId string accessKeySecret string } func NewSms(endPoint string, accessKeyId string, accessKeySecret string) *Sms { if endPoint == "" { endPoint = "dysmsapi.aliyuncs.com" } return &Sms{ endPoint: endPoint, accessKeyId: accessKeyId, accessKeySecret: accessKeySecret, } } func (s *Sms) Send(phone, signName, templateCode string, params map[string]interface{}) error { client, err := dysmsapi.NewClientWithAccessKey(s.endPoint, s.accessKeyId, s.accessKeySecret) if err != nil { return err } paramBy, _ := json.Marshal(params) req := dysmsapi.CreateSendSmsRequest() req.Scheme = "https" req.PhoneNumbers = phone req.SignName = signName req.TemplateCode = templateCode req.TemplateParam = string(paramBy) resp, err := client.SendSms(req) // fmt.Printf("sms send: resp:%+v err:%+v", resp, err) if err != nil { return err } if resp == nil { return errors.New("没有获取到发送结果") } if resp.Code != "OK" { return errors.New(resp.Message) } return nil }