package smsx import ( "errors" "fmt" "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 { return &sms{ endPoint: endPoint, accessKeyId: accessKeyId, accessKeySecret: accessKeySecret, } } func (s *sms) Send(phone, code, signName, templateCode string) error { client, err := dysmsapi.NewClientWithAccessKey(s.endPoint, s.accessKeyId, s.accessKeySecret) if err != nil { return err } req := dysmsapi.CreateSendSmsRequest() req.Scheme = "https" req.PhoneNumbers = phone req.SignName = signName req.TemplateCode = templateCode req.TemplateParam = fmt.Sprintf(`{"code":"%s"}`, code) 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 }