• 京东18.3亿底价再拿北京亦庄地块 竞买条件较为苛刻 2019-10-17
  • 专注声乐培训 CZ昕格音乐基地为热爱音乐的你而生 2019-10-17
  • 提供南水北调七成中线水 陕西一江清水送北京 2019-10-10
  • 你的声音,说一句话就能被克隆 2019-10-08
  • 她主动借腹给我生儿子,中途又移情别恋 有故事的人 2019-10-07
  • 候选企业:安徽古井集团 2019-10-06
  • 智能手机冲击大 数码相机不服输 2019-10-06
  • 工信部:我国4G用户达10.6亿户 宽带提速效果显著 2019-10-01
  • 一条塔里木河 串起南疆各色景致与无限风光 2019-10-01
  • 消防车进商场——“小小消防员”的消防安全乐体验 2019-09-27
  • 《游侠索罗》:票房失意之作的连锁反应 2019-09-27
  • 万物互联开启智慧新图景 下一代互联网未来已来 2019-09-27
  • 朔州市人大常委会任免名单 2019-09-27
  • 置业指南:盘点沙坪坝在售楼盘 2019-09-26
  • 加快南昌航空货运发展推进会举行 2019-09-26
  • 价格不是我们的优势,品质永远是我们的追求!
    当前位置:北京11选五和值走势图行业快讯 > java手机短信验证码实现
    java手机短信验证码实现
    来源:北京11选五和值走势图  时间:2017-11-20 16:01

    北京11选五和值走势图 www.tqjw.net     利用短信验证码进行身份验证是目前互联网众多产品常用的一种方式,那么这种短信验证功能是如何实现的呢?就以目前的主流语言java为例为大家介绍一下。

        一、准备工作:

        ①选择一家提供java短信接口的短信公司。

        ②获得该公司短信接口的短信接口文档和java短信接口的代码示例。

        二、梳理短信验证码发送整个流程:

        ①用户填入手机号,触发获取验证码按钮,然后页面程序验证手机号是否有效,有效则客户端发送请求到后台服务器,客户端开始倒计时60s,不通过则返回;

        ②服务器,验证手机号是否被注册或有效,通过则调用接入的短信验证码接口,并发送相关数据(包括手机号和验证码),然后回调结果,成功则将验证码存入session,失败则返回提示,不通过则返回。

        ③客户收到验证码后在有效时间内,填入并发送请求。

        ④服务器端,收到请求后,用户发送过来的验证码和事前放入session的验证码做对比,相同通过,否则提示验证码无效。

        ⑤通过后,需要将session中的验证码无效化,一般就是置为空。

        三、代码示例如下:

        代码段①:

    function sendCaptcha(tel) {    
    
           console.log("sendCaptcha: tel = " + tel);    
    
           $.ajax({    
    
               type: 'post',    
    
               url: '/sms/captcha/' + tel,    
    
               dataType: "json",    
    
               success: function (data) {    
    
                   console.log("sendCaptcha ==> success: data = " + eval(data));    
    
                   if (data) {    
    
                       countdown();    
    
                       b_code = false;    
    
                   } else {    
    
                       alert("您发送的频率过快!");    
    
                   }    
    
               },    
    
               error: function (data) {    
    
                   console.log("sendCaptcha ==> error: data = " + eval(data));    
    
                   alert("网络超时");    
    
                   clearTimeout(t);    
    
                   b_code = true;    
    
                   var msg = "获取验证码";    
    
                   $("#code").text(msg);    
    
                   c = 60;    
    
               }    
           });    
       }

    代码段②

    @RequestMapping(value = "captcha/{recPhoneNum}",   method = RequestMethod.POST)
            
       public Object getSmsCaptcha(ModelMap   model, @PathVariable("recPhoneNum")String recPhoneNum) {
               
           String responseBody = null; 
                  
           /* 这里验证手机号是否被注册 */ 
              
        ?    // 生成验证码    
        ?    
           String captcha  = Generator.generateCaptcha();
                   
           try {        
        ?        // 发送请求,第三方短信通信接口参数设置:账号accName 密码accPwd  乐信短信api文档查看地址://www.tqjw.net/apitext.html
               responseBody = sendSms(String   accName,String accPwd,recPhoneNum,"你的短信验证码是:"+captcha);
                   
              // 将验证码放入session    
              
                 model.addAttribute("captcha", captcha); 
                        
        ?      ?  // 得到结果    
               responseBody = rsp.getBody(); 
                      
               log.debug("getSmsCaptcha:   responseBody = " + responseBody);
                       
               if (rsp.getResult() !=   "101") {        
                     model.addAttribute("success_response",   rsp.getResult());        
               } else {        
                     model.addAttribute("error_response", rsp.getSubMsg());        
               }        
           } catch (ApiException e) {        
               log.error("getSmsCaptcha   :" + e.getErrMsg());        
           }        
            // 解析结果    
           if (successJson != null) { 
                  
               successJson =   successJson.getJSONObject("result"); 
                      
               return   successJson.getBoolean("success");
                       
           } else {
                   
               return false;        
           }        
         }       
    private String sendSms(String   accName,String accPwd,String mobies,String content){  
      
    StringBuffer sb = new   StringBuffer("//www.lx198.com/sdk/send?"); 
       
    try {    
    
    sb.append("&accName="+accName);  
       
    sb.append("&accPwd="+MD5.getMd5String(accPwd));
         
    sb.append("&aimcodes="+mobies);    
    
    sb.append("&content="+URLEncoder.encode(content,"UTF-8")); 
       
    sb.append("&bizId="+BizNumberUtil.createBizId());  
      
    sb.append("&dataType=string");    
    
    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) { 
     
    // TODO Auto-generated catch block
      
    e.printStackTrace();
       
    }    
    return null;
    }

    代码段③

    // 从session取出验证码
    
    String captcha = session.getAttribute("captcha");
    
    // 比较
    
    if (reqCaptcha.equals(captcha))// 
    
    相同通过,则无效化验证码
    
    session.setAttribute("captcha", null);
    
    else
    
    // 不通过并提示无效验证码

    以上就是java手机短信验证码实现流程,如还有什么疑问请在线咨询或拨打400电话:400-6699-521 。

  • 京东18.3亿底价再拿北京亦庄地块 竞买条件较为苛刻 2019-10-17
  • 专注声乐培训 CZ昕格音乐基地为热爱音乐的你而生 2019-10-17
  • 提供南水北调七成中线水 陕西一江清水送北京 2019-10-10
  • 你的声音,说一句话就能被克隆 2019-10-08
  • 她主动借腹给我生儿子,中途又移情别恋 有故事的人 2019-10-07
  • 候选企业:安徽古井集团 2019-10-06
  • 智能手机冲击大 数码相机不服输 2019-10-06
  • 工信部:我国4G用户达10.6亿户 宽带提速效果显著 2019-10-01
  • 一条塔里木河 串起南疆各色景致与无限风光 2019-10-01
  • 消防车进商场——“小小消防员”的消防安全乐体验 2019-09-27
  • 《游侠索罗》:票房失意之作的连锁反应 2019-09-27
  • 万物互联开启智慧新图景 下一代互联网未来已来 2019-09-27
  • 朔州市人大常委会任免名单 2019-09-27
  • 置业指南:盘点沙坪坝在售楼盘 2019-09-26
  • 加快南昌航空货运发展推进会举行 2019-09-26
  • 排列5开奖 被他6体育开户 98娱乐彩票网 福彩高频彩如何玩 澳洲时时彩是私彩吗 七星彩历史开奖数据 黑龙江36选7彩票 香港赛马会lg 百家乐筹码 江苏十一选五走势图 福建11远5 派彩走势图 彩票领导者app 反倍投绝对赚 手机电玩捕鱼游戏 中超现场直播龙珠