短信发送方法
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.8 KiB

package sms
import (
"errors"
"git.tetele.net/tgo/helper"
dysmsapi "github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
"log"
)
/**
* 阿里云短信
* @accessKeyId 用来验证用户身份的keyId
* @accessKeySecret 用来验证用户身份的secret
* @signName 短信签名名称
* @templateCode 短信模板CODE
* @phoneNumbers 手机号,多个用逗号隔开
* @teplateParam 短信内容
*/
func SendByALiYun(accessKeyId string, accessKeySecret string, phoneNumbers string, signName string, templateCode string, teplateParam string) (bool, error) {
if accessKeyId == "" || accessKeySecret == "" || phoneNumbers == "" || signName == "" || templateCode == "" || teplateParam == "" {
return false, errors.New("参数不全")
}
client, err := dysmsapi.NewClientWithAccessKey("cn-qingdao", accessKeyId, accessKeySecret)
/* use STS Token
client, err := dysmsapi.NewClientWithStsToken("cn-qingdao", "<your-access-key-id>", "<your-access-key-secret>", "<your-sts-token>")
*/
request := dysmsapi.CreateSendSmsRequest()
request.Scheme = "https"
request.PhoneNumbers = phoneNumbers // 接收短信的手机号码
request.SignName = signName // 短信签名名称
request.TemplateCode = templateCode // 短信模板ID
request.TemplateParam = teplateParam
response, err := client.SendSms(request)
if err != nil {
log.Println("post err", err)
return false, err
}
// var reply_data map[string]interface{}
// err = json.Unmarshal(response, &reply_data)
// if err != nil {
// log.Println(string(response), err)
// return false, err
// }
if helper.ToStr(response.Code) != "OK" {
return false, errors.New("短信发送失败," + helper.ToStr(response.Message))
}
return true, nil
}