1. 程式人生 > >短信驗證碼接口開發代碼

短信驗證碼接口開發代碼

del 手機驗證 emp print 動力 fun count 開始 ++

現在不管是網站或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();

  }

短信驗證碼接口開發代碼