码迷,mamicode.com
首页 > 其他好文 > 详细

短信验证码接口开发代码

时间:2018-02-06 16:37:06      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:new   query   trace   ext   time()   start   bubuko   dea   eal   

    现在不管是网站或app都需要调用短信验证码接口实现短信验证功能,前段时间实现网站注册功能时需要用户获取短信验证码,验证手机方能注册,具体的代码如下:

    这里先说明一下,调用的短信验证码接口是第三方短信服务商动力思维乐信的,具体有关接口的说明可以参考下乐信短信接口API文档:http://www.lx598.com/apitext.html 。

    手机号码短信验证前台页面效果

技术分享图片

前端代码实现:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >

  <html xmlns>

  <head>

  <title></title>

  <script src="js/jquery-1.4a2.min.js" type="text/javascript"></script>

  <script type="text/javascript">

  /*-------------------------------------------*/

  var InterValObj; //timer变量,控制时间

  var count = 60; //间隔函数,1秒执行

  var curCount;//当前剩余秒数

  var code = ""; //验证码

  var codeLength = 6;//验证码长度

  function sendMessage() {

  curCount = count;

  var dealType; //验证方式

  tel = $(’#tel’).val();

  if(tel!=’’){

  //验证手机有效性

  var myreg = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/;

  if(!myreg.test($(’#tel’).val()))

  {

  alert(’请输入有效的手机号码!’);

  return false;

  }

  tel = $(’#tel’).val();

  //产生验证码

  for (var i = 0; i < codeLength; i++) {

  code += parseInt(Math.random() * 9).toString();

  }

  //设置button效果,开始计时

  $("#btnSendCode").attr("disabled", "true");

  $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");

  InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次

  //向后台发送处理数据

  $.ajax({

  type: "POST", //用POST方式传输

  dataType: "text", //数据格式:JSON

  url: ’yanzhengma.do’, //方法路径(根据实际地址)

  data: "&tel=" + tel + "&code=" + code,

  error: function (XMLHttpRequest, textStatus, errorThrown) { },

  success: function (msg){ }

  });

  }else{

  alert(’请填写手机号码’);
  }

  }

  //timer处理函数

  function SetRemainTime() {

  if (curCount == 0) {

  window.clearInterval(InterValObj);//停止计时器

  $("#btnSendCode").removeAttr("disabled");//启用按钮

  $("#btnSendCode").val("重新发送验证码");

  code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效

  }

  else {

  curCount--;

  $("#btnSendCode").val("请在" + curCount + "秒内输入验证码");

  }

  }

  </script>

  </head>

  <body>

  <input name="tel" id=tel type="text" />

  <input id="btnSendCode" type="button" value="发送验证码" onclick="sendMessage()" /></p>

  </body>
  </html>

 在yanzhengma.do方法里调用接口方法

      /**
	 * 调用短信服务器短信接口
	 * @param accName 乐信账号用户名
	 * @param accPwd 乐信账号密码
	 * @param seed 当前时间 格式:YYYYMMDD HHMISS 例如:20130806102030
	 * @param aimcodes 手机号多个手机号之间英文半角逗号隔开
	 * @param content 内容后加签名
	 * @param schTime 定时时间格式如:2010-01-01 08:00:00
	 * @return 服务端返回的结果 ok:业务id 或者 错误代码
	 */
	public static String sendSms(String accName,String accPwd,String mobies,String content,String schTime){
		StringBuffer sb = new StringBuffer("http://sdk.lx198.com/sdk/send2?");
		try {
			String seed=new SimpleDateFormat(dateFormatStr).format(new Date());
			sb.append("&accName="+accName); 
			sb.append("&seed="+seed);
			sb.append("&accPwd="+MD5.getMd5String(MD5.getMd5String(accPwd)+seed)); 
			sb.append("&aimcodes="+mobies);
			sb.append("&schTime="+URLEncoder.encode(schTime,"UTF-8")); //空格标点符号做encode转换
			sb.append("&content="+URLEncoder.encode(content,"UTF-8")); //中文做encode转换
			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) {
			e.printStackTrace();
		}
			return null;
		}

    提交表单信息时对短信验证码验证


    //手机验证码开始

  session_start();

  $svalitel = $_SESSION[’mobilecode’];

  $vdcodetel = empty($vdcodetel) ? ’’ : strtolower(trim($vdcodetel));

  if(strtolower($vdcodetel)!=$svalitel || $svalitel==’’)

  {

  ResetVdValue();

  //echo "Pageviews=".$vdcodetel;

  ShowMsg("手机验证码错误!", ’-1’);

  exit();

  }

 

短信验证码接口开发代码

标签:new   query   trace   ext   time()   start   bubuko   dea   eal   

原文地址:https://www.cnblogs.com/qifei-2018/p/8422589.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!