golang 阿里短信接口记录,随机验证码(数值)被阉割问题

  • 随机生成 6 位数字
  • 封装请求
/*
 * @Description:
 * @Author: Casso-Wong
 */

package alimsg

import (
    "fmt"
    "math/rand"
    "time"

    "github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
)

// Code 生成6位数随机码-- int
func Code() (res string) {
    rand.Seed(time.Now().Unix())
    rnd := rand.New(rand.NewSource(time.Now().Unix()))
    res = fmt.Sprintf("%06v", rnd.Intn(1000000))
    // 可能大家都已经发现了,如果随机生成的Code以0开头就会被阿里去掉,所以要稍微解决一下
    if res[0] == '0'{
        res = Code()
    }
    return
}

// SendMsg 发送短信
func SendMsg(moblie, Code string) (code int) {
    client, err := dysmsapi.NewClientWithAccessKey("********", "你的AccessKey ID", "你的AccessKey Secret
")
    request := dysmsapi.CreateSendSmsRequest()
    request.Scheme = "https"
    request.PhoneNumbers = moblie
    request.SignName = "短信开头"
    request.TemplateCode = "短信模板代码"
    request.TemplateParam = fmt.Sprintf("{code:%s}", Code)
    response, err := client.SendSms(request)
    if err != nil {
        fmt.Print(err.Error())
    }
    fmt.Printf("ali sendmsg response code is %#v\n", response.BaseResponse.GetHttpStatus())
    return response.BaseResponse.GetHttpStatus()
}


  • 本来想附上官网链接的,突然失忆...
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容