laravel中使用阿里大于短信

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沖突

內容來源:呂倡個人博客

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.安裝:在項目根目錄下composer require iscms/alisms-for-laravel 2.配...
    山歐巴閱讀 487評論 0 0
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,933評論 18 139
  • 是什么 如果你知道yum、apt-get、npm、bower等命令中的一種或者多種,那么,你也能很快知道compo...
    旱魃一樣閱讀 3,161評論 0 9
  • 過去做事情急,什么東西拿起來就用,不喜歡進行系統性的學習,造成在使用過程中的錯誤和低效,現在感覺自己耐心多了,用之...
    馬文Marvin閱讀 2,022評論 0 10
  • 1 總有朋友跟我說,他家的小孩總是不聽話,我就說,小孩子為什么要聽你的話呢? 小孩子有自己的意志,你可以建議他怎么...
    幣市柳少俠閱讀 540評論 0 0