Laravel 貼合實際需求同時知足多種通道的短信發送組件php
基於業務需求在 overtrue/easy-sms 進行擴展開發,主要實現以下功能:laravel
包地址:ibrand/laravel-smsgit
TODO:github
composer require ibrand/laravel-sms:~1.0 -vvv
複製代碼
低於 Laravel5.5 版本web
config/app.php
文件中 'providers' 添加數據庫
iBrand\Sms\ServiceProvder::class
複製代碼
config/app.php
文件中 'aliases' 添加api
'Sms'=> iBrand\Sms\Facade::class
複製代碼
實現了發送短信驗證碼路由,支持 web 和 api ,能夠自定義路由的 prefix。bash
'route' => [
'prefix' => 'sms',
'middleware' => ['web'],
],
or
'route' => [
'prefix' => 'sms',
'middleware' => ['api'],
],
複製代碼
POST請求 http://your.domain/sms/verify-code
app
參數:mobilecomposer
備註:爲了支持開發時的調試,在發送驗證碼時不去驗證手機號自己的有效性,請在發送驗證碼前自行驗證。
返回參數:
{
"status": true,
"message": "短信發送成功"
}
複製代碼
use iBrand\Sms\Facade as Sms;
if (!Sms::checkCode(\request('mobile'), \request('code'))) {
//驗證失敗,處理自身業務
}
複製代碼
在 config/ibrand/sms.php
的 gateways
參數能夠直接添加 code_template_id
來配置模板 id
// 可用的網關配置
'gateways' => [
'errorlog' => [
'file' => '/tmp/easy-sms.log',
],
'yunpian' => [
'api_key' => '824f0ff2f71cab52936axxxxxxxxxx',
],
'aliyun' => [
'access_key_id' => 'dalvTXXX',
'access_key_secret' => 'XXXX',
'sign_name' => '阿里雲短信測試專用',
'code_template_id' => 'SMS_80215252'
],
'alidayu' =>
//...
],
],
複製代碼
非模板類通道,能夠經過 config/ibrand/sms.php 自定義短信內容
'content' => '【your signature】親愛的用戶,您的驗證碼是%s。有效期爲%s分鐘,請儘快驗證。'
在實際開發中會存在並不用真實發出驗證碼的狀況,所以在 debug 模式下,能夠經過
http://your.domain/api/sms/info?mobile=1898888XXXX
來直接只看某個手機號當前有效驗證碼信息。
歡迎你們 star 和提交 issue :)