前言

最近在做远程智能水表管理系统这个过程有一个功能是在注册页面可以使用手机注册,找了许久才大致了解了手机验证码实现流程,今天在此和大家分享一下。下面话不多说了,来一起看看详细的介绍吧。

短信验证码实现流程

1、构造手机验证码:使用random对象生成要求的随机数作为验证码,例如4位验证码:1000~9999之间随机数;

2、使用接口向短信平台发送手机号和验证码数据,然后短信平台再把验证码发送到制定手机号上,接口参数一般包括:目标手机号,随机验证码(或包含失效时间),平台接口地址,平台口令;

3、保存接口返回的信息(一般为json文本数据,然后需转换为json对象格式);

4、将手机号--验证码、操作时间存入Session中,作为后面验证使用;

5、接收用户填写的验证码及其他数据;

6、对比提交的验证码与Session中的验证码是否一致,同时判断提交动作是否在有效期内;

7、验证码正确且在有效期内,请求通过,处理相应的业务。

今天我们就前4步进行实现:

为了简化流程,我们在就使用固定手机验证码而不采用随机产生的数作为验证码

在此我们有一个前端页面一个后台逻辑处理页面,下面就该两项进行简单说明:

前端页面

Send send = new Send();

String PostData = "account=JamesXT&password=18770918982lkx&mobile=18770918982&content="+java.net.URLEncoder.encode("您的订单编码:4557。如需帮助请联系客服。","utf-8");

//out.println(PostData);

String ret = Send.SMS(PostData, "http://sms.106jiekou.com/utf8/sms.aspx");

out.println(ret);

//请自己反序列化返回的字符串并实现自己的逻辑

%>

PostData:就是想短信服务平台提交的待处理的数据,它一般包括短信服务平台注册者的用户账号名,密码,以及你想向谁发送短信验证码以及短信验证码所属信息的完整内容。

这个是将数据和短信服务平台的网址进行绑定,即该提交数据交付哪个平台进行处理。

后台逻辑处理类:

public class Send {

//SMS方法中有两个参数,这个参数是由前台页面提交的PostData和前者绑定的短信服务地址确定的

public static String SMS(String postData, String postUrl) {

try {

//发送POST请求

URL url = new URL(postUrl);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setRequestMethod("POST");

conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

conn.setRequestProperty("Connection", "Keep-Alive");

conn.setUseCaches(false);

conn.setDoOutput(true);

conn.setRequestProperty("Content-Length", "" + postData.length());

OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");

//将前台提交的数据放入输出流中,即向短信服务平台发送该条业务请求

out.write(postData);

out.flush();

out.close();

//获取响应状态码

if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {

System.out.println("connect failed!");

return "";

}

//获取响应内容

String line, result = "";

BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"));

while ((line = in.readLine()) != null) {

result += line + "\n";

}

in.close();

return result;

} catch (IOException e) {

e.printStackTrace(System.out);

}

return "";

}

}

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

