mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-04-06 04:15:46 +08:00
56 lines
1.8 KiB
Go
56 lines
1.8 KiB
Go
package register
|
||
|
||
import (
|
||
"Open_IM/pkg/common/config"
|
||
"Open_IM/pkg/common/log"
|
||
"Open_IM/pkg/utils"
|
||
"encoding/json"
|
||
"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"
|
||
v20210111 "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/sms/v20210111"
|
||
)
|
||
|
||
type TencentSMS struct {
|
||
client *v20210111.Client
|
||
}
|
||
|
||
func (t TencentSMS) SendSms(code int, phoneNumber string) (resp interface{}, err error) {
|
||
request := v20210111.NewSendSmsRequest()
|
||
request.SmsSdkAppId = common.StringPtr(config.Config.Demo.TencentSMS.AppID)
|
||
request.SignName = common.StringPtr(config.Config.Demo.TencentSMS.SignName)
|
||
request.TemplateId = common.StringPtr(config.Config.Demo.TencentSMS.VerificationCodeTemplateCode)
|
||
request.TemplateParamSet = common.StringPtrs([]string{utils.IntToString(code)})
|
||
request.PhoneNumberSet = common.StringPtrs([]string{phoneNumber})
|
||
//+971588232183
|
||
// 通过client对象调用想要访问的接口,需要传入请求对象
|
||
response, err := t.client.SendSms(request)
|
||
// 非SDK异常,直接失败。实际代码中可以加入其他的处理。
|
||
if err != nil {
|
||
return response, err
|
||
}
|
||
// 处理异常
|
||
if _, ok := err.(*errors.TencentCloudSDKError); ok {
|
||
return response, err
|
||
}
|
||
b, _ := json.Marshal(response.Response)
|
||
log.Debug("tencent send message is ", code, phoneNumber, string(b))
|
||
return response, nil
|
||
}
|
||
|
||
func NewTencentSMS() (*TencentSMS, error) {
|
||
var a TencentSMS
|
||
credential := common.NewCredential(
|
||
config.Config.Demo.TencentSMS.SecretID,
|
||
config.Config.Demo.TencentSMS.SecretKey,
|
||
)
|
||
cpf := profile.NewClientProfile()
|
||
client, err := v20210111.NewClient(credential, config.Config.Demo.TencentSMS.Region, cpf)
|
||
if err != nil {
|
||
return &a, err
|
||
}
|
||
a.client = client
|
||
return &a, nil
|
||
|
||
}
|