1.安裝:在項目根目錄下composer require iscms/alisms-for-laravel
2.配置:在config/app.php
文件中數組providers
添加一行
iscms\Alisms\AlidayuServiceProvider::class,
3.執行:在項目根目錄下php artisan vendor:publish
然后config
目錄下應該增加了alisms.php
文件
<?php
return [
'KEY' =>env('ALISMS_KEY',null),
'SECRETKEY'=>env('ALISMS_SECRETKEY',null),
];
在.env
文件中配置:SMS
ALISMS_KEY=阿里大于證書賬號
ALISMS_SECRETKEY=阿里大于證書密碼
引入命名空間:use iscms\Alisms\SendsmsPusher;
protected static $sms = null;
//使用構造函數對靜態屬性進行初始化賦值
public function __construct(Sms $Sms)
{
self::$sms = $Sms;
}
/**
*阿里大于短信插件方法,參數傳入一個11位的數字
*$phone 用戶的手機號
*$name 短信簽名,阿里大魚申請的短信簽名的名字
*$content 替換短信模板中的變量,JSON字符串格式,所有值都是字符串,不能有整形
*$code 阿里大魚申請的短信模板編號
*/
public function code(Request $request)
{
$input = $request->all();
// 判斷該手機在10分鐘內是否已經發過短信
$exists = \Redis::exists('phone'.$input['phone']);
f(!empty($exists)){
return response()->json(['ResultData'=>'失敗','info'=>'已發送,請十分鐘之后再試']);
}
//隨機驗證碼
$num = rand(100000,999999);
$smsParams = [
//阿里大于定義的變量名
'int' => "$num",
'name' => '你好,歡迎你使用本平臺'
];
//要發送的號碼
$phone = $input['phone'];
//阿里大于短信簽名
$name = '簽名名稱';
//數組,要發送的值
$content = json_encode($smsParams);
//你的短信模板ID
$code = '你的模板ID';
$data = self::$sms->send($phone,$name,$content,$code);
//判斷是否發送成功
if(property_exists($data,'result')){
//把手機號碼存入redis緩存 設置600秒的有效時間
\Redis::sEtex('phone'.$phone,600,$num);
//發送成功返回成功
return response()->json(['ResultData'=>'成功','info'=>'已發送']);
}else{
//發送失敗返回失敗
return response()->json(['ResultData'=>'失敗','info'=>'重復發送']);
}
}
注意:以上使用時需要安裝Predis這個laravel擴展,如果本地已安裝了Redis的話就需要把Redis關閉,否則會與Preids沖突
內容來源:呂倡個人博客