使用laravel Sms 组件 发短信
使用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', ];
调度方案解析: 如果按照以上配置,那么系统首次会尝试使用
Luosimao
或YunPian
发送短信,且它们被使用的概率分别为2/3
和1/3
。 如果使用其中一个代理器发送失败,那么会启用备用代理器,按照配置可知备用代理器有YunPian
和YunTongXun
,那么会依次调用直到发送成功或无备用代理器可用。 值得注意的是,如果首次尝试的是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.time}} 回复