阿里大於

毛仔發表於2018-11-21

1.拉元件

composer require iscms/alisms-for-laravel  

2.在config/app.php的providers陣列中配置

iscms\Alisms\AlidayuServiceProvider::class,  

3.在專案根目錄執行

php artisan vendor:publish  

4.config目錄應該增加alisms.php配置檔案

<?php  
return [
    'KEY' =>env('ALISMS_KEY',null),
    'SECRETKEY'=>env('ALISMS_SECRETKEY',null),
];

5.專案的.ENV 配置檔案中寫入 SMS 配置 例如

 ALISMS_KEY=31663166
 ALISMS_SECRETKEY=**************

6.例項

  use iscms\Alisms\SendsmsPusher as Sms;
  public function sendSms($phone)
{
    //資料驗證
    if (empty($phone)) ['ServerNo' => 400, 'ResultData' => '引數錯誤'];
    // 生成驗證碼
    $num = rand(100000, 999999);

    // 定義使用者名稱稱和驗證碼
    $smsParams = [
        'phone' => '使用者',
        'code' => "$num"
    ];

    // 定義接收使用者和配置
    $name = '賈濟林';
    $content = json_encode($smsParams);
    $code = 'SMS_47955294';

    // 執行傳送動作
    $data = $this->sms->send("$phone", "$name", "$content", "$code");

    // 判斷簡訊傳送結果
    if (property_exists($data, 'result')) {

        // 如果成功,將驗證碼存入redis 設定2分鐘失效時間
        Redis::setex(CAPTCHA_SMS.$phone,120,$num);

        \Log::info('註冊--簡訊驗證碼傳送成功,驗證碼是:'.Redis::get(CAPTCHA_SMS.$phone));
        return ['ServerNo' => 200, 'ResultData' => '簡訊傳送成功'];
    } else {
        return ['ServerNo' => 500, 'ResultData' => '簡訊失敗'];
    }
}

7.引數解釋

Paste_Image.png
登入阿里大於,在這裡找到簡訊驗證碼的控制檯。 你需要配置簡訊簽名和簡訊模板,需要審批,審批的時候去訊息中心可以看到審批不通過的原因。

Paste_Image.png

Paste_Image.png
可以看到,簡訊簽名的簽名名稱 以及模板裡的模板id,是方法中要用到的,需要注意那麼模板長啥樣呢。

Paste_Image.png
可以看到模板中有一個${phone} ${code},意思是說,在這裡定義一個變數區,再在方法中定義好$phone 和 $code ,並用作為陣列的兩個鍵值對。類似上面方法中的寫法。

[
    'phone' => '18106503226',
    'code'   => '這是驗證碼'
]

目前為止,方法中的四個引數已經都講過了,再總結一下,

$data = $this->sms->send("$phone", "$name", "$content", "$code");

第一個引數是目標手機號,第二個引數是簡訊簽名的名稱,第三個引數是簡訊模板中使用到的引數,注意需要轉成物件,第四個引數是簡訊模板ID。

相關文章