一、开通阿里云的短信服务功能
点击此处可查看阿里云短信服务产品文档https://help.aliyun.com/zh/sms/
1、短信服务开通
1.1、阿里云首页搜索框输入短信服务,点击短信服务
点击免费开通
扫码加入钉钉群,后开通服务
1.2、进入短信服务控制台
完成快速学习和测试
1.3第一步、新增资质
填写基础信息,这里选择自用,提交申请之后等待审核通过
1.4第二步、申请签名
签名名称建议填写自己的应用名、网站名等,系统会将已审核通过的短信签名添加到短信内容的开头,并与短信内容一起发送给接收方。例如
填写相关信息,提交等待审核通过
1.5第三步、申请模版
这里可以选择自己合适的模版
等待模版申请通过,第四,第五步可以跳过
2、用户与用户组权限管理
2.1、进入管理控制台
2.2、创建用户组
2.3、创建子用户
注意这个AccessKey ID和 AccessKey Secret 一定要保存下来,后面需要使用并且关闭该页面后无法再次获取 AccessKey Secret。
2.4、添加子用户到用户组
2.5、用户组权限管理
在这里只添加短信服务的权限
3、购买短信套餐包
根据个人选择购买
4、在线测试签名模版API
到这里阿里云的短信服务功能开通完成,接下来可以在项目中集成
二、springboot集成阿里云短信服务,用来发送验证码
1、添加Maven依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>alibabacloud-dysmsapi20170525</artifactId>
<version>3.0.0</version>
</dependency>
2、这里将阿里云短信发送接口定义为一个工具类
在这里需要配置访问键与秘钥,就是在2.3创建子用户中保存的AccessKeyId与AccessKeySecret
package com.aynu.yoyo.utils;
import com.aliyun.auth.credentials.Credential;
import com.aliyun.auth.credentials.provider.StaticCredentialProvider;
import com.aliyun.sdk.service.dysmsapi20170525.AsyncClient;
import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.sdk.service.dysmsapi20170525.models.SendSmsResponse;
import com.google.gson.Gson;
import darabonba.core.client.ClientOverrideConfiguration;
import java.util.concurrent.CompletableFuture;
/**
* 短信发送工具类
*/
public class SMSUtils {
/**
* 发送短信
* @param signName 签名
* @param templateCode 模板
* @param phoneNumbers 手机号
* @param param 参数
*/
public static void sendMessage1(String signName, String templateCode,String phoneNumbers,String param) throws Exception {
StaticCredentialProvider provider = StaticCredentialProvider.create(Credential.builder()
.accessKeyId("AccessKeyId") //注意将此处AccessKeyId替换为2.3中保存的子用户的AccessKeyId
.accessKeySecret("AccessKeySecret")//注意将此处AccessKeySecret替换为2.3中保存的字用户的AccessKeySecret
.build());
AsyncClient client = AsyncClient.builder()
.region("cn-wulanchabu") // Region ID
.credentialsProvider(provider)
.overrideConfiguration(
ClientOverrideConfiguration.create()
.setEndpointOverride("dysmsapi.aliyuncs.com")
)
.build();
SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
.signName(signName)
.templateCode(templateCode)
.phoneNumbers(phoneNumbers)
.templateParam("{\"code\":\""+param+"\"}")
.build();
CompletableFuture<SendSmsResponse> response = client.sendSms(sendSmsRequest);
SendSmsResponse resp = response.get();
System.out.println(new Gson().toJson(resp));
client.close();
}
}
3、在自己的项目中调用该工具类发送验证码
上图1处填写内容
上图2处填写内容