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.引數解釋
登入阿里大於,在這裡找到簡訊驗證碼的控制檯。 你需要配置簡訊簽名和簡訊模板,需要審批,審批的時候去訊息中心可以看到審批不通過的原因。
可以看到,簡訊簽名的簽名名稱 以及模板裡的模板id,是方法中要用到的,需要注意那麼模板長啥樣呢。
可以看到模板中有一個${phone} ${code},意思是說,在這裡定義一個變數區,再在方法中定義好$phone 和 $code ,並用作為陣列的兩個鍵值對。類似上面方法中的寫法。
[
'phone' => '18106503226',
'code' => '這是驗證碼'
]
目前為止,方法中的四個引數已經都講過了,再總結一下,
$data = $this->sms->send("$phone", "$name", "$content", "$code");
第一個引數是目標手機號,第二個引數是簡訊簽名的名稱,第三個引數是簡訊模板中使用到的引數,注意需要轉成物件,第四個引數是簡訊模板ID。