Laravel5中使用阿里大於(魚)發送短信驗證碼
發布時間:2017-06-02
在做用戶注冊和個人中心的安全管理時,我實現借助第三方短信平台(阿里大於(魚))在Laravel框架中進行手機驗證的設置;阿里大於,是阿里通信旗下優質便捷的雲通信服務平台,整合了三大運營商的通信能力,為開發者提供簡潔易用的短信/語音API,三網合一通道,按需付費。
安裝laravel阿里大於(魚)服務
composer require iscms/alisms-for-laravel
注冊服務(config/app.php)
在文件中找到Providers數組,寫入
iscms/Alisms/AlidayuServiceProvider::class
生成阿里大於(魚)配置文件(config文件夾)
php artisan vendor:publish
修改阿里大於(魚)配置文件(alisms.php)文件為:
<?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=****************
在您需要調用短信服務的控制器中,引用SMS
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
