当前位置:主页 > 行业快报 >

『即时通信』java手机短信验证码实现

日期:编辑:小编

利用短信验证码进行身份验证是目前互联网众多产品常用的一种方式,那么这种短信验证功能是如何实现的呢?就以目前的主流语言java为例为大家介绍一下。

一、准备工作:

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

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

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

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

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

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

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

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

三、代码示例如下:

代码段①:

functionsendCaptcha(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;varmsg=获取验证码;$(#code).text(msg);c=60;}});}

代码段②

@RequestMapping(value=captcha/{recPhoneNum},method=RequestMethod.POST)publicObjectgetSmsCaptcha(ModelMapmodel,@PathVariable(recPhoneNum)StringrecPhoneNum){StringresponseBody=null;/*这里验证手机号是否被注册*///生成验证码Stringcaptcha=Generator.generateCaptcha();try{//发送请求,第三方短信通信接口参数设置:账号accName密码accPwd518通讯短信api文档查看地址:responseBody=sendSms(StringaccName,StringaccPwd,recPhoneNum,你的短信验证码是:+captcha);//将验证码放入sessionmodel.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(ApiExceptione){log.error(getSmsCaptcha:+e.getErrMsg());}//解析结果if(successJson!=null){successJson=successJson.getJSONObject(result);returnsuccessJson.getBoolean(success);}else{returnfalse;}}privateStringsendSms(StringaccName,StringaccPwd,Stringmobies,Stringcontent){StringBuffersb=newStringBuffer(http://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);URLurl=newURL(sb.toString());HttpURLConnectionconnection=(HttpURLConnection)url.openConnection();connection.setRequestMethod(POST);BufferedReaderin=newBufferedReader(newInputStreamReader(url.openStream()));returnin.readLine();}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnnull;}

代码段③

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

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

相关阅读

  • 电信物联网卡资费套餐是怎样的?

  • 物联网卡被运用最多的是它的数据事务,可是会有特定的事务场景需求运用短信和语音事务。以同享单车为例,扫描开锁进程就是物联网技术的运用,前期的同享单车运用的是2G网络,...
  • 2020年商超促销短信这样写,客户量提升100%!

  • 节假日商超促销我们总能收到一些超市、专柜的活动短信,而这些促销 短信群发 的文案却大多难以引起客户共鸣,那么商超促销短信怎么写才更吸引人?下面小编就为大家分享几个实用的...

热门文章