广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot发送短信验证码的实例
  • 953
分享到

SpringBoot发送短信验证码的实例

2024-04-02 19:04:59 953人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1、注册短信通账号2、导入依赖3、随机验证码的工具类4、短信发送工具类5、测试1、注册短信通账号 网址:Http://sms.WEBchinese.cn 2、导入依赖 &

1、注册短信通账号

网址:Http://sms.WEBchinese.cn

在这里插入图片描述

在这里插入图片描述

2、导入依赖

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf-spring5</artifactId>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-java8time</artifactId>
        </dependency>
        <dependency>
            <groupId>org.thymeleaf.extras</groupId>
            <artifactId>thymeleaf-extras-springsecurity5</artifactId>
        </dependency>
		<!--短信验证依赖导入-->
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.4</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.0.1</version>
        </dependency>

3、随机验证码的工具类

public class CodeUtil {

    @Bean
    public PassWordEncoder passwordEncoder(){
        return new BCryptPasswordEncoder();
    }
    
    
    public String getRandomCode(Integer code){
        Random random = new Random();
        StringBuffer result= new StringBuffer();
        for (int i=0;i<code;i++){
            result.append(random.nextInt(10));
        }
        return result.toString();
    }
    
    //保存验证码和时间
    public Code saveCode(String code){
        Code code1=new Code();
        SimpleDateFORMat sf = new SimpleDateFormat("yyyyMMddHHmmss");
        Calendar c = Calendar.getInstance();
        c.add(Calendar.MINUTE, 5);
        String currentTime = sf.format(c.getTime());// 生成5分钟后时间,用户校验是否过期
        //验证码加密
        String encode=passwordEncoder().encode(code);
        code1.setCode(encode);
        code1.setCurrentTime(currentTime);
        return code1;
    }
    
    
    public Boolean deciphering(String code,String code1){
        boolean matches = passwordEncoder().matches(code,code1);
        return matches;
    }


}

4、短信发送工具类

@Component
public class TelMessageUtil {
    private static final String SMS_Url = "http://sms.webchinese.cn/web_api/";

    
    public static Integer send(String Uid,String Key,String sendPhoneNum,String desc){
    
        HttpClient client = new HttpClient();
        PostMethod post = new PostMethod(SMS_Url);
        post.addRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=gbk");// 在头文件中设置转码
    
        //设置参数
        NameValuePair[] data = {
                new NameValuePair("Uid", Uid),
                new NameValuePair("Key", Key),//秘钥
                new NameValuePair("smsMob", sendPhoneNum),
                new NameValuePair("smsText", desc)
        };
    
        post.setRequestBody(data);
    
        try {
            client.executeMethod(post);
        } catch (Exception e) {  e.printStackTrace();  }


        Header[] headers = post.getResponseHeaders();
        int statusCode = post.getStatusCode();
        System.out.println("statusCode:" + statusCode);
        for (Header h : headers) {
            System.out.println(h.toString());
        }
    
        String result ="";
        try {
            result = new String(post.getResponseBodyAsString().getBytes("gbk"));
        } catch (Exception e) {  e.printStackTrace();  }
    
        post.releaseConnection();
    
        return Integer.parseInt(result);
    }
    
    public static String getMessage(Integer code){
        String message;
        if(code > 0 ) {
            message = "SMS-f发送成功!短信量还有" + code + "条";
        }else if(code == -1){
            message = "SMS-没有该用户账户";
        }else if(code == -2){
            message = "SMS-接口密钥不正确";
        }else if(code == -21){
            message = "SMS-MD5接口密钥加密不正确";
        }else if(code == -3){
            message = "SMS-短信数量不足";
        }else if(code == -11){
            message = "SMS-该用户被禁用";
        }else if(code == -14){
            message = "SMS-短信内容出现非法字符";
        }else if(code == -4){
            message = "SMS-手机号格式不正确";
        }else if(code == -41){
            message = "SMS-手机号码为空";
        }else if(code == -42){
            message = "SMS-短信内容为空";
        }else if(code == -51){
            message = "SMS-短信签名格式不正确接口签名格式为:【签名内容】";
        }else if(code == -6){
            message = "SMS-IP限制";
        }else{
            message = "其他错误";
        }
        return message;
    }


}

5、测试

	//前台验证手机号
    @RequestMapping("/checkTel")
    public String checkTel(@RequestParam("tel") String tel,
                           httpsession session,
                           Model model){
        Users users=new Users();
        users.setTel(tel);
        if (loginService.CheckOnly(users)) {
            model.addAttribute("msg","没有此用户,请注册!");
            return "reGISter";
        }else {
            model.addAttribute("info","已向你的手机号为"+tel+"发送了验证码");
            Long id = loginService.findIdByTel(tel);
            session.setAttribute("user_id",id);
            //发送验证码
            CodeUtil codeUtil=new CodeUtil();
            //获取六位验证码
            String randomCode = codeUtil.getRandomCode(6);
            //先清除session域
            session.removeAttribute("checkCode");
            //加密验证码存放session域中
            session.setAttribute("checkCode",codeUtil.passwordEncoder().encode(randomCode));
            Integer resultCode = TelMessageUtil.send("****","************",tel,
                    "【高校志愿者平台】你的验证码为【"+randomCode+"】(若不是本人操作,可忽略该条邮件)"
            );
            System.out.println("日志信息"+resultCode);
            return "updatePwd";
        }
    }

到此这篇关于SpringBoot发送短信验证码的实例的文章就介绍到这了,更多相关SpringBoot 短信验证码内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot发送短信验证码的实例

