Springboot中使用阿里云短信验证码服务
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中使用阿里云短信验证码服务相关推荐
- 【Node.js】 调用阿里云短信验证码服务
目录 1.获取必备的参数 ① 获取 AccessKey ② 获取签名名称和短信模板 code 2.写代码 ① 调用sdk ② 生成六位数验证码 ③ 拿到前端传过来的手机号,调用 API 发送短信 ④ ...
- 超详细的阿里云短信验证码服务接入流程(最新版)——包含工具类可直接使用(java)
一.使用步骤 1.申请阿里云账号并认证 链接地址:https://www.aliyun.com/product/sms 2.创建一个新的AccessKeys 包含AccessKey ID 和Acces ...
- 阿里云短信验证码服务
1.开通服务 短信服务_企业短信营销推广_验证码通知-阿里云 2.申请签名管理和模板管理 3.添加依赖 <dependencies><dependency>< ...
- 阿里云短信验证码服务使用(java ssm为例)
注册并登陆阿里云账号 不知道到网址的点击此处 添加模板 填写签名,选择适用场景为验证码 ps:签名为验证码签名的标签,[阿里云]验证号码为000000,那个阿里云就是签名(适用场景为通用需要填写企业信 ...
- springboot 使用shiro集成阿里云短信验证码
目录 1.阿里云短信验证码服务 2.发送短信验证码 3.shiro配置多个realm 4.验证短信验证码 5.一些修改思路 引言:短信验证码是通过发送验证码到手机的一种有效的验证码系统,主要用于验证用 ...
- 阿里云短信验证码实战
一.创建阿里云短信权限用户 1.登陆阿里云之后我们点击头像,接着点击AccessKey: 2.选择开始使用子用户 : 3.我们先要创建一个用户组: 4.依次点击新建的用户组--授权管理,给用户组授权, ...
- 使用阿里云短信验证码API发送短信验证码(配置,获取短信验证码,注册,登录,密码重置)
获取阿里云短信验证码需要的配置信息. 如果是新用户,可以免费领取3个月,老用户的话就只能购买了,但是也不贵. 申请短信签名 申请短信模板 编写发送短信验证码的工具类 代码中我已经进行了详细的注释,也写 ...
- 【阿里云短信验证码】麻瓜教程~~~从注册---申请---代码---执行
阿里云短信验证码 当然啦,学习任何东西第一步就是去注册当前网站的账号. 阿里云的官网:https://www.aliyun.com/?utm_content=se_1008364713 ◆[1.先注册 ...
- C# ASP.NET MVC 阿里云短信验证码Demo
相信大家在开发过程中又很多使用到验证码验证的功能,今天将验证码的验证整理一下写了一个Demo 通过本篇后你能学习到: 阿里云短信服务 Drapper连接SQL Server进行增改操作 JS前端倒计时 ...
最新文章
- Measurements 和 Units,第三部分
- PHP 端口号 是否 被占用 以及 解决方法
- Linux中的防火墙----iptables
- Web上的支持的图片格式以及它们之间的区别
- mysql 日期_「13」MySQL中与日期与时间相关的函数
- vue安装axios以及如何使用axios
- geotoolkit 测井曲线显示时间、深度双刻度
- 华为自带时钟天气下载_华为天气时钟农历插件,求华为自带的天气时钟
- STM32F103_study67_The punctual atoms(STM32 OLED display experiment)
- 后退N帧协议中发送窗口的尺寸大小
- 关于Keil debug 出现cannot access target shutting down debug session 错误提示
- 给定数字0-9各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意0不能做首位)
- TF卡里删掉文件后内存没变大_双11,TF卡,SD卡,读卡器如何选,看这篇就够了...
- 阿里云--实人认证的接口
- zoj_3326_An Awful Problem(日期模拟)
- 电子计算机的基本思想,冯-诺依曼原理的基本思想
- 特斯拉降价最高64万原来是为了它,马斯克宣布三月份发布新品Model Y特斯拉电动车
- 智慧检务大数据平台 电子检务大数据整体解决方案解决方案
- 天津工业大学计算机学院教务处,天津工业大学教务管理系统入口http://jwc.tjpu.edu.cn/...
- Centos 7 ngrok服务器搭建
热门文章
- [深度学习] (sklearn)多层感知机对葡萄酒的分类
- 计算机会计与手工会计的区别与联系,会计电算化与手工会计的差异和共同点各是什么...
- export ‘createStore‘ (imported as ‘createStore‘) was not found in ‘./store/index.js‘ (possible expor
- Git入门、gitHub、gitee、gitLab远程库的学习和集成IDEA
- Pycharm专业版安装详细教程!
- 介绍个人计算机水平,计算机个性自我介绍范文
- matlab 求对称,matlab-线性代数 判断 矩阵的对称、实对称、反对称
- NTCUTTER BD-1002013年新包装通知
- PyCharm下载插件失败解决方法
- 打印当前python文件出错行