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。app
'route' => [ 'prefix' => 'sms', 'middleware' => ['web'], ], or 'route' => [ 'prefix' => 'sms', 'middleware' => ['api'], ],
POST請求 http://your.domain/sms/verify-code
composer
參數:mobiledom
備註:爲了支持開發時的調試,在發送驗證碼時不去驗證手機號自己的有效性,請在發送驗證碼前自行驗證。
返回參數:
{ "status": true, "message": "短信發送成功" }
use iBrand\Sms\Facade as Sms; if (!Sms::checkCode(\request('mobile'), \request('code'))) { //Add you 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 :)