springBoot-JMS之手机短信验证码-阿里云

springboot集成阿里云短信验证码登录注册:一 现在的网站、app选用短信验证登录已经成常态。我选用的是阿里的短信云。大多数短信云都是大同小异,会了一种其他都应该没什么问题。 首先我们要在阿里云购买短信(节假日有活动可以免费领100条)。 阿里云官网:https://www.aliyun.com/product/sms?spm=5176.12825654.1kquk9v2l.1.3dbd2c4aEisVe1&aly_as=5nedLo4... 阅读详情

**

话不多说,直接撸代码。

	**1.建立工具类**
		1.需要依赖
		2.配置文件
		3.工具类
		4.编写接收类
		5.编写启动类
	**2.建立测试类**
	 	1.依赖
	 	2.配置文件
	 	3.编写接收类
		4. 编写启动类		 	

**

1.1需要的依赖。

	
	<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>3.2.5</version>
        </dependency>
    </dependencies>

1.2配置文件

#设置端口
server.port=9003  
#虚拟机IP
spring.activemq.broker-url=tcp://192.168.200.128:61616

#产品密钥,自动生成=》www.alidayu.com -》请读者自行注册
#注:这里的键的首字母一定是小写,写大写会报缺少键的异常
accessKeyId=********
accessKeySecret=***************

1.3工具类【模板,不需要修改,阿里云提供,复制粘贴即用】

import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

@Component
public class SmsUtil {

    //产品名称:云通信短信API产品,开发者无需替换
    static final String product = "Dysmsapi";
    //产品域名,开发者无需替换
    static final String domain = "dysmsapi.aliyuncs.com";

    @Autowired
    private Environment env;

// TODO 此处需要替换成开发者自己的AK(在阿里云访问控制台寻找)

    /**
     * 发送短信
     * @param mobile 手机号
     * @param template_code 模板号
     * @param sign_name 签名
     * @param param 参数
     * @return
     * @throws ClientException
     */
    public SendSmsResponse sendSms(String mobile,String template_code,String sign_name,String param) throws ClientException {

        String accessKeyId =env.getProperty("accessKeyId");
        String accessKeySecret = env.getProperty("accessKeySecret");

//可自助调整超时时间
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");

//初始化acsClient,暂不支持region化
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
        DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        IAcsClient acsClient = new DefaultAcsClient(profile);

//组装请求对象-具体描述见控制台-文档部分内容
        SendSmsRequest request = new SendSmsRequest();
//必填:待发送手机号
        request.setPhoneNumbers(mobile);
//必填:短信签名-可在短信控制台中找到
        request.setSignName(sign_name);
//必填:短信模板-可在短信控制台中找到
        request.setTemplateCode(template_code);
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
        request.setTemplateParam(param);

//选填-上行短信扩展码(无特殊需求用户请忽略此字段)
//request.setSmsUpExtendCode("90997");

//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
        request.setOutId("yourOutId");

//hint 此处可能会抛出异常,注意catch
        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);

        return sendSmsResponse;
    }

}

1.4 接收类【也是模板类型,复制粘贴即用】

import cn.hs.core.util.SmsUtil;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
import java.util.Map;

@Component
public class SmsListener {
    @Autowired
    private SmsUtil smsUtil;
    @JmsListener(destination = "sms")
    public void sendSms(Map<String,String> map){
        try{
            /**
             *模板编号:请登录:www.alidayu.com 注册获取
             * sign_name:请登录:www.alidayu.com 注册获取
             * param:请登录:www.alidayu.com 注册获取【可以自己设置,也可以使用阿里提供的模板】
             */

            SendSmsResponse response = smsUtil.sendSms(
                    /**
                     * 中间数据的传输使用MAP集合
                     */
                    //获取手机号码
                    map.get("mobile"),//手机号码=》mobile:要和测试类里保持一致
                    //获取模板签名
                    map.get("template_code"),//模板编号=》template_code:要和测试类里保持一致【键名】
                    //获取签名
                    map.get("sign_name"),//签名=》sign_name:要和测试类里保持一致【键名】
                   //获取短信模板内容
                    map.get("param")  );// 短信内容=》param:要和测试类里保持一致【键名】
            /**
             * 下面的是输出打印结果,可以需要,也可以不需要
             */
            System.out.println("Code=" + response.getCode());
            System.out.println("Message=" + response.getMessage());
            System.out.println("RequestId=" + response.getRequestId());
            System.out.println("BizId=" + response.getBizId());

        }catch (ClientException e){
            e.printStackTrace();
        }

    }
}

