Springboot下实现阿里云短信验证功能

一 开通阿里云短信服务

  • 阿里云官网注册登录

  • 找到短信服务并开通

  • 打开短信服务的管理台

  • 在国内消息那栏中添加签名管理和模板管理(按照格式要求去写)

  • 在右上角的用户信息里有AccessKey管理(里面的信息后续要用并且需要妥善保存)

  • 短信服务的帮助文档里有相关Maven依赖和示例

二 代码

pom.xml

    <dependencies>

        <dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.62</version>
</dependency> <dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</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>

实现的工具类

其中需要修改的一些参数已经标出

package com.zbw.demo;

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import net.minidev.json.JSONObject;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import java.rmi.ServerException;
import java.util.HashMap; @SpringBootTest
class DemoApplicationTests {
@Test
void contextLoads() {
//连接
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "你的AccessKeyid", "你的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");
//构建验证码
HashMap<String, Object> map = new HashMap<>();
map.put("code", 这里写你想要给手机上发的验证码);
request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map));
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ClientException e) {
e.printStackTrace();
} }
}

三 后续

  • 阿里云官方文档中的Demo其实已经介绍的很详细了,建议去看.
  • 添加依赖时要注意版本号

最新文章

  1. 游走 bzoj 3143
  2. Canvas 内部元素添加事件处理
  3. C#学习笔记:泛型委托Action&lt;T&gt;和Fun&lt;TResult&gt;
  4. 1628. White Streaks(STL)
  5. 【IIS小技巧】将IIS Express改成可以通过ip地址访问
  6. Entity Framework Code First学习系列
  7. Smarty练习增删改
  8. matplotlib绘图基本用法-转自(http://blog.csdn.net/mao19931004/article/details/51915016)
  9. 4,postman和newman的联合使用
  10. 命令行方式登录PostgreSQL
  11. AS3中的getChildByName
  12. 74.CocoaPods安装和使用教程
  13. VMWare虚拟机中CPU过高的问题
  14. [Big Data - ZooKeeper] ZooKeeper: A Distributed Coordination Service for Distributed Applications
  15. MacTex TexStudio Configuration 配置
  16. Swiper.js的腾讯新闻演示
  17. Java8 Stream语法详解 2
  18. centos6.5下yum安装mysql5.5
  19. 使用 PropTypes 进行类型检查
  20. 0517 SCRUM团队项目4.0

热门文章

  1. 如何解决ubuntu 12.04重启后出现waiting for network configuration和网络标志消失问题
  2. 源码分析(2)-LinkedHashMap(JDK1.8)
  3. Vue-Cli4.x配置文件路径别名
  4. Vue可响应式数组方法
  5. Ement 学习
  6. HttpClient 常用方法封装
  7. SQL Beautifier &amp; SQL2014自带的格式化工具
  8. 全网最完整的Redis入门指导
  9. TensorFlow从0到1之浅谈深度学习(10)
  10. 多语言工作者の十日冲刺&lt;8/10&gt;