文章目录

  • 1. 了解阿里云用户权限操作
  • 2. 开通阿里云短信服务
  • 3. 添加短信模板
  • 4. 添加签名
  • 5. 编写测试代码
  • 6. 编写可复用的微服务接口,实现验证码的发送

1. 了解阿里云用户权限操作

添加用户组

点开用户组

点击权限管理

点击添加权限

点击用户

点击创建用户

在用户添加完成后,会弹出AccessKey和密码,要及时保存密码!!如果密码泄露,要及时删除AccessKey

  1. 开启子用户
  2. 新建用户组(设置添加权限sms)
  3. 创建一个用户(具体用来操作的账号)
  4. 得到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相关推荐

  1. uniapp引入阿里云短信业务

                                        主要分为3大部分 1.配置阿里云短信业务 2.uniapp手机登录模块设计以及信息提交 3.后端接收手机登录信息,反馈登录结果 ...

  2. 【阿里云短信服务SMS】使用阿里云发送短信

    使用阿里云发送短信 前期准备工作 1.添加签名 2.添加短信模板 3.创建子用户,得到密钥:AccessKeyId和 AccessKeySecret 4.给子用户添加权限 5.收集好之前步骤中的4个关 ...

  3. 阿里云短信服务--SMS

    官方文档: 产品简介 (aliyun.com)https://help.aliyun.com/document_detail/55287.html具体代码操作: 1.导入Jar包 <!-- 阿里 ...

  4. SpringBoot阿里云短信业务实战

    狂神说Java:https://www.bilibili.com/video/BV1c64y1M7qN 阿里云短信服务帮助文档:https://help.aliyun.com/product/4428 ...

  5. 如何开通阿里云短信业务

    目录 1.登录阿里云 2.配置短信业务 3.给用户授权 4.创建短信签名 5.申请模板 1.登录阿里云 登录成功之后,搜索短信服务 点击管理控制台,选择:已阅读协议,然后立即开通 2.配置短信业务 开 ...

  6. 阿里云短信服务SMS

    1.进入控制台后,把鼠标放在头像上然后点击access key管理 2.新建用户组 3.添加用户 4.给用户组添加权限 5.将用户添加到用户组 6.进入短信服务界面 7.添加签名 8.添加模板 ps: ...

  7. 尚融宝——阿里云短信验证功能(sms)

    一.整合微服务 创建service-sms微服务 添加依赖: <!--阿里云短信--><dependency><groupId>com.aliyun</gro ...

  8. SpringBoot-短信验证码-快速入门Demo(含redis)(手把手教你开通阿里云短信服务到写出个最终代码来)

    B站小狂神-此博客的内容就是看了这个视频的总结(博主自己写的哦~并非转载) 视频链接-[狂神说]通俗易懂的阿里云短信业务实战教程(露脸) 您是否还在为别人的项目有短信功能自己的却没有? 您是否还在为自 ...

  9. 尚融宝15-集成阿里云短信服务

    目录 一.前言 二.测试短信发送 1.查找使用示例 2.测试短信发送 ​编辑 三.使用RAM子用户 1.进入子用户管理页面 2.添加用户 3.获取子用户key 4.设置用户权限 四.短信使用场景和流程 ...

最新文章

  1. 基于线段的激光雷达和单目联合曲面重建
  2. 分区和分片的区别_数据库的分表、分库、分片和分区等区别
  3. C# 集合类(三):Stack
  4. readonly和disabled的区别!
  5. [Leedcode][JAVA][第466题][统计重复个数][数组]
  6. 计算机的硬件发展趋势为,高性能计算机的发展趋势
  7. pillow python 划线_Python-PIL(pillow)图片处理入门(一)
  8. C语言学习笔记---指针
  9. PyCharm快捷键总结
  10. CVPR 新规严禁审稿期间公开宣传论文,可发 arXiv,LeCun:疯了吧!
  11. 微型计算机音乐发生器,基于51单片机的音乐发生器的设计最终版(全文完整版)...
  12. 【Linux】一个小故事让你秒懂shell外壳程序
  13. 我的java学习心得
  14. android怎么oauth2公版认证,Android中腾讯微博OAuth认证(一)---获取RequestToken
  15. Origin 2017安装教程(附有下载链接)
  16. 【物联网】物联网关键技术与应用分析
  17. Bing Maps-----微软
  18. xilinx中pll的使用与仿真步骤
  19. gd32f103 调试 ad7606
  20. WIN10安装与升级的方法

热门文章

  1. VisualVM使用方法
  2. 老笔记本机械硬盘换固态装系统,再战10年!
  3. Eclipse 使用与配置
  4. c语言程序无法打开文件,C语言fopen()总是提示无法正常打开文件
  5. [02] 微信公众帐号开发教程第2篇-微信公众帐号的类型(普通和会议)
  6. DebugView无法显示调试信息问题
  7. 新同事上来就优化了一遍MySQL索引和查询,老板人傻了。。。
  8. Pr入门学习之选择GPU加速
  9. Uaexpert操作手册
  10. Java基础: contains方法的用法