一篇介紹基於laravel框架實現短信驗證碼註冊的demo文章。文章篇幅適中,適宜閱讀,有不清楚的地方可以私信博主詢問,謝謝大家:)
1. 服務商註冊
短信的服務商有很多,這裡介紹雲片,選擇雲片作為我們的短信服務商,註冊成功後,會有 10 條短信的免費額度,但願夠了。
然後點擊註冊,註冊賬戶
註冊成功後,會要求填寫姓名及公司名稱,可以填寫一下相關信息,學生可以填寫班級或學校,使用一下而已,之後可能會有電話回訪,不影響使用!
基本每個短信服務商都需要設置以及後才允許發送驗證碼,這一點每個短信服務商都大同小異
然後我們開始添加,簽名一般都是跟隨在短信的開始或者末尾的比如:
【雲片網】雲片網驗證功能碼:XXXXXXX
【雲片網】就是簽名
在添加或者之前,如果是還沒有添加開發者信息,記得去添加
選個人然後提交證件照片即可,然後添加簽名,等待通過審核
添加範本也是差不多的操作
2. 安裝相關元件
然後我們需要利用composer安裝一個元件,使用phpstorm的Terminal輸入以下代碼:
composer require "overtrue/easy-sms"
為了方便使用我們需要封裝一下該元件的ServiceProvider
在config中添加easysms.php文件
也可以使用Terminal命令行添加:
touch config/easysms.php
然後填入如下內容
app/providers/EasySmsServiceProvider.php
在 .env 中配置 YUNPIAN_API_KEY
YUNPIAN_API_KEY=*****
在 .env.example 中也要加入配置示例
YUNPIAN_API_KEY=
3.測試短信
使用artisan調試一下
打開tinker
php artisan tinker
輸入以下代碼
$sms = app('easysms');
try {
$sms->send(111111, [
'content' => '【您的簽名】您的驗證碼是1234。如非本人操作,請忽略本短信',
]);
} catch (OvertrueEasySmsExceptionsNoGatewayAvailableException $exception) {
$message = $exception->getException('yunpian')->getMessage();
dd($message);
注意將111111替換為您的手機號,將 【您的簽名】您的驗證碼是1234。如非本人操作,請忽略本短信 改成您的和然後你可能會報如下錯誤
curl: (60) SSL certificate problem: unable to get local issuer certificate 錯誤
解決方法:這是因為缺少相關證書導致的,下載cacert .pem
然後打開php.ini文件
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "****"
將 **** 替換為你的 cacert .pem 的絕對路徑即可
然後再次嘗試如果返回亂碼,就代表你成功了,返回亂碼是因為編碼問題,但是你的手機還是不會受到短信,因為亂碼的範本沒有找到,但是你可以在雲片的失敗發送里看到這個信息,這個時候新建路由與方法,修改方法,再次測試即可!
成功了記得打賞點積分
老鐵,受用了[aru_49]