短信发送方法
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.

59 lines
1.7 KiB

package sms
import (
"log"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
"github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/profile"
sms "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms/v20210111"
)
/**
* 使用腾讯云发送短信
* @secretId 腾讯云密钥id
* @secretKey 腾讯云密钥key
* @signname 签名
* @templateId 模板id
* @params 参数值
* @region 区域, ap-guangzhou|ap-beijing|ap-shanghai
* @return *requestId,[]*sendStatus,error
*
*/
func SendByTencent(secretId, secretKey, smsAppId string, signname string, mobiles []string, templateId string, params []string, region ...string) (*string, []*sms.SendStatus, error) {
credential := common.NewCredential(
secretId,
secretKey,
)
cpf := profile.NewClientProfile()
cpf.HttpProfile.Endpoint = "sms.tencentcloudapi.com"
region_default := "ap-guangzhou"
if len(region) > 0 {
region_default = region[0]
}
client, _ := sms.NewClient(credential, region_default, cpf)
request := sms.NewSendSmsRequest()
request.PhoneNumberSet = common.StringPtrs(mobiles) //[]string{"18607552321"}
request.SmsSdkAppId = common.StringPtr(smsAppId)
request.SignName = common.StringPtr(signname)
request.TemplateId = common.StringPtr(templateId)
request.TemplateParamSet = common.StringPtrs(params) //[]string{"param1", "param2"}
response, err := client.SendSms(request)
if _, ok := err.(*errors.TencentCloudSDKError); ok {
log.Println("An API error has returned: ", err)
return nil, nil, err
}
if err != nil {
log.Println(err)
return nil, nil, err
}
return response.Response.RequestId, response.Response.SendStatusSet, nil
}