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相对应的 }