1.引入阿里云的包

<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.3.3</version>
</dependency>

2.编写发送短信的工具类

package com.goodwe.message.Utils;import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;/*
pom.xml
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.0.3</version>
</dependency>
*/
public class MessageUtil {/*** @Description //验证阿里云开发者身份**/DefaultProfile profile = DefaultProfile.getProfile("default", "LTAI41s7UdycZniy", "HngXYiuYNWWPfBjCbHNQZuwhqtwDjQ");IAcsClient client = new DefaultAcsClient(profile);public String SendMessage(String PhoneNumbers){CommonRequest request = new CommonRequest();//request.setSysProtocol(ProtocolType.HTTPS);request.setSysMethod(MethodType.POST);request.setSysDomain("dysmsapi.aliyuncs.com");request.setSysVersion("2017-05-25");request.setSysAction("SendSms");request.putQueryParameter("PhoneNumbers", PhoneNumbers);//接受验证码的手机号request.putQueryParameter("SignName", "北极光游戏平台");//签名request.putQueryParameter("TemplateCode", "SMS_149100495");//模板代码request.putQueryParameter("TemplateParam", "{code:"+((int) (Math.random() * 9000 + 1000))+"}");//用户定义的验证码内容try {CommonResponse response = client.getCommonResponse(request);String returnstr = response.getData();System.out.println(returnstr);JSONObject returnjsonstr = JSONObject.parseObject(returnstr);return returnjsonstr.getString("Message");//返回的信息} catch (ServerException e) {return e.getErrMsg();} catch (ClientException e) {return e.getErrMsg();}};//查询发送信息public   String QuerySendDetails(String PhoneNumber,String SendDate,String PageSize,String CurrentPage){CommonRequest request = new CommonRequest();//request.setSysProtocol(ProtocolType.HTTPS);request.setSysMethod(MethodType.POST);request.setSysDomain("dysmsapi.aliyuncs.com");request.setSysVersion("2017-05-25");request.setSysAction("QuerySendDetails");request.putQueryParameter("PhoneNumber", PhoneNumber);request.putQueryParameter("SendDate", SendDate);request.putQueryParameter("PageSize", PageSize);request.putQueryParameter("CurrentPage", CurrentPage);try {CommonResponse response = client.getCommonResponse(request);String returnstr = response.getData();System.out.println(returnstr);JSONObject returnjsonstr = JSONObject.parseObject(returnstr);return returnjsonstr.getString("Message");} catch (ServerException e) {return e.getErrMsg();} catch (ClientException e) {return e.getErrMsg();}}}

3.调用工具

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@Controller
@RequestMapping("/message")
public class MessageController {@RequestMapping("/send")public String send() {return "/message";}@RequestMapping(value = "/sendcode",method = RequestMethod.POST)public void sendcode(String number, HttpServletResponse response) {MessageUtil messageUtil = new MessageUtil();try {response.getWriter().write(messageUtil.SendMessage(number));} catch (IOException e) {e.printStackTrace();}}
}

4.前端页面

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<header><meta charset="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="viewport" content="width=device-width, initial-scale=1"/><title th:text=" 发送验证码"></title><link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>
</header>
<body>
<div style="width: 500px;height: auto;margin: auto"><div style="text-align: center;margin: 30px"><h3>发送验证码</h3></div><div><div class="form-group"><label for="Number">填写手机号码</label><div><input style="float: left;width: 80%" type="text" class="form-control" id="Number" ><button style="float: right;width: 20%" type="button" th:οnclick="'javascript:send()'" class="btn btn-default" >Send</button></div></div><div id="returnstr" style="margin: 50px auto;"></div></div>
</div>
</div>
<script type="text/javascript">send = function () {$('#returnstr').html("");jQuery.ajax({type: "POST",url: "sendcode",data: {"number":jQuery("#Number").val()},success: function (data) {console.log(data)jQuery("#returnstr").append(" </br><span style='margin:10px auto;border:-1px;background:#00FFFF;border-color:#00f' type='text'  >" + data + "</span>");},error: function (xhr, status, error) {console.log(xhr);console.log(status);console.log(error);}});jQuery("#Number").val("")}</script>
</body>
</html>

转载于:https://my.oschina.net/u/4100033/blog/3041742

Springboot中使用阿里云短信验证码服务相关推荐

  1. 【Node.js】 调用阿里云短信验证码服务

    目录 1.获取必备的参数 ① 获取 AccessKey ② 获取签名名称和短信模板 code 2.写代码 ① 调用sdk ② 生成六位数验证码 ③ 拿到前端传过来的手机号,调用 API 发送短信 ④ ...

