最近遇到的项目须要个随机短信验证码实现注册用户java
选用的是“云信使”,由于有15条免费的测试短信能够验证代码是否正确调用该短信apiajax
进入短信平台api
用户认证完成后,建立一个验证码的短信模板dom
等待审核异步
往下拉jsp
在项目中引入MessageLogController.java async
分析MessageLogController.java 代码,能够发现其实就是 发送一个http请求测试
咱们也能够本身写一个java http请求,。。能够在注册页面获取手机号和随机数后经过ajax异步请求一个jsp页面,传入要发送给的手机号码和随机数,而后这个jsp 调用java http请求便可发送spa
官方SDK:3d
如下,是 6位数字 验证码生成 + 由login.jsp 文件 ajax 请求到 sedMess.jsp + 倒计时从新发送提示 + 验证输入的验证码 是否和 发送的验证码相同
【经过全局变量保留 生成的随机数 用于 和用户输入的验证码相对比】
<script> var number = ""; function shortMessagraxc() { var xx = document.getElementById("newphone").value; if(xx == ""){ alert("请输入手机号码!"); }else{ var num =""; for(var i = 0;i < 6;i++){ num += Math.floor(Math.random()*10); } alert(xx+" "+num); var xmlhttp = new XMLHttpRequest(); xmlhttp.open("POST","sedMess.jsp?number="+num+"&phone="+xx,true); xmlhttp.send(); //修改全局变量 $.ajax({ async: false, success: function() { number = num; } }) //alert(number);//检测全局变量 是否被修改 var count = 10; var countdown = setInterval(CountDown, 1000); function CountDown() { $(".btn_yzm").attr("disabled", true); $(".btn_yzm").val("" + count + "s"); if (count == 0) { $(".btn_yzm").val("从新获取").removeAttr("disabled"); clearInterval(countdown); } count--; } } }; function checkM(){ //alert(number); //检测全局变量 是否被修改 var yxy = document.getElementById("yanZM").value; if( yxy == null){ alert("请输入验证码"); return false; }else if(yxy != number){ alert("请输入正确验证码"); document.getElementById("yanZM").value = ""; return false; }else{ return true; } } </script>