价格不是我们的优势,品质永远是我们的追求!
当前位置:新疆时时彩购彩行业快讯 > java手机短信验证码实现
java手机短信验证码实现
来源:新疆时时彩购彩  时间:2017-11-20 16:01

新疆时时彩购彩 www.gnouw.com.cn     利用短信验证码进行身份验证是目前互联网众多产品常用的一种方式,那么这种短信验证功能是如何实现的呢?就以目前的主流语言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.gnouw.com.cn/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 。

  • 人们想怎么话就怎么活,这就是所谓的“自由”吧。[微笑][微笑] 2019-06-16
  • 赵俊杰:G7不会轻易走向解体 2019-06-16
  • 凯恩率“三狮军团”艰难战胜突尼斯 2019-06-16
  • 人民日报驻美记者高石:美国急于将空袭打造为特朗普政府政绩 2019-06-15
  • “奥运新秀”亮相上海 亚帆联杯等你来看 2019-06-15
  • 美国又打出2000亿关税牌,中方这300字声明暗藏玄机! 2019-06-14
  • 日本卫生间竟然如此牛逼?!看完只能给满分了! 2019-06-14
  • 2018年两会第四场“部长通道” 2019-06-13
  • 让人才如“夏花般灿烂” 2019-06-13
  • 鹿晗解说、姜文定制宣传片 世界杯主题的网综来了 2019-06-12
  • “草原英雄小姐妹”走进山城 2019-06-12
  • 【脱贫路上】衣比·衣明: 小庭院里巧增收 2019-06-12
  • 一位居住在深圳城中村的人才 2019-06-11
  • 黄文:能救孩子,我很自豪 2019-06-11
  • 中国球迷如何参与世界杯? 竞彩游戏开售全部64场比赛 2019-06-11
  • 232| 177| 703| 695| 986| 557| 956| 792| 420| 692|