1.5 启动类,这个测试时必须要先运行

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

2编写测试类

2.1需要的依赖文件

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.0.RELEASE</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-activemq</artifactId>
        </dependency>
    </dependencies>

2.2编写配置文件

#设置tomcat端口
server.port=8088
#我的虚拟机Ip
spring.activemq.broker-url=tcp://192.168.200.128:61616


2.3 编写发送类

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/testJms")
public class SmsTest {

    @Autowired
    private JmsMessagingTemplate jmsMessagingTemplate;

    @RequestMapping("/sendSms")
    public void sendSms(){
        Map map = new HashMap();
        /**
         * 下面的参数要和接收类的键值保持一致
         * 模板编号+签名==》请读者去www.alidayu.com 注册获取。
         */
        map.put("mobile","接收短信的手机号");
        map.put("template_code","模板编号");
        map.put("sign_name","签名");
        map.put("param","{\"code\":\"验证码\"}");
        jmsMessagingTemplate.convertAndSend("sms",map);
    }
}

2.4 编写启动类

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ApplicationTest {
    public static void main(String[] args) {
        SpringApplication.run(ApplicationTest.class,args);
    }
}

注:一定要写启动接受类,在启动发送类,然后访问测试类路径

末尾注释:有的小伙伴是不是不知道阿里的注册流程,推荐一篇文章:https://blog.youkuaiyun.com/Afflatus_f/article/details/102630352 =》狗凡的文章。
这里面有注册流程,需要的小伙伴可以看一下哦!
注:阿里网站域名:www.alidayu.com 可以去访问哦。

