现在的手机短信验证在很多地方都需要用到。 可以通过阿里云第三方来实现这个操作。 首先得通过阿里云去申请注册一个测试的签名
这个阶段一般等待1到2个小时就可以。
然后还需要去注册一个模板
这里的关联签名就写前面注册的前面。然后剩下的就按要求填写就好。
这个过程大概也需要1到2个小时就可以申请成功。
接下来就是去创建一个RAM的角色,这个过程直接按着需求填写就行,这里不需要人工审核,可以直接完成。
接下来就是通过API调发送短信。此时会进入这个界面
选择SDK示例然后选择对应的语言就行。接下来就看代码咯!
// This file is auto-generated, don't edit it. Thanks.
package main
import (
"os"
dysmsapi20170525 "github.com/alibabacloud-go/dysmsapi-20170525/v3/client"
openapi "github.com/alibabacloud-go/darabonba-openapi/v2/client"
util "github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/alibabacloud-go/tea/tea"
)
/**
* 使用AK&SK初始化账号Client
* @param accessKeyId
* @param accessKeySecret
* @return Client
* @throws Exception
*/
func CreateClient (accessKeyId *string, accessKeySecret *string) (_result *dysmsapi20170525.Client, _err error) {
config := &openapi.Config{
// 必填,您的 AccessKey ID
AccessKeyId: accessKeyId,
// 必填,您的 AccessKey Secret
AccessKeySecret: accessKeySecret,
}
// 访问的域名
config.Endpoint = tea.String("dysmsapi.aliyuncs.com")
_result = &dysmsapi20170525.Client{}
_result, _err = dysmsapi20170525.NewClient(config)
return _result, _err
}
//可以自己设置传入参数,一般都是手机号加随机的code。
func _main (args []*string) (_err error) {
// 工程代码泄露可能会导致AccessKey泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378661.html
client, _err := CreateClient(tea.String("accessKeyId"), tea.String("accessKeySecret"))
if _err != nil {
return _err
}
sendSmsRequest := &dysmsapi20170525.SendSmsRequest{
//这里是你自己申请的签名名
SignName: tea.String("XXXX"),
//申请的模板的SMS码
TemplateCode: tea.String("XXXXXXX"),
//绑定的测试手机号
PhoneNumbers: tea.String("XXXXXXX"),
//这里的code可以你自己通过随机函数生成一个纯数字的字符串
TemplateParam: tea.String("{"code":"code"}"),
}
runtime := &util.RuntimeOptions{}
tryErr := func()(_e error) {
defer func() {
if r := tea.Recover(recover()); r != nil {
_e = r
}
}()
// 复制代码运行请自行打印 API 的返回值
//这一行就是发送短信到手机的代码
_, _err = client.SendSmsWithOptions(sendSmsRequest, runtime)
if _err != nil {
return _err
}
return nil
}()
if tryErr != nil {
var error = &tea.SDKError{}
if _t, ok := tryErr.(*tea.SDKError); ok {
error = _t
} else {
error.Message = tea.String(tryErr.Error())
}
// 如有需要,请打印 error
_, _err = util.AssertAsString(error.Message)
if _err != nil {
return _err
}
}
return _err
}
func main() {
err := _main(tea.StringSlice(os.Args[1:]))
if err != nil {
panic(err)
}
}