热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用java实现手机短信验证全过程

这篇文章主要介绍了使用java实现手机短信验证全过程,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,

一、容联云平台

容联云平台是实现短信验证、还有语音功能等一些操作的平台,在平台注册还可以获得8元的新手额度,一条短信的费用是006元,也就是6分钱,在初学者测试也是可以非常人性化的,然后我这次进行测试的平台呢,也是用到容联云给进行展示


在这里插入图片描述

二、操作教程

2.1注册

在这里插入图片描述

当你注册进去之后会有8元的新手额度

填写测试号码

在这里插入图片描述

然后这里差不多了跟着下面走着

三、实践操作

3.1部署项目使用工具

本次使用的工具是IDEA,然后我为了简便就直接创建了Maven项目进行开发,因为使用到Maven之后是直接导入SDK的依赖即可,就不需要管jar包了

3.2具体操作

3.2.1、Maven依赖


        
            com.cloopen
            java-sms-sdk
            1.0.3
        
    

3.2.2、不使用Maven获取JAR包方式

容联云通讯――开发文档――下载(短信Demo下载)――SDK参考(JAVA SDK文档):不使用maven时需要下载jar包,点击JAVA SMS SDK进入maven下载即可

四、测试

4.1、示例代码

在容联云已经有了测试的示例,但是我们还需要稍作修改
下面为SDK的示例示例代码


在这里插入图片描述

这些代码我们可以直接复制过去,等下直接进行使用,当然要注意几点的地方

4.2、修改步骤

4.2.1、容联云的相关账号信息

在这里插入图片描述

这三个里面的数据就是填写你容联云内的开发者账号内容

在这里插入图片描述

这是我们要修改的地方之一,修改的内容为
(1)accountSId
(2)accountToken
(3)appId

4.2.2、修改测试号码等信息

那么等我们把账户信息修改完之后呢,还需要哪些
你在发送的时候是不是需要一个6位的随机数!安排,只需要一条代码

//随机生成6位数字为验证码
String code = String.valueOf(Math.random()).substring(2, 8);
System.out.println(code);

我们再来看看运行效果


在这里插入图片描述

当然还有就是你的手机号、还有模板、模板的一些参数

这里的模板就是容联云的一个模板了


在这里插入图片描述

我选的登录模板,所以选1就好

//需要把验证号转发到的手机号码
        String to = "1560*******";
        //在短信管理中选择模板ID,我选择的是1
        String templateId = "1";
        //模板参数
        String[] datas = {code,"30分钟"};

4.2.3、存放哈希进行判断

//这里是使用了一个哈希map来存放手机号、模板ID、模板参数
        HashMap result = sdk.sendTemplateSMS(to,templateId,datas);
        //如果返回0000则正常发送,否则返回异常
        if("000000".equals(result.get("statusCode"))){
            //正常返回输出data包体信息(map)
            HashMap data = (HashMap) result.get("data");
            Set keySet = data.keySet();
            for(String key:keySet){
                Object object = data.get(key);
                System.out.println(key +" = "+object);
            }
        }else{
            //异常返回输出错误码和错误信息
            System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));
        }

4.2.4、测试

运行结束后正常情况没报错后一般是手机立马会收到消息的,然后收的验证码消息是和你的运行结果那串数字是一样的,我们这边进行测试了一下,下面来看下结果吧

(1)运行结果


在这里插入图片描述

(2)手机收到的短信验证结果!


在这里插入图片描述

可以看得到短信验证成功了
下面我在把我的总体测试代码发在下面,但是要记得把相关的一些数据改成自己的不然会报错呢

总体测试代码

package demo;

import com.cloopen.rest.sdk.BodyType;
import com.cloopen.rest.sdk.CCPRestSmsSDK;
import java.util.HashMap;
import java.util.Set;

/**
 * 短信验证测试
 * @author 藤井大叔
 */
public class SmsDemo {

