• 特朗普向朝鲜大将尴尬敬礼 被美国内猛批 2019-08-21
  • 石家庄首届“古中山杯”舞蹈大赛决赛在平山举行 2019-08-21
  • 永不沉没的泰坦尼克号工程开工仪式举行(一) 2019-08-19
  • 今年回南天为何掉线了?这其实并不奇怪 2019-08-19
  • 政能亮政府服务,当好“店小二”而非“二大爷” 2019-08-16
  • 女性之声——全国妇联 2019-08-16
  • 人傻有人爱,人聪明有人恨,人愚笨有人笑,人痴有人关心,不是每个人的命运都一样的 2019-08-11
  • 人民的力量——一份大报,与一个大党、一个大国的故事 2019-08-05
  • 中华人民共和国建筑法 2019-08-05
  • 转方式调结构显现阶段性成果(读数·发现经济运行的轨迹) 2019-08-02
  • 一语惊坛(6月8日):友谊勋章是给国际友人的最高荣誉。 2019-08-02
  • 《红海行动》出征中美电影节 2019-07-28
  • 发挥自身优势 奋力走在前列——习近平总书记在山东考察回访记 2019-07-28
  • 民生时评:上海支付宝回收垃圾并不现实(原创首发) 2019-07-28
  • 俺发现你还真是踩云的人。找不到谱。 2019-07-28
  • 价格不是我们的优势,品质永远是我们的追求!
    当前位置:北京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 。

  • 特朗普向朝鲜大将尴尬敬礼 被美国内猛批 2019-08-21
  • 石家庄首届“古中山杯”舞蹈大赛决赛在平山举行 2019-08-21
  • 永不沉没的泰坦尼克号工程开工仪式举行(一) 2019-08-19
  • 今年回南天为何掉线了?这其实并不奇怪 2019-08-19
  • 政能亮政府服务,当好“店小二”而非“二大爷” 2019-08-16
  • 女性之声——全国妇联 2019-08-16
  • 人傻有人爱,人聪明有人恨,人愚笨有人笑,人痴有人关心,不是每个人的命运都一样的 2019-08-11
  • 人民的力量——一份大报,与一个大党、一个大国的故事 2019-08-05
  • 中华人民共和国建筑法 2019-08-05
  • 转方式调结构显现阶段性成果(读数·发现经济运行的轨迹) 2019-08-02
  • 一语惊坛(6月8日):友谊勋章是给国际友人的最高荣誉。 2019-08-02
  • 《红海行动》出征中美电影节 2019-07-28
  • 发挥自身优势 奋力走在前列——习近平总书记在山东考察回访记 2019-07-28
  • 民生时评:上海支付宝回收垃圾并不现实(原创首发) 2019-07-28
  • 俺发现你还真是踩云的人。找不到谱。 2019-07-28
  • 新疆18选7官方网站 ag真人视讯 福建快3第三位走势图 彩经网彩票走势图大全 1甘肃快3开奖结果 网上真人龙虎斗 时时彩奖金9.98的平台 28杠闲家押注技巧 168图库彩图资料大全 福彩快三骗局 一分赛车漏洞 七乐彩尾号分布图 广东36选7中奖查询 新手怎幺投注青海快三 法甲新赛季