短信驗證碼接口開發代碼
阿新 • • 發佈:2018-02-06
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(); }
短信驗證碼接口開發代碼