Laravel5中使用阿里大於(魚)發送短信驗證碼php
發佈時間:2017-06-02 laravel
在作用戶註冊和我的中心的安全管理時,我實現藉助第三方短信平臺(阿里大於(魚))在Laravel框架中進行手機驗證的設置;阿里大於,是阿里通訊旗下優質便捷的雲通訊服務平臺,整合了三大運營商的通訊能力,爲開發者提供簡潔易用的短信/語音API,三網合一通道,按需付費。json
安裝laravel阿里大於(魚)服務數組
composer require iscms/alisms-for-laravel
註冊服務(config/app.php)安全
在文件中找到Providers數組,寫入session
iscms/Alisms/AlidayuServiceProvider::class
生成阿里大於(魚)配置文件(config文件夾)app
php artisan vendor:publish
修改阿里大於(魚)配置文件(alisms.php)文件爲:composer
<?php return [ 'KEY' =>env('ALISMS_KEY',null), 'SECRETKEY'=>env('ALISMS_SECRETKEY',null) ];
laravel根目錄下找到.env文件,把阿里大魚的App key和配置成全局變量(http://www.alidayu.com/)框架
ALISMS_KEY=234*****3 ALISMS_SECRETKEY=****************
在您須要調用短信服務的控制器中,引用SMSide
use iscms\Alisms\SendsmsPusher as Sms; public function __construct(Sms $sms) { $this->sms=$sms; } public function Alidayu(Request $request){ $phone = $request ->input('phone','1508*****55'); // 用戶手機號,接收驗證碼 $name = '小張我的博客'; // 短信簽名,能夠在阿里大魚的管理中心看到 $num = rand(100000, 999999); // 生成隨機驗證碼 $smsParams = [ 'number' => "$num" ]; $content = json_encode($smsParams); // 轉換成json格式的 $code = "SMS_63****73"; // 阿里大於(魚)短信模板ID $request ->session()->put('alidayu',$num); // 存入session 後面作數據驗證 $result=$this->sms->send($phone,$name,$content,$code); echo "驗證碼:".session('alidayu').'<br/>'; if(property_exists($request,'result')){ // 使用PHP函數json_encode方法將給定數組轉化爲JSON: return json_encode(['ResultData' => '成功', 'info' => '已發送']); }else{ return json_encode(['ResultData' => '失敗', 'info' => '重複發送']); }
參數說明:
$phone 手機號,用戶輸入的手機號
$name 短信簽名,阿里大魚申請的短信簽名的名字
$content 替換短信模板中的變量,JSON字符串格式,全部值都是字符串,不能有整形
$code 阿里大魚申請的短信模ID:SMS_39***4
阿里大於(魚)短信模板(http://www.alidayu.com/)
模板名稱: 身份驗證 模板ID: SMS_39***4 *模板內容:驗證碼${code},您正在進行我的身份驗證,打死不要告訴別人哦!
那麼裏面存在着變量${code}須要替換成驗證碼,那麼對應的$content 就應該爲{code:"生成的驗證碼,如:123456"}
到這裏Laravel5使用阿里大於(魚)發送短信驗證碼應該沒有問題了,開始發送短信吧~ ^_^
alisms-for-laravel:https://packagist.org/packages/iscms/alisms-for-laravel