首頁 >php教程 >php手册 >思夢PHP-阿里大魚手機驗證碼

思夢PHP-阿里大魚手機驗證碼

WBOY
WBOY原創
2016-10-22 00:00:311562瀏覽

小夥伴是否做PC網站的時候,是否有遇到註冊用戶需要使用簡訊驗證的功能呢?或找回密碼,以及驗證使用者的資訊等等功能!今天思夢PHP就為大家帶來ThinkPHP整合阿里大魚簡訊驗證的功能!
首先,我們要明白短信發送是什麼原理,其實我們使用的第三方是一個通訊的短信協議,然後把我們隨機生成的一個驗證碼發送到用戶的手機上,之後我們發送的同時在數據庫裡面要保存對應的資訊用來驗證,原理就是這樣的了,下來我們就開始一步一步的教大家去玩這個功能!
(1)我們要去建造一個保存簡訊訊息的資料表
思夢PHP-阿里大魚手機驗證碼
(2)我們要去使用第三方的類文件,當然這個類文件你可以去平台下載,上面有PHP的demo,然後我們整合到thinkphp裡面就行了,加入放在類庫裡面不要忘記聲明命名空間!
(3)我們在設定檔裡面配置一些輔助變數
思夢PHP-阿里大魚手機驗證碼
(4)這步就是我們開始寫邏輯操作了
$_POST['tel'] = "18522713XXX";
$tel = $_POST['tel'];
$w['tel'] = $tel;
$res1 = D("Record")->where($w)->find();
//一天之內只能有三次機會(驗證)
$gap = time()-$res1['ctime'];
if($gap>=86400){
$data['time'] = 0;
D("Record")->where($w)->save($data);
}
$res1 = D("Record")->where($w)->find();
if($res1['time']>=3){
echo "簡訊上限!";
}else {
//隨機傳送的驗證碼的值
$num = rand(1000, 9999);
//實例化一個物件
$ecd = new Ecd(C('url'), C('app_key'),
C('app_secret'), C('format'));
//發送驗證碼簡訊
//第一個參數是手機號,第二個是模板的id,在應用程式管理有
一個模板的管理,第三個是我們發送的隨機的驗證碼,第
四個是訂單號碼,咟䦕不填
$res = $ecd->send_sms_code("$tel", '1', "$num", '');
$arr = json_decode($res, true);
if ($arr['result'] == 0 && $arr['msg'] == "成功") {
$w['tel'] = $tel;
$res1 = D("Record")->where($w)->find();
if ($res1) {
$data['vc'] = $num;
$data['time'] = $res1['time'] + 1;
$data['ctime'] = time();
$res2 = D("Record")->where($w)->save($data);
if ($res2) {
echo "發送成功";
} else {
echo "發送失敗";
}
} else {
$data['tel'] = $tel;
$data['vc'] = $num;
$data['time'] = 1;
$data['ctime'] = time();
$res3 = D("Record")->add($data);
if ($res3) {
echo "發送成功";
} else {
echo "發送失敗";
}
}
}
}
(5)那就是收到短信,然後用戶提交的時候我們根據用戶的手機號去查相關的驗證碼好了!

還有就是小伙伴要注意的就是,阿里大魚未認證的用戶,只能給白名單的用戶發送短信,所以你要去配置一下白名單,以保證我們發送的成功!還有就是剛申請的時候是有免費的100條使用的條數的,供我們測試使用!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn