github.com/inhzus/go-berater@v0.0.0-20190602170559-fb80cb14726b/utils/sms.go (about)

     1  package utils
     2  
     3  import (
     4  	"encoding/json"
     5  	"errors"
     6  	"github.com/aliyun/alibaba-cloud-sdk-go/sdk"
     7  	"github.com/aliyun/alibaba-cloud-sdk-go/sdk/requests"
     8  	"github.com/inhzus/go-berater/config"
     9  )
    10  
    11  func SendSMS(phone, code string) error {
    12  	c := config.GetConfig()
    13  	client, err := sdk.NewClientWithAccessKey("cn-hangzhou", c.Code.AccessKey, c.Code.AccessSecret)
    14  	if err != nil {
    15  		return err
    16  	}
    17  
    18  	request := requests.NewCommonRequest()
    19  	request.Method = "POST"
    20  	request.Scheme = "https" // https | http
    21  	request.Domain = "dysmsapi.aliyuncs.com"
    22  	request.Version = "2017-05-25"
    23  	request.ApiName = "SendSms"
    24  	request.QueryParams["RegionId"] = "cn-hangzhou"
    25  	request.QueryParams["PhoneNumbers"] = phone
    26  	request.QueryParams["SignName"] = "南大咨询"
    27  	request.QueryParams["TemplateCode"] = "SMS_163433313"
    28  	request.QueryParams["TemplateParam"] = "{\"code\":\"" + code + "\"}"
    29  
    30  	res, err := client.ProcessCommonRequest(request)
    31  	if err != nil {
    32  		return err
    33  	}
    34  	var j map[string]interface{}
    35  	_ = json.Unmarshal(res.GetHttpContentBytes(), &j)
    36  	if j["Code"] == "OK" {
    37  		return nil
    38  	} else {
    39  		return errors.New(j["Message"].(string))
    40  	}
    41  }