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

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

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

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

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

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

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

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


26e1d850b54569aadc0a4a76dd1ec6d361fab51b


    <!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();

  }
   

    相关阅读:

    乐信短信验证接口接入指南:http://www.lx598.com/jrzn.html
    乐信短信验证接口API文档:http://www.lx598.com/apitext.html
    乐信短信验证接口java demo:http://www.lx598.com/javaCode.html


    本文来源:http://www.lx598.com/hangyedongtai/990.html






相关文章
|
11天前
|
安全 Java 测试技术
🎉Java零基础:全面解析枚举的强大功能
【10月更文挑战第19天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
97 60
|
20天前
Discuz! X3.5插件云诺-阿里云短信手机登录 会员登录后也无法查看附件图片的问题解决方法
Discuz! X3.5插件云诺-阿里云短信手机登录 会员登录后也无法查看附件图片的问题解决方法
34 2
|
22天前
|
Java 程序员
在Java编程中,关键字不仅是简单的词汇,更是赋予代码强大功能的“魔法咒语”。
【10月更文挑战第13天】在Java编程中,关键字不仅是简单的词汇,更是赋予代码强大功能的“魔法咒语”。本文介绍了Java关键字的基本概念及其重要性,并通过定义类和对象、控制流程、访问修饰符等示例,展示了关键字的实际应用。掌握这些关键字,是成为优秀Java程序员的基础。
20 3
|
21天前
|
Java 数据安全/隐私保护
Java ffmpeg 实现视频加文字/图片水印功能
【10月更文挑战第22天】在 Java 中使用 FFmpeg 实现视频加文字或图片水印功能,需先安装 FFmpeg 并添加依赖(如 JavaCV)。通过构建 FFmpeg 命令行参数,使用 `drawtext` 滤镜添加文字水印,或使用 `overlay` 滤镜添加图片水印。示例代码展示了如何使用 JavaCV 实现文字水印。
|
1月前
|
Java
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
56 2
java实现从HDFS上下载文件及文件夹的功能,以流形式输出,便于用户自定义保存任何路径下
|
1月前
|
机器学习/深度学习 算法 Java
通过 Java Vector API 利用 SIMD 的强大功能
通过 Java Vector API 利用 SIMD 的强大功能
36 10
|
1月前
|
Oracle 安全 Java
Java 22 为开发人员带来了重大增强功能
Java 22 为开发人员带来了重大增强功能
36 9
|
29天前
|
SQL 存储 数据可视化
手机短信SQL分析技巧与方法
在手机短信应用中,SQL分析扮演着至关重要的角色
|
26天前
|
Java
让星星⭐月亮告诉你,jdk1.8 Java函数式编程示例:Lambda函数/方法引用/4种内建函数式接口(功能性-/消费型/供给型/断言型)
本示例展示了Java中函数式接口的使用,包括自定义和内置的函数式接口。通过方法引用,实现对字符串操作如转换大写、数值转换等,并演示了Function、Consumer、Supplier及Predicate四种主要内置函数式接口的应用。
20 1
|
1月前
|
存储 网络协议 前端开发
在 Java 中如何完全验证 URL
在 Java 中如何完全验证 URL
78 8