    public static void main(String[] args) {
        //生产环境请求地址:app.cloopen.com
        String serverIp = "app.cloopen.com";
        //请求端口
        String serverPort = "8883";
        //主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN
        String accountSId = "请填写accountSId ";
        String accountToken = "请填写accountToken ";
        //请使用管理控制台中已创建应用的APPID
        String appId = "请填写appId ";
        CCPRestSmsSDK sdk = new CCPRestSmsSDK();
        sdk.init(serverIp, serverPort);
        sdk.setAccount(accountSId, accountToken);
        sdk.setAppId(appId);
        sdk.setBodyType(BodyType.Type_JSON);
        //随机生成6位数字为验证码
        String code = String.valueOf(Math.random()).substring(2, 8);
        System.out.println(code);
        //需要把验证号转发到的手机号码
        String to = "请填写手机号";
        //在短信管理中选择模板ID,我选择的是1
        String templateId = "1";
        //模板参数
        String[] datas = {code,"30分钟"};
        //这里是使用了一个哈希map来存放手机号、模板ID、模板参数
        HashMap result = sdk.sendTemplateSMS(to,templateId,datas);
        //如果返回0000则正常发送,否则返回异常
        if("000000".equals(result.get("statusCode"))){
            //正常返回输出data包体信息(map)
            HashMap data = (HashMap) result.get("data");
            Set keySet = data.keySet();
            for(String key:keySet){
                Object object = data.get(key);
                System.out.println(key +" = "+object);
            }
        }else{
            //异常返回输出错误码和错误信息
            System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));
        }
      }
    }

好了,短信验证其实也是很简单的一个小操作,今天就讲到这

到此这篇关于使用java实现手机短信验证全过程的文章就介绍到这了,更多相关java实现短信验证内容请搜索编程笔记以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程笔记!


推荐阅读
  • Maven Web项目创建时JSP文件常见错误及解决方案
    Maven Web项目创建时JSP文件常见错误及解决方案 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • Java中不同类型的常量池(字符串常量池、Class常量池和运行时常量池)的对比与关联分析
    在研究Java虚拟机的过程中,笔者发现存在多种类型的常量池,包括字符串常量池、Class常量池和运行时常量池。通过查阅CSDN、博客园等相关资料,对这些常量池的特性、用途及其相互关系进行了详细探讨。本文将深入分析这三种常量池的差异与联系,帮助读者更好地理解Java虚拟机的内部机制。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 在使用 Qt 进行 YUV420 图像渲染时,由于 Qt 本身不支持直接绘制 YUV 数据,因此需要借助 QOpenGLWidget 和 OpenGL 技术来实现。通过继承 QOpenGLWidget 类并重写其绘图方法,可以利用 GPU 的高效渲染能力,实现高质量的 YUV420 图像显示。此外,这种方法还能显著提高图像处理的性能和流畅性。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • 为了优化用户体验,本文探讨了如何调整下拉菜单的宽度。通过合理设置宽度,可以提升界面的美观性和易用性。文章提供了具体的代码示例,帮助开发者实现这一目标。例如,可以通过 CSS 或 JavaScript 来动态调整下拉菜单的宽度,确保其在不同设备和屏幕尺寸上都能保持良好的显示效果。 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • 在安装并配置了Elasticsearch后,我在尝试通过GET /_nodes请求获取节点信息时遇到了问题,收到了错误消息。为了确保请求的正确性和安全性,我需要进一步排查配置和网络设置,以确保Elasticsearch集群能够正常响应。此外,还需要检查安全设置,如防火墙规则和认证机制,以防止未经授权的访问。 ... [详细]
  • 在本地环境中部署了两个不同版本的 Flink 集群,分别为 1.9.1 和 1.9.2。近期在尝试启动 1.9.1 版本的 Flink 任务时,遇到了 TaskExecutor 启动失败的问题。尽管 TaskManager 日志显示正常,但任务仍无法成功启动。经过详细分析,发现该问题是由 Kafka 版本不兼容引起的。通过调整 Kafka 客户端配置并升级相关依赖,最终成功解决了这一故障。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
author-avatar
打个的故事
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有