Laravel 短信服务
2017-07-07 本文已影响445人
童蒙vlog
1.安装
composer require toplan/laravel-sms
2.注册服务提供器
在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,
3.参数配置
生成配置文件和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',
];
4.发送前数据验证
'validation' => [
//内置的mobile参数的验证配置
'mobile' => [
'isMobile' => true, //是否为手机号码
'enable' => true, //是否需要进行验证
'default' => 'mobile_required', //默认静态验证规则
'staticRules' => [ //所有静态验证规则
[
](https://github.com/toplan/laravel-sms#示例)
'mobile_required' => 'required|zh_mobile',
...
],
],
//自定义你可能需要验证的字段
'image_captcha' => [
'enable' => true,
],
],
5.使用Sms模型发送短信
//只希望使用模板方式发送短信,可以不设置内容content (如云通讯,Submail)
Toplan\Sms\Sms::make($tempId)->to('1828****349')->data(['12345', 5])->send();
//只希望使用内容方式放送,可以不设置模板id和模板数据data (如云片,luosimao)
Toplan\Sms\Sms::make()->to('1828****349')->content('【Laravel SMS】亲爱的张三,欢迎访问,祝你工作愉快。')->send();
//同时确保能通过模板和内容方式发送。这样做的好处是,可以兼顾到各种代理器(服务商)!
Toplan\Sms\Sms::make([
'YunTongXun' => '123',
'SubMail' => '123'
])
->to('1828****349')
->data(['张三'])
->content('【签名】亲爱的张三,欢迎访问,祝你工作愉快。')
->send();
//use PhpSms;
$result = PhpSms::make()->to($this->mobile)
->content('【天使湾创投】你好,你的项目已被天使湾创投关注,请在天使湾官网 www.tisiwi.com 回答8个问题,100小时内给您反馈,谢谢。')
->send();
// 语音验证码
Sms::voice('02343')->to($to)->send();
// 语音验证码兼容模版语音(如阿里大鱼的文本转语音)
Sms::voice('02343')
->template('Alidayu', 'your_tts_code')
->data(['code' => '02343'])
->to($to)->send();