阿里云创建用户组和用户
首先进入阿里云官网。点击右上角的登录进行登录(没有账号的进行注册登录)

搜索框搜索访问控制

进入访问控制页面

点击进入管理控制台进入到RAM访问控制页面

点击左侧菜单栏的用户组点击创建用户组创建新的用户组

按要求填写相关信息

点击添加权限添加短信业务权限

搜索框中搜索短信添加备注为管理短信服务(SMS)的权限

我们可以点击用户组名称进行查看

点击权限管理查看当前用户组所拥有的权限

接着点击左侧菜单栏用户进入页面点击创建用户创建新用户

按照提示填写相关信息。访问方式选择编程访问

若开通编程访问,请及时保存 AccessKey 信息,页面关闭后将无法再次获取信息。此时页面会显示AccessKey Secret注意保存。

访问到用户页面。点击添加用户组

选择加入到之前创建的用户组

点击查看当前用户

点击加入的组查看当前加入的用户组。可以看到我们已经成功加入之前创建的用户组了

接着点击权限管理可以看到个人权限为空,点击继承用户组的权限可以看到我们成功继承了加入的用户组的权限

到此为止我们的阿里用户组和用户已经成功创建!
阿里云开通短信服务
搜索框中搜索短信服务.由于我开通了,所以直接进入短信服务的控制台。没有开通则选择开通服务。(注意此操作需要付费,所以保证账户里有余额)


点击左侧国内信息选择模板管理点击添加模板

按照提示填写相关的信息。模板可以选择在常用的模板库进行选择


填写完成之后。等待审核通过。
接着点击签名管理选择添加签名

适用场景选择验证码按要求填写信息

等待审核通过
快速学习
点击左边菜单的快速学习我们不填写直接点击查看API Demo

可以在右边看到相关的Java代码

我们创建一个SpringBoot项目导入相关的依赖。包括阿里云的依赖

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.1</version> </dependency>
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.31</version> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
|
将其左边的代码直接复制到SpringBoot的测试类中

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>"); IAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest(); request.setSysMethod(MethodType.POST); request.setSysDomain("dysmsapi.aliyuncs.com"); request.setSysVersion("2017-05-25"); request.setSysAction("SendSms"); request.putQueryParameter("RegionId", "cn-hangzhou"); try { CommonResponse response = client.getCommonResponse(request); System.out.println(response.getData()); } catch (ServerException e) { e.printStackTrace(); } catch (ClientException e) { e.printStackTrace(); }
|
进行相应的修改。和添加相关的参数,注释。发送短信验证码2233

点击运行。查看效果

手机成功接收到短信验证!!

集成Redis
前提我们已经导入了Redis依赖。接着配置Redis

1 2
| spring.redis.host=localhost spring.redis.port=6379
|
确保Redis服务已经开启
创建一个service包,编写SendSms接口

1 2 3
| public interface SendSms { boolean send(String phoneNum, String templateCode, Map<String,Object> code); }
|
创建实现包,编写SendSmsImpl实现类。将测试类的代码进行封装

编写SmsApiController控制类

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| @RestController @CrossOrigin public class SmsApiController {
@Autowired SendSms sendSms;
@Autowired RedisTemplate<String, String> redisTemplate;
@GetMapping("/send/{phone}") public String code(@PathVariable("phone") String phone) { String code = redisTemplate.opsForValue().get(phone); if (!StringUtils.isEmpty(code)) { return phone + ":" + code+"已经存在,还没过期"; }
code = UUID.randomUUID().toString().substring(0, 4); HashMap<String,Object> param = new HashMap<>(); param.put("code",code);
boolean flag = sendSms.send(phone, "SMS_191816503", param); if (flag){ redisTemplate.opsForValue().set(phone,code,5, TimeUnit.MINUTES); return phone + ":" + code+"发送成功!"; } return phone + ":" + code+"发送失败!"; } }
|
启动项目,进行测试。验证码5bed发送成功


redis中也能查询到相关的键值对!
