林梓技术分享集

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();
上一篇下一篇

猜你喜欢

热点阅读