当前位置: 首页 > 编程笔记 >

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

阎经武
2023-03-14
本文向大家介绍在Web项目中手机短信验证码实现的全过程记录,包括了在Web项目中手机短信验证码实现的全过程记录的使用技巧和注意事项,需要的朋友参考一下

前言

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

短信验证码实现流程

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

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

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

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

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

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

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

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

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

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

前端页面

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

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

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

后台逻辑处理类:

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源码地址:http://xiazai.jb51.net/201712/yuanma/MobileRegist(jb51.net).rar

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

总结

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

 类似资料:
  • 本文向大家介绍PHP手机短信验证码实现流程详解,包括了PHP手机短信验证码实现流程详解的使用技巧和注意事项,需要的朋友参考一下 本人在自己博客(Laravel)的注册部分 使用手机号注册,需要发送短信验证码。 使用云片的短信服务提供商,当然具体短信服务提供商大家可以自由选择。 1、实现流程 输入手机号,点击获取验证码 提交正确的短信验证码后,注册完成 2、实现思路图 3、注册 云片,以及开发信息认

  • 本文向大家介绍Android开发中通过手机号+短信验证码登录的实例代码,包括了Android开发中通过手机号+短信验证码登录的实例代码的使用技巧和注意事项,需要的朋友参考一下 首先,需要一个电话号码,目前很多账户都是将账户名设置成手机号,然后点击按钮获取手机验证码。 其次,你需要后台给你手机短信的验证接口,各个公司用的不一样,这个身为前端,不需要你来考虑,你只要让你后台给你写好接口,你直接调用就好

  • 本文向大家介绍基于Java随机生成手机短信验证码的实例代码,包括了基于Java随机生成手机短信验证码的实例代码的使用技巧和注意事项,需要的朋友参考一下 简单版 复杂版 总结 以上所述是小编给大家介绍的基于Java随机生成手机短信验证码的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

  • 本文向大家介绍Android实现短信验证功能的代码,包括了Android实现短信验证功能的代码的使用技巧和注意事项,需要的朋友参考一下 在我们现在开发APP过程中,当用户注册时,短信验证是必不可少的操作,这里我们就是用一个免费的第三方短信验证SDK-MOP 首先看下效果图 获取AppKey和AppSecret 首先进入官网,登录(没有帐号的自己去注册一个)。鼠标移动到右侧头像处,点击进入后台。 官

  • 本文向大家介绍SpringBoot+Security 发送短信验证码的实现,包括了SpringBoot+Security 发送短信验证码的实现的使用技巧和注意事项,需要的朋友参考一下 在core模块下properties包中创建SmsCodeProperties 在ValidateCodeProperties中new一个SmsCodeProperties对象,并实现getter、setter方法

  • 本文向大家介绍Android手机号注册、绑定手机号获取短信验证码实例,包括了Android手机号注册、绑定手机号获取短信验证码实例的使用技巧和注意事项,需要的朋友参考一下 本文写了一个常见的功能——手机app中注册或绑定手机号的获取验证码的功能,也就是短信验证功能   具体效果就是,你在注册界面填写手机号,点击获取验证码按钮,---然后会收到验证短信,填入验证码后点击注册按钮,如果验证正确就可以跳