基于阿里云平台的短信验证码服务API的使用 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zFPMo9Zx-1685977020060)(file:///C:/Users/hgy04/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg)]如果是个人作业项目(如作者的签名),可以直接申请测试和学习用的测试签名,该签名的缺点是必须绑定测试手机号,才能向该手机号发送验证码,且测试手机号最多五个。第二步:申请国内文本短信签名。第六步:创建用户组并创建用户。 阅读详情

相关推荐

Springboot短信验证码(无需企业商户认证)

1、进入阿里云市场购买第三方短信接口 先进入阿里云市场 注意是云市场 搜索,短信 在下方选择一个短信服务,因为是第三方云市场而不是个人商户认证,所以短信的模板不是自己随心所欲的定义的 购买短信服务(0元5次体验) 0元体验5次,或者花钱购买更多次数也行 购买完毕之后,查看“已经购买的服务” 购买的服务中有三个参数(配置的时候有用) Appkey AppSecret AppCode 2、准备在代码端进行配置 首先点开刚刚购买的服务,参考API接口 这个页面往下翻 得到如图

hhb442的博客 3578

SpringBoot实现阿里云手机短信验证码

Java实现手机短信验证码 阿里云开启短信服务 进入短信服务 新建AccessKey (不要外传) 账号:xxx 密码:xxx 后期代码授权要使用到 添加签名和模板 签名发送信息的头,一般是项目名或者公司名称,会加到短信内容的前面 模板指发送到手机上的验证码正文内容 验证码短信:签名+模板 都需要申请的: 购买套餐测试,发送效果如下: 依赖 <dependency> <groupId>com.aliyun</groupId> <artifa

qq_43409401的博客 525

5款免费二进制编辑器横向评测:从HxD到ImHex谁更适合你?

本文对5款免费二进制编辑软件进行深度横向评测,包括HxD、wxHexEditor、010 Editor、ImHex和GNU Emacs,涵盖从轻量级到专业级的各种需求。评测基于文件处理能力、编辑功能、分析工具等核心维度,为开发者、逆向工程师和安全研究人员提供实用选择指南,帮助用户根据具体场景选择最适合的二进制编辑工具。

weixin_29278805的博客 371

spring boot中如何实现在手机注册和登录时获取验证码(阿里短信服务)

为了实现在手机注册和登录时获取手机验证码,我使用了阿里的短信服务,下面就来介绍一下具体如何实现。将介绍代码层面如何使用的,去阿里开通该服务,以及如何获得你的accessKeyId和accessKeySecret等。 一、在pom.xml中引入阿里的短信服务依赖 <dependency> <groupId>co...

jiankang66的博客 1万+

RDM协议控制端实战:从数据包构造到高效设备发现算法

本文深入探讨了RDM协议控制端的核心开发流程,涵盖从数据包构造、发送到响应解析的全过程。重点解析了如何利用二分搜寻算法高效实现网络设备发现,并分享了组包、解包中的关键代码实现与常见调试技巧,为舞台灯光与智能硬件领域的嵌入式开发提供实战指导。

week9的博客 457

病理图像处理个人手札(三)WSI & MIL

1.什么是WSI? WSI全称是Whole Slide Image,也就是全视野数字切片,主要应用在病理学细胞图像领域。WSI 是利用数字扫描仪对传统的病理切片进行扫描,采集具有高分辨率的数字图像,再通过计算机将得到的碎片化图像进行无缝拼接整合,制作可视化数字图像的一项技术。与传统载玻片相比,很好地解决了传统的玻璃切片易损坏、易褪色、易丢片、检索困难的问题。 一言以蔽之,WSI是对传统载玻片进行数字化。 由于是全视野,因此它将包含多尺度的切片在一个文件上面。因此WSI将使用到金字塔模型满足其支持不同分辨率的

baiweizeng的博客 1万+

springboot使用阿里云短信

阿里云给咱们提供了短信的功能,首先如果咱们要发送短信是要有短信的一个模板的,还有一个签名,以及咱们账号的accessKeyId,和accessKeySecret,知道这些参数咱们才好去做一个发送短信的功能,当然啦,咱们开通了阿里云的短信服务,这些参数都会有的窝~ 我已经提前封装好工具类啦,直接调用就好啦~为了代码更加的简洁,所以我还创建了一个entity用来作为咱们工具类方法的一个参数,让咱们的方法更加的简洁。 当然啦第一步还是导入咱们的依赖: &lt...

gloamer的博客 716

【吃瓜教程】周志华西瓜书课后习题第一章答案

第一章 1.1表1.1中若只包含编号为1和4的两个样例,试给出相应的版本空间。 编号 色泽 根蒂 敲声 好瓜(标记) 1 青绿 蜷缩 浊响 是Y 4 乌黑 稍蜷 沉闷 否N 知识储备: 假设空间: 所有假设组成的空间 版本空间:与训练集一致的假设集合 从假设空间到版本空间算法大致如下: 1.删除与正例不一致的假设且删除与反例一致的假设 2.删除与正例不一致的假设 3.删除与反例一致的假设 具体选择哪种

MaxQuYY的博客 8370

Springboot手机验证码

https://zhuanlan.zhihu.com/p/87147229-Springboot手机验证码

一清道长的个人博客 408

人形机器人人机交互解决方案(2026完整版)

《人形机器人人机交互解决方案(2026完整版)》摘要 本项目针对2026年人形机器人产业爆发式增长需求,提出了一套完整的人机交互解决方案。方案包含十大核心模块(语音识别、情感识别、手势识别等),采用五层架构设计,实现多模态融合交互,响应时间≤32ms,准确率≥99%。覆盖制造业巡检、家庭服务等10大场景,适配20+主流机型。项目总投资4.1亿元,预期年营收8.2亿元,将申请专利120项,培养专业人才300人。通过技术创新解决当前交互体验生硬、安全可控性不足等痛点,助力我国人形机器人产业实现从"跟跑

随读手记 776

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别。

qq_30713721的博客 3471

springboot实现短信的发送平台 阿里云(二)

springboot实现短信的发送平台 阿里云(二) 项目结构如下 这里写的是服务层service的实现类,使用zookeeper实现分布式架构,项目发布后在zookeeper中注册,实现controller层项目的跨服调用 上代码: 实现类UserServiceImpl package cn.ysj.core.service; import cn.ysj.core.dao.user.Us...

ysj1241267542的博客 351

以 DeleteRestrictions 与 inlineDelete 为核心的 Fiori Elements 表格删除机制全解

SAP Fiori elements 中删除操作的设计与实现涉及多维度考量。框架默认依据 OData 元数据判断删除能力,通过 DeleteRestrictions 注解实现行级条件控制(deletable-path)。表格支持两种删除模式:工具栏集中删除与响应式表格行内删除,但二者不建议混用。关键约束包括:行内删除仅适用于 Responsive Table,且与多选功能互斥。配置需遵循三层架构:后端能力注解、前端表格形态和运行时交互。设计上强调禁用优于隐藏的可用性原则,并需保持列表页与对象页的删除体验一致

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 153

阿里云+springboot 实现短信服务

这里填写的是模板编号,也就是上面那种图片的。这个就是你的签名,就是国内信息=>签名 的那个签名。然后生成的模板,我们如果需要调用的话,就可以根据那个模板CODE 对应的编号,进行调用。然后模板 ,就是你建好后,可以直接使用他的一个模板内容。您的验证码为:${code},该验证码 5 分钟内有效,请勿泄漏于他人。签名的名称最好根据你的公司名称起,或者自己随便起都行。但是目前已经不允许个人申请了,就当了解,以后可能用到。就这样,一个简单的用户获取验证码就完成了。登录阿里云,点击产品,然后选择短信服务。

qq_50560491的博客 1349

uniapp - 详解APP端免费人脸识别+人脸核身+人脸对比+活体检测插件功能完整源码,uniAPP纯前端实现不依赖后端API接口或第三方付费人脸识别功能示例(仅兼容安卓app与苹果ios App)

uniapp免费人脸认证功能,uniapp APP开发活体人脸识别,UniApp人脸识别与活体检测,人脸核身uni-app插件 活体检测 人脸对比 人脸识别 人脸认证 身份证件,uni-app人脸核身,如何在app端实现免费人脸识别教程,人脸核身uni-app插件活体检测,uniapp安卓ios百度人脸识别、活体检测、人脸采集APP原生插件,详细实现人脸识别和活体检测功能,实时监测人脸是否进入区域及动作是否正确播报,提供提供实名认证、身份证识别、有没有免费的,api,活体检测,人脸信息采集、刷脸扫脸认证示例

🏆 前端领域优质创作者 4385

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

【springboot】springboot实现短信验证功能:

【springboot】springboot实现短信验证功能:

SunPeng的博客 984

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SpringBoot实现短信验证码校验

本文欢迎转载,转载请注明出处,谢谢~(作者:喝酒不骑马 Colton_Null) from 优快云有关阿里云通信短信服务验证码的发送,请参考我的另一篇博文 Springboot实现阿里云通信短信业务实现短信验证码的发送 本文将对验证码的校验思路进行讲解。思路用户输入手机号后,点击按钮获取验证码。并设置冷却时间,防止用户频繁点击。 后台生成验证码并发送到用户手机上,根据验证码、时间及一串

因特马 1万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

SpringBoot 通过阿里云的短信功能 实现发送手机验证码

SpringBoot 通过阿里云的短信功能 实现发送手机验证码

写代码的渣渣苏 4562

Spring Boot整合阿里云短信服务(验证码,推送全家桶),超详细教程,附源码!

一、注册阿里云账号,申请开通短信服务 1.进入官网,找到注册按钮 2.申请注册,可以用支付宝快捷注册,也可以其他登录,看个人需求 3.注册完之后登录账号,找到短信服务,可以直接用搜索框搜索:短信服务 进入到短信服务之后可以选择免费开通短信服务,开通过后可以进入到短信服务的后台 二、配置短信消息模板,生成秘钥 1.需要配置短信消息模板,签名管理,添加签名,名称是你的项目名称或者是公司名称 2.根据自己公司的需求来申请短信的用途,审核大概1-2个小时就会审核通过 3.申请模板管理,模板管理就是具体的

qq_41645986的博客 1627

springboot调用阿里云短信验证服务

到修改密码这里,我采用了阿里的短信验证服务在springboot里面使用阿里云短信服务。

qq_58024411的博客 402

SpringBoot整合阿里云短信验证服务

一、阿里云短信服务 帮助文档: https://help.aliyun.com/product/44282.html?spm=5176.10629532.0.0.38311cbeYzBm73 1、配置application.properties # 服务端口 server.port=8005 # 服务名 spring.application.name=service-msm # mysql数据库连接 spring.datasource.driver-class-name=com.mysql.cj.jd

wangbeita的博客 386

springboot-springsecurity调用阿里云API发送短信验证码实现账号注册

背景: 最近和前端小伙伴一起搭建一个个人博客网站,注册功能为防止恶意破解密码、博客灌水等,在注册时做到手机号唯一且为本人手机号,故采用了阿里云的短信验证码(之前试过邮箱发送验证码,不知道为啥,经常被当垃圾邮件给拦截) 步骤: 登录阿里云,选择短信服务(可直接搜索短信服务) 点击开通短服务(点击免费开通 我这采用的是用多少给多少 并不是买套餐 感觉我的网站用户量达不到那么大) 3.进入快速学习...

zty 727

springboot整合阿里云短信验证

思维导图 第一步 自己开通阿里云的短信服务,并注册签名和模板,了解费用等 第二步 导入使用阿里云短信服务的依赖,fastjson是转json工具,后面要使用 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> </dependency> <dependency>

weixin_44884861的博客 593

springboot 手机发送阿里云短信验证码

定义发送验证码的方法,其中 phone 参数为接收验证码的手机号码,code 参数为生成的验证码。在需要发送验证码的时候,调用 UserServiceImpl 类的 sendVerificationCode 方法,会生成验证码并发送给用户手机;另外,阿里云短信服务需要实名认证并开通相应的服务。定义验证验证码的方法,在用户输入验证码后,从缓存中获取对应手机号的验证码,如果用户输入的验证码与缓存中的验证码一致,则验证通过。定义生成验证码的方法,并将生成的验证码以及手机号保存在缓存中,以供后续验证使用。

一个全栈小菜鸟的博客 648

SpringBoot整合第三方接口:整合阿里云短信服务实现短信发送 手机号验证功能

短信服务平台有很多 大家可以根据自己的需求随意选择.整合方式也是大同小异 本文以阿里云短信服务平台为例. 具体分为以下几个步骤: 登录/注册阿里云平台 进入短信服务控制台 前往 https://www.aliyun.com/ 登录. 搜索短信服务 点击进入短信控制台 如果之前没有开通过短信服务 这里需要开通 开通之后就可以进入了 申请短信签名和短信模板 点击左侧的国内消息 首先添加一个签名 点击添加签名 个人用户可以申请一条验证码签名 根据自己的需求申请 申请之后需要审核 推荐使用真实的项目名称 最好附带

LwinnerG的博客 1302

Springboot中使用阿里云短信验证码服务

1.引入阿里云的包 <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> &l...

chiruanping2992的博客 480
上一篇: mysql之外键约束
下一篇: 验证手机号的工具类-》java
wangxuejava
博客等级 码龄7年 6粉丝 46原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值