本文链接: https://www.lsjlt.com/news/139917.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot发送短信验证码的实例
    目录1、注册短信通账号2、导入依赖3、随机验证码的工具类4、短信发送工具类5、测试1、注册短信通账号 网址:http://sms.webchinese.cn 2、导入依赖 &...
    99+
    2022-11-13
  • javascript实现发送短信验证码案例
    本文实例为大家分享了javascript实现发送短信验证码的具体代码,供大家参考,具体内容如下 效果如下: 代码思路: 1.按钮点击之后,会禁用disabled 为true2.同时...
    99+
    2022-11-13
  • php怎么发送短信验证码
    本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑基于PHP的验证码短信API接口调用示例...
    99+
    2022-10-20
  • php如何发送短信验证码
    这篇文章主要介绍了php如何发送短信验证码的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇php如何发送短信验证码文章都会有所收获,下面我们一起来看看吧。发送方法:1、实名认证并开通短信API接口服务,获取API...
    99+
    2023-07-04
  • javascript如何实现发送短信验证码
    这篇文章主要介绍“javascript如何实现发送短信验证码”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“javascript如何实现发送短信验证码”文章能帮助大家解决问题。效果如下:代码思路:按钮...
    99+
    2023-07-02
  • SpringBoot使用榛子云实现手机短信发送验证码
    首先去榛子云官方平台申请注册自己的账号,官方网站:http://smsow.zhenzikj.com/ 有账号的话就直接登录,没有注册一个即可,很简单的注册 登录成功后就是这...
    99+
    2022-11-12
  • Springboot实现阿里云通信短信服务有关短信验证码的发送功能
    前言短信验证码是通过发送验证码到手机的一种有效的验证码系统。主要用于验证用户手机的合法性及敏感操作的身份验证。现在市面上的短信服务平台有很多。大家在选择的时候未免会有些不好抉择。本人建议选择短信服务商应遵循以下几点: 服务商知名度高,业务...
    99+
    2023-05-31
    spring boot 阿里云
  • Nodejs 发送Post请求功能(发短信验证码例子)
    直接上代码 sms.js var http = require('http'); var querystring = require('querystring'); function SmsCode...
    99+
    2022-06-04
    发短信 验证码 例子
  • 教你用Python实现短信验证码的发送
    目录1. 短信API平台2. 使用官方提供的SDK实现短信发送2.1 安装SDK2.2 使用官方的测试用例进行测试2.3 参数及其参数的查看3. 单例模式实现短信发送总结1. 短信A...
    99+
    2022-12-08
    python接收短信验证码 python 短信验证码 python短信验证码
  • Android实现发送短信验证码倒计时功能示例
    一、简介: 开发中在用户注册或找回密码之类的功能,经常会遇到获取短信验证码,获取验证码后需要等待1分钟倒计时,这段时间是不能再次发送短信请求的。 效果图: 二、实现步骤: ...
    99+
    2022-06-06
    发送短信 倒计时 示例 验证码 短信验证码 Android
  • PHP发送短信验证码步骤详解
    随着移动互联网的发展,短信验证码成为了常见的用户认证方式。无论是注册、登录、找回密码等场景,短信验证码都发挥了重要作用。而PHP作为互联网开发的主流编程语言之一,也可以通过调用短信提供商的API来实现发送短信验证码的功能。本文将详细介绍PH...
    99+
    2023-05-22
    验证码 PHP 发送短信
  • Django使用celery异步发送短信验证码代码示例
    目录celery1.celery介绍1.1 celery应用举例1.2 Celery有以下优点1.3 Celery 特性2.工作原理2.1 Celery 扮演生产者和消费者的角色3....
    99+
    2022-11-12
  • Java如何实现发送短信验证码功能
    小编给大家分享一下Java如何实现发送短信验证码功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在J...
    99+
    2023-05-30
    java
  • Java实现SMS短信通发送手机验证码案例讲解
    注册网建短信通账号 链接:http://sms.webchinese.cn/ 设置短信签名 注意不要乱写别的公司等,会被视为诈骗信息 设置短信密钥,发送时代替密码 Java方式...
    99+
    2022-11-12
  • Spring中使用腾讯云发送短信验证码的实现示例
    目录1.所需依赖2.腾讯云配置(1).获取短信签名(2).创建正文模板(3).创建密钥(4).获取SdkAppId3.代码1. 所需依赖 <dependency...
    99+
    2022-11-13
  • 用实例分析Android如何用Mob实现发送短信验证码
    小编这次要给大家分享的是用实例分析Android如何用Mob实现发送短信验证码,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。和室友参加的互联网大赛要做一个 APP,涉及到用户的登录注册,于是上网找了许...
    99+
    2023-05-31
    android mob roi
  • SpringBoot实现阿里云短信发送的示例代码
    阿里云accessID和secret请自行进入阿里云申请 sms.template.code 请进入阿里云,进行短信服务进行魔板添加 开源代码地址在文章末尾 话不多说,直接上代码: ...
    99+
    2022-11-13
  • python实现发送和获取手机短信验证码
    首先为大家分享python实现发送手机短信验证码后台方法,供大家参考,具体内容如下 1、生成4位数字验证码 def createPhoneCode(session): chars=['0','1...
    99+
    2022-06-04
    验证码 手机短信 python
  • Java实现发送短信验证码+redis限制发送的次数功能
    java实现短信验证码发送,由于我们使用第三方平台进行验证码的发送,所以首先,我们要在一个平台进行注册。这样的平台有很多,有的平台在新建账号的时候会附带赠几条免费短信。这里我仅做测试...
    99+
    2022-11-13
  • PHP实现发送短信验证码的方法是什么
    本篇内容主要讲解“PHP实现发送短信验证码的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP实现发送短信验证码的方法是什么”吧!创建好HTML和js文件。创建“Msm.php”文件...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作