Laravel SMS 短信發送包

Laravel Sms

Laravel 貼合實際需求同時知足多種通道的短信發送組件php

Build StatusScrutinizer Code QualityCode CoverageBuild StatusLatest Stable VersionLatest Unstable VersionLicense

咱們基於業務需求在 overtrue/easy-sms 基礎進行擴展開發,主要實現以下目標:laravel

  1. 支持短信驗證碼直接在 config 中配置模板ID
  2. 支持短信驗證碼自定義長度
  3. 支持短信驗證碼有效分鐘,默認5分鐘
  4. 支持短信驗證碼重試次數,防止用戶意外輸錯驗證碼致使須要再次發送驗證碼的問題。
  5. 支持短信驗證碼未驗證時,用戶再次請求驗證碼,在有效分鐘內驗證碼保持一致。
  6. 集成短信發送路由,支持 web 和 api 發送方式。
  7. 支持驗證碼調試,debug 模式下可直接查詢手機號目前有效的驗證碼
  8. 支持驗證碼發送記錄到數據庫,方便查看發送日誌和錯誤緣由

包地址:ibrand/laravel-smsgit

TODO:github

  1. 支持語音驗證碼

安裝

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-codecomposer

參數:mobiledom

備註:爲了支持開發時的調試,在發送驗證碼時不去驗證手機號自己的有效性,請在發送驗證碼前自行驗證。

返回參數:

{
    "status": true,
    "message": "短信發送成功"
}

驗證驗證碼

use iBrand\Sms\Facade as Sms;
    

    if (!Sms::checkCode(\request('mobile'), \request('code'))) {
            //Add you code.
        }

配置模板 ID

config/ibrand/sms.phpgateways 參數能夠直接添加 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' => 
                //...
            ],
        ],

配置 Content

非模板類通道,能夠經過 config/ibrand/sms.php 自定義短信內容

'content' => '【your signature】親愛的用戶,您的驗證碼是%s。有效期爲%s分鐘,請儘快驗證。'

debug

在實際開發中會存在並不用真實發出驗證碼的狀況,所以在 debug 模式下,能夠經過

http://your.domain/api/sms/info?mobile=1898888XXXX 來直接只看某個手機號當前有效驗證碼信息。

歡迎你們 star 和提交 issue :)

討論交流

iBrand聯繫咱們

相關文章
相關標籤/搜索