123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package utils
- import (
- "fmt"
- openapi "github.com/alibabacloud-go/darabonba-openapi/client"
- dysmsapi "github.com/alibabacloud-go/dysmsapi-20170525/v2/client"
- console "github.com/alibabacloud-go/tea-console/client"
- util "github.com/alibabacloud-go/tea-utils/service"
- "github.com/alibabacloud-go/tea/tea"
- "github.com/gin-gonic/gin"
- "github.com/goccy/go-json"
- "math/rand"
- "time"
- "ulink-admin/config"
- "ulink-admin/frame"
- )
- func SendSms(phone, signName, templateCode string, templateParam gin.H) {
- cfg := config.GetSmsCfg()
- client, _err := CreateClient(&cfg.AccessKeyID, &cfg.AccessKeySecret)
- if _err != nil {
- frame.Throw(frame.BUSINESS_CODE, _err.Error())
- }
- dataType, _ := json.Marshal(templateParam)
- dataString := string(dataType)
- sendReq := &dysmsapi.SendSmsRequest{
- PhoneNumbers: &phone,
- SignName: &signName,
- TemplateCode: &templateCode,
- TemplateParam: &dataString,
- }
- sendResp, _err := client.SendSms(sendReq)
- if _err != nil {
- frame.Throw(frame.BUSINESS_CODE, _err.Error())
- }
- code := sendResp.Body.Code
- if !tea.BoolValue(util.EqualString(code, tea.String("OK"))) {
- console.Log(tea.String("错误信息: " + tea.StringValue(sendResp.Body.Message)))
- frame.Throw(frame.BUSINESS_CODE, tea.StringValue(sendResp.Body.Message))
- }
- }
- // 使用AK&SK初始化账号Client
- func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *dysmsapi.Client, _err error) {
- config := &openapi.Config{}
- config.AccessKeyId = accessKeyId
- config.AccessKeySecret = accessKeySecret
- _result = &dysmsapi.Client{}
- _result, _err = dysmsapi.NewClient(config)
- return _result, _err
- }
- func CreateCode() string {
- return fmt.Sprintf("%04v", rand.New(rand.NewSource(time.Now().UnixNano())).Int31n(10000)) //这里面前面的04v是和后面的1000相对应的
- }
|