阿里云短信业务SMS
文章目录
- 1. 了解阿里云用户权限操作
- 2. 开通阿里云短信服务
- 3. 添加短信模板
- 4. 添加签名
- 5. 编写测试代码
- 6. 编写可复用的微服务接口,实现验证码的发送
1. 了解阿里云用户权限操作
添加用户组
点开用户组
点击权限管理
点击添加权限
点击用户
点击创建用户
在用户添加完成后,会弹出AccessKey和密码,要及时保存密码!!如果密码泄露,要及时删除AccessKey
- 开启子用户
- 新建用户组(设置添加权限sms)
- 创建一个用户(具体用来操作的账号)
- 得到AccessKey(id,密码)
2. 开通阿里云短信服务
**短信服务帮助文档:**https://help.aliyun.com/product/44282.html?spm=5176.12207334.0.0.5dd31cbeMp7fV1
计费规则
3. 添加短信模板
添加模板
需要审核!不能乱填
等审核通过后,我们会得到一个模板code
4. 添加签名
添加签名
选择验证码后,下面的内容就无需填写,申请说明要填写正当!!然后等待审核通过!
5. 编写测试代码
新建一个springboot项目
导入依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.3.0.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>cn.codewei</groupId><artifactId>smstest</artifactId><version>0.0.1-SNAPSHOT</version><name>smstest</name><description>Demo project for Spring Boot</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.0</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId></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-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
</project>
编写配置application.properties
server.port=8080
spring.redis.host=localhost
spring.redis.port=6379
编写测试类
@SpringBootTest
class SmstestApplicationTests {@Testvoid contextLoads() {// 连接阿里云DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "填写accesskey", "填写accesskey对应的密码");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("PhoneNumbers", "发送到的手机号");request.putQueryParameter("SignName","签名名称"); // 对应阿里云上申请的request.putQueryParameter("TemplateCode","模板code"); // 对应阿里云上申请的// 构建一个短信的验证码String str = UUID.randomUUID().toString().substring(0, 4);HashMap<String,Object> map = new HashMap<>();map.put("code",str);ObjectMapper mapper = new ObjectMapper();String json = null;try {json = mapper.writeValueAsString(map);} catch (JsonProcessingException e) {e.printStackTrace();}request.putQueryParameter("TemplateParam",json);try {// 发送,得到响应CommonResponse response = client.getCommonResponse(request);System.out.println(response.getData());} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}}}
6. 编写可复用的微服务接口,实现验证码的发送
编写接口
public interface SendSms {// 手机号 模板code 验证码public boolean send(String phoneNum, String templateCode, Map<String,Object> code);
}
编写实现类
@Service
public class SendSmsImpl implements SendSms {@Overridepublic boolean send(String phoneNum, String templateCode, Map<String, Object> code) {// 连接阿里云DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "填写accesskey", "accesskey对应的密码");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("PhoneNumbers", phoneNum);request.putQueryParameter("SignName","签名名称");request.putQueryParameter("TemplateCode",templateCode);// 构建一个短信的验证码ObjectMapper mapper = new ObjectMapper();String json = null;try {json = mapper.writeValueAsString(code);} catch (JsonProcessingException e) {e.printStackTrace();}request.putQueryParameter("TemplateParam",json);try {// 发送CommonResponse response = client.getCommonResponse(request);System.out.println(response.getData());// 返回响应是否成功return response.getHttpResponse().isSuccess();} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}return false;}
}
编写Controller
@RestController
@CrossOrigin // 跨域支持
public class SendSmsController {@Autowiredprivate SendSms sendSms;@Autowiredprivate RedisTemplate<String,String> redisTemplate;@RequestMapping("/sendSms/{phone}")public String sendSms(@PathVariable("phone") String phone){String code = redisTemplate.opsForValue().get(phone);if (!StringUtils.isEmpty(code)){return "当前验证码还没过期,请及时填写!";}String str = UUID.randomUUID().toString().substring(0, 4);HashMap<String,Object> map = new HashMap<>();map.put("code",str);boolean send = sendSms.send(phone, "SMS_190272542", map);if (send){redisTemplate.opsForValue().set(phone,str,5, TimeUnit.MINUTES);return "发送成功";}else {return "发送失败";}}
}
阿里云短信业务SMS相关推荐
- uniapp引入阿里云短信业务
主要分为3大部分 1.配置阿里云短信业务 2.uniapp手机登录模块设计以及信息提交 3.后端接收手机登录信息,反馈登录结果 ...
- 【阿里云短信服务SMS】使用阿里云发送短信
使用阿里云发送短信 前期准备工作 1.添加签名 2.添加短信模板 3.创建子用户,得到密钥:AccessKeyId和 AccessKeySecret 4.给子用户添加权限 5.收集好之前步骤中的4个关 ...
- 阿里云短信服务--SMS
官方文档: 产品简介 (aliyun.com)https://help.aliyun.com/document_detail/55287.html具体代码操作: 1.导入Jar包 <!-- 阿里 ...
- SpringBoot阿里云短信业务实战
狂神说Java:https://www.bilibili.com/video/BV1c64y1M7qN 阿里云短信服务帮助文档:https://help.aliyun.com/product/4428 ...
- 如何开通阿里云短信业务
目录 1.登录阿里云 2.配置短信业务 3.给用户授权 4.创建短信签名 5.申请模板 1.登录阿里云 登录成功之后,搜索短信服务 点击管理控制台,选择:已阅读协议,然后立即开通 2.配置短信业务 开 ...
- 阿里云短信服务SMS
1.进入控制台后,把鼠标放在头像上然后点击access key管理 2.新建用户组 3.添加用户 4.给用户组添加权限 5.将用户添加到用户组 6.进入短信服务界面 7.添加签名 8.添加模板 ps: ...
- 尚融宝——阿里云短信验证功能(sms)
一.整合微服务 创建service-sms微服务 添加依赖: <!--阿里云短信--><dependency><groupId>com.aliyun</gro ...
- SpringBoot-短信验证码-快速入门Demo(含redis)(手把手教你开通阿里云短信服务到写出个最终代码来)
B站小狂神-此博客的内容就是看了这个视频的总结(博主自己写的哦~并非转载) 视频链接-[狂神说]通俗易懂的阿里云短信业务实战教程(露脸) 您是否还在为别人的项目有短信功能自己的却没有? 您是否还在为自 ...
- 尚融宝15-集成阿里云短信服务
目录 一.前言 二.测试短信发送 1.查找使用示例 2.测试短信发送 编辑 三.使用RAM子用户 1.进入子用户管理页面 2.添加用户 3.获取子用户key 4.设置用户权限 四.短信使用场景和流程 ...
最新文章
- 基于线段的激光雷达和单目联合曲面重建
- 分区和分片的区别_数据库的分表、分库、分片和分区等区别
- C# 集合类(三):Stack
- readonly和disabled的区别!
- [Leedcode][JAVA][第466题][统计重复个数][数组]
- 计算机的硬件发展趋势为,高性能计算机的发展趋势
- pillow python 划线_Python-PIL(pillow)图片处理入门(一)
- C语言学习笔记---指针
- PyCharm快捷键总结
- CVPR 新规严禁审稿期间公开宣传论文,可发 arXiv,LeCun:疯了吧!
- 微型计算机音乐发生器,基于51单片机的音乐发生器的设计最终版(全文完整版)...
- 【Linux】一个小故事让你秒懂shell外壳程序
- 我的java学习心得
- android怎么oauth2公版认证,Android中腾讯微博OAuth认证(一)---获取RequestToken
- Origin 2017安装教程(附有下载链接)
- 【物联网】物联网关键技术与应用分析
- Bing Maps-----微软
- xilinx中pll的使用与仿真步骤
- gd32f103 调试 ad7606
- WIN10安装与升级的方法