如何实现java手机短信验证功能

栏目: Java · 发布时间: 6年前

内容简介:如何实现java手机短信验证功能

现在基本每个网站或app用户注册页面都添加有手机短信验证功能,添加手机短信验证功能,能够有效的避免了非法注册和烂注册的情况,以及获取用户的有效联系方式,那么如何实现手机短信验证功能呢?下面就以 java 开发语言为例,详细为大家介绍下。

    一、实现手机短信验证功能的基本思路如下:

1、首先找一家靠谱的短信验证码接口服务商,获取短信验证码调用地址,和相关接入文档。这里强烈建议大家选择动力思维乐信短信验证码接口服务商,一家专业提供短信应用服务14年的企业;

2、在网站信息提交页面请求发送信息;

3、服务器向动力思维乐信短信接口平台提交请求;

4、动力思维乐信短信接口平台通过三大运营商将验证码内容发送到用户的手机中。

    二、手机号码短信验证前台页面效果实现

如何实现java手机短信验证功能

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >
    <html xmlns>
    <head>
    <title></title>
    <script src="js/jquery-1.4a2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
    /*-------------------------------------------*/
    var InterValObj; //timer变量,控制时间
    var count = 60; //间隔函数,1秒执行
    var curCount;//当前剩余秒数
    var code = ""; //验证码
    var codeLength = 6;//验证码长度
    function sendMessage() {
    curCount = count;
    var dealType; //验证方式
    tel = $(’#tel’).val();
    if(tel!=’’){
    //验证手机有效性
    var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;
    if(!myreg.test($(’#tel’).val()))
    {
    alert(’请输入有效的手机号码!’);
    return false;
    }
    tel = $(’#tel’).val();
    //产生验证码
    for (var i = 0; i < codeLength; i++) {
    code += parseInt(Math.random() * 9).toString();
    }
    //设置button效果,开始计时
    $("#btnSendCode").attr("disabled", "true");
    $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
    InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
    //向后台发送处理数据
    $.ajax({
    type: "POST", //用POST方式传输
    dataType: "text", //数据格式:JSON
    url: ’yanzhengma.do’, //方法路径(根据实际地址)
    data: "&tel=" + tel + "&code=" + code,
    error: function (XMLHttpRequest, textStatus, errorThrown) { },
    success: function (msg){ }
    });
    }else{
    alert(’请填写手机号码’);
    }
    }
    //timer处理函数
    function SetRemainTime() {
    if (curCount == 0) {
    window.clearInterval(InterValObj);//停止计时器
    $("#btnSendCode").removeAttr("disabled");//启用按钮
    $("#btnSendCode").val("重新发送验证码");
    code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
    }
    else {
    curCount--;
    $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");
    }
    }
    </script>
    </head>
    <body>
    <input name="tel" id=tel type="text" />
    <input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" /></p>
    </body>
    </html>
  三、在yanzhengma.do方法里调用接口方法

    /**

    * 调用短信服务器短信接口

    * @param accName 乐信账号用户名

    * @param accPwd 乐信账号密码

    * @param seed 当前时间 格式:YYYYMMDD HHMISS 例如:20130806102030

    * @param aimcodes 手机号多个手机号之间英文半角逗号隔开

    * @param content 内容后加签名

    * @param schTime 定时时间格式如:2010-01-01 08:00:00

    * @return 服务端返回的结果 ok:业务id 或者 错误代码

    */

    public static String sendSms(String accName,String accPwd,String mobies,String content,String schTime){

    StringBuffer sb = new StringBuffer("http://sdk.lx198.com/sdk/send2?");

    try {

    String seed=new SimpleDateFormat(dateFormatStr).format(new Date());

    sb.append("&accName="+accName);

    sb.append("&seed="+seed);

    sb.append("&accPwd="+MD5.getMd5String(MD5.getMd5String(accPwd)+seed));

    sb.append("&aimcodes="+mobies);

    sb.append("&schTime="+URLEncoder.encode(schTime,"UTF-8")); //空格标点符号做encode转换

    sb.append("&content="+URLEncoder.encode(content,"UTF-8")); //中文做encode转换

    URL url = new URL(sb.toString());

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

    connection.setRequestMethod("POST");

    BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));

    return in.readLine();

    } catch (Exception e) {

    e.printStackTrace();

    }

    return null;

    }

    四、提交表单信息时对短信验证码验证

//手机验证码开始

  session_start();

  $svalitel = $_SESSION[’mobilecode’];

  $vdcodetel = empty($vdcodetel) ? ’’ : strtolower(trim($vdcodetel));

  

  if(strtolower($vdcodetel)!=$svalitel || $svalitel==’’)

  {

  ResetVdValue();

  //echo "Pageviews=".$vdcodetel;

  ShowMsg("手机验证码错误!", ’-1’);

  exit();

  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript

JavaScript

David Flanagan / O'Reilly Media / 2011-5-13 / GBP 39.99

The book is a programmer's guide and comprehensive reference to the core JavaScript language and to the client-side JavaScript APIs defined by web browsers. The sixth edition covers HTML 5 and ECMA......一起来看看 《JavaScript》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

随机密码生成器
随机密码生成器

多种字符组合密码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具