  2. 超详细的阿里云短信验证码服务接入流程(最新版)——包含工具类可直接使用(java)

    一.使用步骤 1.申请阿里云账号并认证 链接地址:https://www.aliyun.com/product/sms 2.创建一个新的AccessKeys 包含AccessKey ID 和Acces ...

  3. 阿里云短信验证码服务

    1.开通服务 ​​​​​​短信服务_企业短信营销推广_验证码通知-阿里云 2.申请签名管理和模板管理 3.添加依赖 <dependencies><dependency>< ...

  4. 阿里云短信验证码服务使用(java ssm为例)

    注册并登陆阿里云账号 不知道到网址的点击此处 添加模板 填写签名,选择适用场景为验证码 ps:签名为验证码签名的标签,[阿里云]验证号码为000000,那个阿里云就是签名(适用场景为通用需要填写企业信 ...

  5. springboot 使用shiro集成阿里云短信验证码

    目录 1.阿里云短信验证码服务 2.发送短信验证码 3.shiro配置多个realm 4.验证短信验证码 5.一些修改思路 引言:短信验证码是通过发送验证码到手机的一种有效的验证码系统,主要用于验证用 ...

  6. 阿里云短信验证码实战

    一.创建阿里云短信权限用户 1.登陆阿里云之后我们点击头像,接着点击AccessKey: 2.选择开始使用子用户 : 3.我们先要创建一个用户组: 4.依次点击新建的用户组--授权管理,给用户组授权, ...

  7. 使用阿里云短信验证码API发送短信验证码(配置,获取短信验证码,注册,登录,密码重置)

    获取阿里云短信验证码需要的配置信息. 如果是新用户,可以免费领取3个月,老用户的话就只能购买了,但是也不贵. 申请短信签名 申请短信模板 编写发送短信验证码的工具类 代码中我已经进行了详细的注释,也写 ...

  8. 【阿里云短信验证码】麻瓜教程~~~从注册---申请---代码---执行

    阿里云短信验证码 当然啦,学习任何东西第一步就是去注册当前网站的账号. 阿里云的官网:https://www.aliyun.com/?utm_content=se_1008364713 ◆[1.先注册 ...

  9. C# ASP.NET MVC 阿里云短信验证码Demo

    相信大家在开发过程中又很多使用到验证码验证的功能,今天将验证码的验证整理一下写了一个Demo 通过本篇后你能学习到: 阿里云短信服务 Drapper连接SQL Server进行增改操作 JS前端倒计时 ...

最新文章

  1. Measurements 和 Units,第三部分
  2. PHP 端口号 是否 被占用 以及 解决方法
  3. Linux中的防火墙----iptables
  4. Web上的支持的图片格式以及它们之间的区别
  5. mysql 日期_「13」MySQL中与日期与时间相关的函数
  6. vue安装axios以及如何使用axios
  7. geotoolkit 测井曲线显示时间、深度双刻度
  8. 华为自带时钟天气下载_华为天气时钟农历插件,求华为自带的天气时钟
  9. STM32F103_study67_The punctual atoms(STM32 OLED display experiment)
  10. 后退N帧协议中发送窗口的尺寸大小
  11. 关于Keil debug 出现cannot access target shutting down debug session 错误提示
  12. 给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)
  13. TF卡里删掉文件后内存没变大_双11,TF卡,SD卡,读卡器如何选,看这篇就够了...
  14. 阿里云--实人认证的接口
  15. zoj_3326_An Awful Problem(日期模拟)
  16. 电子计算机的基本思想,冯-诺依曼原理的基本思想
  17. 特斯拉降价最高64万原来是为了它,马斯克宣布三月份发布新品Model Y特斯拉电动车
  18. 智慧检务大数据平台 电子检务大数据整体解决方案解决方案
  19. 天津工业大学计算机学院教务处,天津工业大学教务管理系统入口http://jwc.tjpu.edu.cn/...
  20. Centos 7 ngrok服务器搭建

热门文章

  1. [深度学习] (sklearn)多层感知机对葡萄酒的分类
  2. 计算机会计与手工会计的区别与联系,会计电算化与手工会计的差异和共同点各是什么...
  3. export ‘createStore‘ (imported as ‘createStore‘) was not found in ‘./store/index.js‘ (possible expor
  4. Git入门、gitHub、gitee、gitLab远程库的学习和集成IDEA
  5. Pycharm专业版安装详细教程!
  6. 介绍个人计算机水平,计算机个性自我介绍范文
  7. matlab 求对称,matlab-线性代数 判断 矩阵的对称、实对称、反对称
  8. NTCUTTER BD-1002013年新包装通知
  9. PyCharm下载插件失败解决方法
  10. 打印当前python文件出错行