當前位置:網站首頁>發送短信驗證碼
發送短信驗證碼
2022-01-26 22:52:29 【陳卿諾語】
1.場景:通常在使用手機號注册時需要發送短信驗證碼,在修改密碼等敏感操作時也需要驗證手機號發送短信驗證碼。
短信驗證碼的目的:驗證用戶的身份是否本人
在項目代碼中發送短信,通常要調用第三方短信商的短信發送接口。
提供短信接口的平臺:百度Apistore數據平臺、聚合數據平臺、京東萬象、短信寶等等
一般情况下,短信接口需要企業認證用戶才能申請、一般都是收費的。
以短信寶為例:個人可以購買使用
javascript:
//驗證手機號
$('#dyMobileButton').click(function(){
var mobile = $('#phone').val();
var preg = /^1[3589]\d{9}$/;
if (mobile == '' || !preg.test(mobile)){
$('.error:eq(0)').html('手機格式不正確');
}else{
$('.error:eq(0)').empty();
}
//倒計時
var that = $(this);
that.attr('disabled',true);//點擊過後不能再次點擊
//60s之後才能再次發送
var second = 60;
var timer = setInterval(function () {
second --
if (second > 0){
that.text(second + 's後再次發送')
}else{
that.text('發送驗證碼')
that.attr('disabled',false);//打開點擊功能
clearInterval(timer);//清空定時器
}
},1000);
//發送驗證碼
$.ajax({
url:'sendCode',
dataType:'json',
data:{mobile:mobile},
success:function (res) {
alert(res.msg);
return ;
}
})
});
控制器:
//驗證碼
public function sendCode($mobile){
$return = [
'code' => 200,
'msg' => 'ok',
'data' => []
];
$data = SendCode::sendCode($mobile);
$return['data'] = $data;
return json($return);
}
封裝業務層:
//驗證碼
public static function sendCode($mobile){
$statusStr = array(
"0" => "短信發送成功",
"-1" => "參數不全",
"-2" => "服務器空間不支持,請確認支持curl或者fsocket,聯系您的空間商解决或者更換空間!",
"30" => "密碼錯誤",
"40" => "賬號不存在",
"41" => "餘額不足",
"42" => "帳戶已過期",
"43" => "IP地址限制",
"50" => "內容含有敏感詞"
);
//生成隨機數
$code = rand(1000,9999);
//緩存
Cache::set("code",$code,300);
$smsapi = "http://api.smsbao.com/";
$user = "***"; //短信平臺帳號
$pass = md5("****"); //短信平臺密碼
$content="短信內容";//要發送的短信內容
$phone = "*****";//要發送短信的手機號碼
$sendurl = $smsapi . "sms?u=" . $user . "&p=" . $pass . "&m=" . $phone . "&c=" . urlencode($content);
$result = file_get_contents($sendurl);
return $statusStr[$result];
}
版權聲明
本文為[陳卿諾語]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201262252292597.html
邊欄推薦
猜你喜歡
隨機推薦
- uniapp上傳圖片及組件傳值
- 瑞利年金險資金保障安全嗎?收益高不高啊?
- 華為手機USB連不上電腦的解决方法
- Flutter 2,移動金融應用開發
- 關於st25系列NFC標簽簡單介紹及st25TV系列用於門禁讀取時的注意事項總結
- 關於用ffmpeg轉手機視頻發現視頻長寬倒了的問題
- 函數 / 類模板--模板2
- 數組中的第k個最大的元素--優先級隊列、排序、堆、排序
- 單片機實例27——ADC0809A/D轉換器基本應用技術(硬件電路圖+匯編程序+C語言程序)
- Collection集合的學習
- 一場面試結束,某度員工從事Android 5年為何還是初級工程師?
- 3本書閱讀筆記【人月神話-Go語言實戰-研發能力持續成長路線】01
- PHP垃圾回收機制
- 【電子技術】什麼是LFSR?
- 死鎖?如何定比特到死鎖?如何修複死鎖?(jps和jstack兩個工具)
- 快樂寒假 22/01/20
- image
- 噴程序員?SURE?
- LDO分壓電阻計算小工具
- 面試之求一串字符串中每個字符的出現次數
- 【ISO15765_UDS&OBD診斷】-01-概述
- 【Mysql上分之路】第九篇:Mysql存儲引擎
- RHCE 第一次作業
- 2021.10.16我的第一篇博客:一切皆有可能!
- CTA-敏感行為-讀取IMEI
- 面試被問怎麼排查平時遇到的系統CPU飆高和頻繁GC,該怎麼回答?
- nuxt項目總結-綜合
- 自然語言處理學習筆記(一)
- C語言第一課
- 各比特大佬,Spark的重點難點系列暫時更新完畢
- 基於 esbuild 的 universal bundler 設計
- XCTFre逆向(四):insanity
- 理解什麼是真正的並發數
- JVM腦圖
- 【Pytorch(四)】學習如何使用 PyTorch 讀取並處理數據集
- 函數棧幀的創建與銷毀
- 構建神經網絡- 手寫字體識別案例
- 多模態生成模型ERNIE-VILG
- kotlin不容忽視的小細節
- 備戰一年,終於斬獲騰訊T3,我堅信成功是可以複制的