springboot +秒嘀 实现短信发送

SpringBoot实现短信发送功能(阿里云短信服务) SpringBoot短信发送功能 这里我采用的是阿里云提供的短信服务 一、购买短信套餐 因为做测试用所以我是直接在官网上领的免费试用100条,公司有大需求的话也可以搜索短信服务购买短信套餐即可,一条短信也就几分钱。 二、创建用户组 创建用户组后会得到一个组,随后可以添加权限 点进用户组后我们进去权限管理搜索sms就会出现短信服务的权限,添加即可。 三、添加用户 添加了用户组之后我们还需添加用户,填写好名称(自定义),我们重点是需要勾选上编程访问, 这是我们能够通过编写代码发送短信的前提。 随后我们就会 阅读详情
短信发送

步骤一:注册秒嘀(或者用其他短信平台)
在这里插入图片描述
第二步:添加短信模板,验证通过即可
在这里插入图片描述
第三步:在springboot项目中添加依赖

        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>

第四步:添加工具类,修改标记的位置即可

package com.qf.fayuan.user.controller;

import net.sf.json.JSONObject;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.security.MessageDigest;
import java.text.SimpleDateFormat;
import java.util.Date;

@Controller
@RequestMapping("myTest")
public class TestContr {

    public static final String ACCOUNT_SID = "eccbc60599474470aae2f840728xxxxx";//这里填写你在平台里的ACOUNT_SID
    public static final String AUTH_TOKEN = "b816dec86e5043508acb13d99d6xxxxx";//这里填写你在平台里的AUTH_TOKEN
    public static final String BASE_URL = "https://api.miaodiyun.com/20150822/industrySMS/sendSMS";//请求地址是固定的不用改
    public static int randNum = (int)((Math.random()*9+1)*100000);//随机数
    //短信模板
    public static String smsContent = "【一方家居】您的验证码为" + randNum + ",请于" + 2 + "分钟内正确输入,如非本人操作,请忽略此短信。";