前端接收java验证码_在Web项目中手机短信验证码实现的全过程记录相关推荐

  1. java web短信验证码_在Web项目中手机短信验证码实现的全过程记录

    前言 最近在做远程智能水表管理系统这个过程有一个功能是在注册页面可以使用手机注册,找了许久才大致了解了手机验证码实现流程,今天在此和大家分享一下.下面话不多说了,来一起看看详细的介绍吧. 短信验证码实 ...

  2. java手机验证码登陆_在Web项目中手机短信验证码实现的全过程记录

    这篇文章主要给大家介绍了关于在Web项目中实现短信验证码的全过程记录,文中通过示例代码介绍的非常详细,在文末跟大家提供了源码下载,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧. 前言 最近在做 ...

  3. 瑞吉外卖项目中手机短信验证登录的问题及过程处理

    瑞吉外卖中手机短信验证码登陆的问题以及过程整理 本篇接上一篇文章: <基于SpringBoot+MybatisPlus开发的外卖管理项目>戳戳戳 http://t.csdn.cn/cRJY ...

  4. 临时手机验证码_实用网站(一)短信验证码 临时网盘 临时邮箱

    在线接收手机短信验证码 云短信(YunDuanXin.net)可以在线接收短信,接收短信验证码.云短信(YunDuanXin.net)是免费的在线接收手机短信的平台,接短信.接验证码就来云短信(Yun ...

  5. python短信验证码_玩转python之获取短信验证码

    原标题:玩转python之获取短信验证码 对于初学者,如何利用第三方python开发包发送短信验证码,下面是具体的实现和记录过程! 环境:虚拟机上centos7平台,python3.7版本: 第三方短 ...

  6. python web验证码_python web框架Flask——手机短信验证码

    下列代码都是以自己的项目实例讲述的,相关的文本内容很少,主要说明全在代码注释中. 我是使用阿里云云通信的短信服务,第一次使用会摸不着头绪,这里我们需要做些准备工作: 1.登陆自己的账号进入阿里云官网, ...

  7. QPW 手机短信验证码发送日志表(tf_sms_send_log)

    文章目录 手机短信验证码发送日志表 需求说明 手机短信验证码发送日志表 CREATE TABLE `tf_sms_send_log` (`send_id` bigint(11) NOT NULL AU ...

  8. java 随机手机验证码_基于Java随机生成手机短信验证码的实例代码|chu

    简单版 /** * 产生4位随机数(0000-9999) * * @return 4位随机数 */ public static String getFourRandom() { return Stri ...

  9. java+生成手机验证码_基于Java随机生成手机短信验证码的实例代码

    简单版 /** * 产生4位随机数(0000-9999) * * @return 4位随机数 */ public static String getFourRandom() { return Stri ...

最新文章

  1. 从源代码编译里程碑的 ICS ROM
  2. java如何写对象配置文件,Java 读写Properties配置文件详解
  3. 性能测试——JMeter脚本录制和HTTP负载测试
  4. 单调栈之Next Greater Number
  5. access vba代码大全_VBA 实践指南 -- VBA连接各种数据库
  6. 为了让开发者写MaxCompute SQL更爽,DataWorks 增强SQL 编辑器功能
  7. WCF+AJAX最佳实践
  8. 用R语言实现深度学习情感分析
  9. python实现不使用额外空间去除重复元素
  10. 史上最全的工控类软件链接 快收藏备用吧
  11. 智能工厂仓库管理系统软件有哪些哪家好呢
  12. Gradle基础教程
  13. [自我介绍]第一篇博客
  14. VirtualBox虚拟机安装
  15. [转载][翻译]偿还技术债 - 通过重构拯救老代码
  16. 方舟服务器制作修改,方舟生存进化服务器模式设置教程
  17. Abaqus6.14+VS2013+IVF2013安装教程
  18. 不做ui了 转行做什么_ui设计师是做什么的 想转行可以吗
  19. JAVA练习:利用JAVA基本语句实现打印日历
  20. 智能门锁暗藏的物联网安全危机

热门文章

  1. 系统规划与管理师笔记——信息系统综合知识
  2. 语音合成(speech synthesis)方向十一:聊一聊增量式语音合成(iTTS)进化史
  3. 世界著名的品牌啤酒——网络整理X
  4. 计算机玩游戏不能全屏,电脑玩游戏为何不能全屏?电脑玩游戏不能全屏的解决方法...
  5. 18天精读掌握《费曼物理学讲义卷一》 第15天 2019/7/2
  6. 堡垒机如何传输文件_如何在linux下向堡垒机传文件
  7. Arduino 入门学习笔记7 I2C LCD1602液晶显示实验 及 超声波传感器距离检测
  8. 组合、聚合、继承详解
  9. win10+Eclipse简单快速安装(以及中文汉化与安装插件)
  10. 华为2022硬件逻辑笔试题