gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章在Web项目中手机短信验证码实现的全过程记录由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

前言 。

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

短信验证码实现流程 。

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

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

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

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

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

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

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

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

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

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

前端页面 。

?
1
2
3
4
5
6
7
8
9
10
11
12
< body >
  < h1 >
   <%
   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);
   //请自己反序列化返回的字符串并实现自己的逻辑
  %>
  </ h1 >
  </ body >

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

?
1
String ret = Send.SMS(PostData, <a rel= "external nofollow" href= "http://sms.106jiekou.com/utf8/sms.aspx" >http://sms.106jiekou.com/utf8/sms.aspx</a>);

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

后台逻辑处理类:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
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 "" ;
  }
}

最后附上Demo源码地址:MobileRegist.rar 。

本demo所用短信服务商地址为:http://www.106jiekou.com/login/?ReturnUrl=/member/trigger/templates/ 。

总结 。

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

原文链接:https://segmentfault.com/a/1190000012298280 。

最后此篇关于在Web项目中手机短信验证码实现的全过程记录的文章就讲到这里了,如果你想了解更多关于在Web项目中手机短信验证码实现的全过程记录的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com