    /**
     * 测试短信发送(平台:秒嘀科技),测试通过,可用=================================
     * @param to  接收信息手机号
     * @return
     */
    @RequestMapping(value = "/smsg" ,method = RequestMethod.GET)
    public String sendSMSG( String to){
        //设置时间戳
        SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
        Date date = new Date();
        String timeStamp = format.format(date);

        //各个数据经过MD5加密之后返回sig
        String sig=MD5(ACCOUNT_SID,AUTH_TOKEN,timeStamp);
        String str = "accountSid="+ACCOUNT_SID+"&smsContent="+
                smsContent+"&to="+to+"&timestamp="+timeStamp+"&sig="+sig;

        OutputStreamWriter out = null;
        InputStream in = null;
        BufferedReader br = null;
        StringBuffer sb = new StringBuffer();
        try {
            URL url = new URL(BASE_URL);
            URLConnection connection = url.openConnection();//打开连接
            connection.setDoOutput(true);
            connection.setDoInput(true);
            connection.setConnectTimeout(5000);  //设置链接超时
            connection.setReadTimeout(10000);    //设置读取超时
            out = new OutputStreamWriter(connection.getOutputStream(),"utf-8");
            out.write(str);
            out.flush();
            //读取返回数据
            br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
            String line = "";
            while((line = br.readLine())!=null){
                sb.append(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        JSONObject jsonObject = JSONObject.fromObject(sb.toString());
        System.out.println(jsonObject);
        Object object = jsonObject.get("respCode");
        System.out.println("状态码:"+object+"验证码:"+randNum);
        System.out.println(!object.equals("00000"));
        return jsonObject.toString();
    }

    //MD5算法
    public static String MD5(String... args){ //动态参数
        StringBuffer result = new StringBuffer();
        if (args == null || args.length == 0) {
            return "";
        } else {
            StringBuffer str = new StringBuffer();
            for (String string : args) {
                str.append(string);
            }
            System.out.println("加密前:\t"+str.toString());

            try {
                MessageDigest digest = MessageDigest.getInstance("MD5");
                byte[] bytes = digest.digest(str.toString().getBytes());
                for (byte b : bytes) {
                    String hex = Integer.toHexString(b&0xff);  //转化十六进制
                    if (hex.length() == 1) {
                        result.append("0"+hex);
                    }else{
                        result.append(hex);
                    }
                }

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        System.out.println("加密后:\t"+result.toString());
        return result.toString();
    }
}

SpringBoot——短信发送、手机验证码登录 1. 登录页面输入手机号,点击【获取验证码】按钮,页面发送ajax请求,在服务端调用短信服务API给指定手机号发送验证码短信。还有就是如果别人知道了我们的AccessKey,那别人使用的时候会就花我们的钱。这次授权的意思就是仅仅授予有关短信服务的,即是我们泄露了,别人也只能操作短信服务,对我们的影响很小。很多人在这里的时候不小心没截图或者没保存就关了,丢失了AccessKey,但是不要紧,还可以再次创建。2. 在登录页面输入验证码,点击【登录】按钮,发送ajax请求,在服务端处理登录请求。 阅读详情

相关推荐

SpringBoot实现短信验证码登录

一、要找一个提供短信接口的第三方平台,这里我使用的是榛子云 二、在注册后,就可以使用了 三、首先是在pom.xml中添加依赖 <!-- fastjosn --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> &l...

qq_35500685的博客 1万+

Spring Boot定时发送短信

Spring Boot定时发送短信的两种方式 不少项目中估计都有遇到定时发送这个梗,我也遇到了,页面中下拉框选项有立即发送以及定时发送,立即发送就不用说了,定时发送可以讲一下,定时的方式有很多种,Java自带的定时器,Spring的定时器,大致讲一下我做的时候思路 1. Java自带的定时器 java.util包里的Timer,它也可以实现定时任务但是功能过于单一所有使用很少,而还有一个类Sche...

如漩涡的博客 6743

Springboot实现短信验证登录

一、介绍 使用短信验证登录也是现在实际项目中普遍使用的一种登录, 二、实际的操作流程 1.用户在前端页面输入手机号码之后,点击发送验证码 2.前端将手机号传给后端 3.后端生成一个6为的随机数通过短信发送给用户,之后将手机号设为key,验证码设为value存入redis缓存中,最后将短信发送是否成功返回给前端 4.当用户收到短信后,输入验证码,点击登录 5.前端将手机号和验证码发送和后端 6.后端从缓存中获取key和value,验证输入的验证码是否正确,在将结果返回给前端 7.短信验证结束

weixin_42057351的博客 4795

深度学习入门-mnist数据集

深度学习入门-基于python的理论与实现 3.6.1 MNIST数据集 我使用的是pyhcharm 可以直接通过setting里Install tensorflow模块导入mniset数据集 tensorflow是一个采用数据流图(data flow graphs),用于数值计算的开源软件库 MNIST是一个入门级的计算机视觉数据集,它包含各种手写数字图片 数据集被分成两部分:60000行的训练数据集(mnist.train)和10000行的测试数据集(mnist.test)。 每一个MNIST数据单元有

weixin_45720751的博客 1859

SpringBoot集成阿里云短信服务发送短信

应用背景:用户手机验证码登录、注册都需要验证码,这里讲的就是Springboot集成阿里云发送短信的具体实现。 一、首先打开阿里云短信服务 在这里能获取到我们需要的4个参数,分别是accessKeyId、accessKeySecret、短信签名、模板code。 短信签名和模板code直接点击创建就行了。 二、后台实现 1、创建SendSmsService.java文件,用来处理信息的发送: package com.lmj.sendSms.service; import com.aliyuncs.Def

小四是个程序猿的博客 2969

SpringBoot实现短信发送

开发工具:IDEA、Gradle 1.由于笔者使用阿里云的短信接口,所以需要去阿里云获取相关服务支持,每个新用户都有免费的初始条数,之后需要简单的配置签名与信息模版和AccessKey; 2.导入相关jar包,在build.gradle文件内加入如下坐标: // 短信支持 implementation('com.aliyun:aliyun-java-sdk-core:3.7...

冰生于水的博客 5612

springboot定时发送短信_SpringBoot的定时任务

SpringBoot提供了非常简单的定时任务配置方法,不再像之前需要配置很多Quartz的文件了。首先看一个简单的静态任务:@Configuration@EnableScheduling@Slf4jpublic class StaticScheduledTasks {@Autowiredprivate JCacheCacheManager jCacheCacheManager;@Value("${...

weixin_39798031的博客 531

2小时学会SpringBoot微服务发送短信功能

【课程介绍】      课程目标:             - 创建用户中心             - 了解面向接口开发方式             - 实现数据校验功能             - 实现短信发送功能             - 实现注册功能             - 实现根据用户名和密码查询用户功能      - 熟练使用hibernate-validate实现注册的用户信息的验证本课程主要内容是SpringBoot微服务整合阿里大于短信发送功能,以及使用hibernate-validate实现用户验证功能,如何使用SpringBoot实现前后端分离的接口开发

springboot定时发送短信_SpringBoot第十七篇:定时任务

引言相信大家对定时任务很熟悉,其重要性也不言而喻。定时发短信、定时批量操作、定时统计数据等,都离不开定时任务。本文将讲解定时任务在 SpringBoot 项目中的应用。版本信息JDK:1.8SpringBoot :2.0.1.RELEASEmaven:3.3.9IDEA:2019.1.1quartz:2.3.0定时任务实现方式JDK自带的TimerTimer 是Java 自带的定时任务类。可以用作...

weixin_32916125的博客 981

springboot 定时发送邮件

使用Springboot 做定时发送邮件的deom 代码上有注解,输入自己的邮箱账号密码,可以直接运行。我设置的是每秒发送一次。

利用springboot-mybatis实现定时邮件的发送

利用springboot-mybatis实现对数据库的定时扫描遍历,获取当前生日的字段对其定时发送邮件。

Spring Boot实现定时任务

定时任务是指在预定的时间点或按照特定的时间间隔自动执行的任务。定时任务的应用场景:操作系统维护:例如,定期清理临时文件、更新系统补丁等。数据备份:定期对重要数据进行备份,以防数据丢失。自动化测试:例如,在每天凌晨自动运行软件测试脚本。网站维护:比如定时发布新内容、定时发送邮件提醒等。数据分析:例如,定期汇总和分析业务数据,生成报告。

geinvse_seg的博客 2620

Python大数据舆情分析系统开发实战

舆情监测系统是大数据分析的重要应用场景,通过自然语言处理(NLP)技术解析社交媒体文本情感倾向。基于Python技术栈的解决方案整合了Scrapy爬虫框架进行数据采集,PySpark处理海量文本数据,结合SnowNLP和Jieba实现中文语义分析。系统采用微服务架构设计,包含数据采集层、处理层、存储层和应用层,通过情感分析优化和实时热点检测算法提升监测准确率。典型应用包括企业品牌监测、公共事件预警等场景,开发过程中需特别注意数据合规性和分布式集群的性能调优。

weixin_34408624的博客 386

SpringBoot发送短信验证码实现

前言 短信验证码是通过发送验证码到手机的一种有效的验证码系统。主要用于验证用户手机的合法性及敏感操作的身份验证。常见的使用场景有:登录注册、信息修改、异常登录、找回密码等操作。 此篇文章记录后台框架SpringBoot,短信平台是阿里云,功能实现SMS验证码发送; 代码实现 短信发送接口 @Controller @RequestMapping("/sms") public class SmsCtr...

稻草人 2万+

STM32 移植LwIP 实现网线插拔自动恢复

STM32 移植LwIP 之后,能正常联网通讯,但是发现2个问题, 1、上电初始化前,未插入网线,之后就无法获取到IP地址(DHCP) 2、正常通讯过程中,拔掉网线,然后插回去,不知道如何复位 先看一下LWIP初始化代码 /** * LwIP initialization function */ int MX_LWIP_Init() { /* Initilialize the LwIP stack with RTOS */ tcpip_init( NULL, NULL );

tiantangmoke的博客 8073

ESP32Servo库驱动SG90舵机:从入门到精准控制

本文详细介绍了如何使用ESP32Servo库驱动SG90舵机,从硬件连接到软件环境搭建,再到编写示例程序实现精准控制。内容涵盖库安装、基础驱动代码解析、舵机校准方法以及平滑运动控制,帮助开发者快速掌握ESP32控制舵机的核心技能,并提供了电源管理、信号抗干扰等实用避坑指南。

ik678901的博客 895

SpringBoot集成阿里云短信实现发送短信验证码

SpringBoot集成阿里云短信实现发送短信验证码

小张的博客 3546

保姆级教程:在RK3588开发板上用CMake交叉编译ZLMediaKit(附完整toolchain配置)

本文提供了一份详细的RK3588开发板上使用CMake交叉编译ZLMediaKit的教程,包括完整的toolchain配置和实战避坑指南。从环境准备、工具链配置到依赖处理、编译部署,手把手指导开发者完成ARM64架构的流媒体服务搭建,特别适合嵌入式开发新手。

weixin_28681255的博客 383

SpringBoot实现发送短信

一.说明 在https://office.ucpaas.com/ 注册账号并且认证为个人开发者(需要身份证),这个不难,不多说了 短信的三方平台有许多,对于选择什么平台要根据个人业务场景选择,这里只是DEMO 二.创建平台项目 创建平台项目后可以获得短信基础配置,在调用短信接口时使用 三.创建短信模板 模板动态参数设置规则为{1}{2}{3}...{n} (注意:在调用时参数之间拼接用逗号作为间...

weixin_33709219的博客 8875

把 NAST 变成你的遥控器:用 ABAP 程序精确触发与处理 Output Type

摘要 SAP中的Message Control机制通过NAST表记录输出状态,支持自动触发打印、邮件等操作。关键步骤包括: 构造NAST记录:定义输出类型、介质、处理状态等参数 调用处理函数:使用RV_MESSAGE_UPDATE_SINGLE更新表,通过WFMC_MESSAGES_PROCESS执行输出 典型应用场景: 单据补发(如PO邮件重发) 外部系统集成触发输出 故障恢复处理积压消息 注意事项: 需提交事务确保更新生效 区分S/4HANA新旧输出体系 正确处理派发时间(VSZTP)和状态(VSTAT

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

【CC精品教程】iTwin capture倾斜摄影建模完整操作流程

【CC精品教程】iTwin capture倾斜摄影建模完整操作流程。包括:无人机航测外业作业流程(像控点布设、航线规划、仿地飞行、航拍)和内业数据处理软件(Pix4d、CC、EPS、PhotoScan、Globalmapper)像控点权重调配、空三加密、DOM、DSM、DEM,DLG生成、等高线生成、高程点提取,点云分类过滤分割、点云生成DEM、三维模型生成等。

智慧空间实验室 3956

Springboot实现手机短信服务

一、首先进入云之讯注册账户 链接:https://office.ucpaas.com/. 进入开发者控制台,获取对应的请求地址、应用ID、用户ID和鉴权token 二、Springboot集成短信发送 1、Maven依赖 阿里的开源框架FastJson,用于JSON格式字符串与JSON对象及javaBean之间的转换 <dependencies> <dependency> <groupId>org.springframework.bo

weixin_46822367的博客 4626

23种设计模式-中介者(Mediator)设计模式

软考中级-软件设计师 中介者设计模式

片言可决讼,半纸能缚龙 1863

SpringBoot继承第三方发送手机短信验证码

*

见证自己学习,成长的记录 1万+

【WRF模拟】如何查看 WPS 的输入静态地理数据(二进制格式)?

如何查看 WPS 的输入静态地理数据(二进制格式)?

WW、forever的博客 632

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

springboot集成阿里云短信服务,实现发送短信功能

springboot集成阿里云短信服务,实现发送短信功能 准备工作: 1.登陆阿里云—>进入控制台—>开通短信服务(进入后根据提示开通) 2.充值(借人家平台发短信你以为不要钱的?我充了3元,够用了) 3.获取AccessKey和AccessSercet(想当与你的身份标识,代码中会用到) 新用户一般没有,需要创建,创建方式如下: 推荐使用子用户Accesskey 创建完成后...

Langkaixin的博客 3552

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: redis的初步使用(一)
下一篇: 使用shiro实现用户登录认证和简单权限的实现(法院项目)
25k董
博客等级 码龄9年 5粉丝 39原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值