使用laravel Sms 组件 发短信

 余温
2018年11月13日 11时25分
 php

使用laravel Sms  组件


安装

在项目根目录下运行如下composer命令:

//推荐
composer require toplan/laravel-sms:~2.6

//安装开发中版本
composer require toplan/laravel-sms:dev-master

注册配置

在config/app.php文件中providers数组里加入:

Toplan\PhpSms\PhpSmsServiceProvider::class,
Toplan\Sms\SmsManagerServiceProvider::class,

在config/app.php文件中的aliases数组里加入

'PhpSms' => Toplan\PhpSms\Facades\Sms::class,
'SmsManager' => Toplan\Sms\Facades\SmsManager::class,

2.参数配置

  • 生成配置文件和migration文件

php artisan vendor:publish --provider="Toplan\PhpSms\PhpSmsServiceProvider"
php artisan vendor:publish --provider="Toplan\Sms\SmsManagerServiceProvider"

这里会生成两个配置文件,分别为phpsms.php和laravel-sms.php。

  • 配置代理器参数

在config/phpsms.php的agents数组中,找到你想要使用的代理器,并填写好配置信息。

  • 代理器均衡调度

在config/phpsms.php中设置代理器的均衡调度方案。

'scheme' => [  
  //被使用概率为2/3  
      'Luosimao' => '20',   
     //被使用概率为1/3,且为备用代理器   
      'YunPian' => '10 backup',    
     //仅为备用代理器   
      'YunTongXun' => '0 backup',
       ];

调度方案解析: 如果按照以上配置,那么系统首次会尝试使用LuosimaoYunPian发送短信,且它们被使用的概率分别为2/31/3。 如果使用其中一个代理器发送失败,那么会启用备用代理器,按照配置可知备用代理器有YunPianYunTongXun,那么会依次调用直到发送成功或无备用代理器可用。 值得注意的是,如果首次尝试的是YunPian,那么备用代理器将会只会使用YunTongXun,也就是会排除使用过的代理器。

如果你使用了模板短信,需要配置到使用到的代理器的模板标示符

配置文件为config/laravel-sms.php

'templates' => [    
    'YunTongXun' => '短信模版id',  
      'Alidayu'    => ['短信模版id', '语音模版id'],]


如果你使用了模板短信,需要配置准备使用的模版数据。

配置文件为config/laravel-sms.php

'data' => [  
  'code' => function ($code) {      
    return $code;  
      }, 
         ...],

2. [浏览器端]请求发送验证码短信


引入jquery  和laravel-sms.js 文件 (laravel-sms.js文件在下载的项目里面  如果找不到这是github地址

https://github.com/toplan/laravel-sms/tree/master/js

 <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="{{asset('js/laravel-sms.js')}}"></script>

直接使用就可以了 其他东西都封装好了

<button id="sendVerifySmsButton">获取验证码</button>
</body>
<script>
    $('#sendVerifySmsButton').sms({
        //laravel csrf token
        token       : "{{csrf_token()}}",
        //请求间隔时间
        interval    : 60,
        //请求参数
        requestData : {
            //手机号
            mobile : function () {
                return '18300000000';
            },
            //手机号的检测规则
            // mobile_rule : 'mobile_required'
        }
    });
</script>

服务器端发送短信


use Toplan\PhpSms\Sms;

........

public function index(){
........
$a = Sms::make('Aliyun','SMS_150174037');
$code = '12347';
$a->code('code', $code);
$a->to(183000000000);
$a->send();

}


{{vo.nickname}}:{{vo.content}}

{{vo.time}} 回复


  • {{level.nickname}} 回复 {{level.father_nickname}}{{level.content}}
  • {{level.time}} 回复


@
登陆后评论