fomvasss / laravel-epochta-sms
此包已被废弃,不再维护。未建议替代包。
Laravel 发送 SMS 的包
3.2.2
2018-06-13 20:26 UTC
Requires
- php: >=7.0.0
- illuminate/support: 5.4.*|5.5.*|5.6.*
- nesbot/carbon: ~1.20
README
用于通过 epochta 服务发送 SMS 的包
安装
启动
composer require "fomvasss/laravel-epochta-sms"
对于 Laravel < v5.5 !
在 ServiceProvider 的 providers 数组中添加(文件 config/app.php)
Fomvasss\EpochtaService\SmsServiceProvider::class,
为了使用 facade,在别名数组中添加字符串
'Sms' => Fomvasss\EpochtaService\Facade\Sms::class,
发布配置
php artisan vendor:publish --provider="Fomvasss\EpochtaService\SmsServiceProvider" --tag=epochta-sms-config
如果您计划保存已发送 SMS 的信息及其状态,请添加迁移
php artisan migrate --path=vendor/fomvasss/laravel-epochta-sms/database/migrations
如果您改变主意,则
php artisan migrate:rollback --path=vendor/fomvasss/laravel-epochta-sms/database/migrations
使用
! 如果在配置中设置了 use_db == true
,则以下方法将信息写入数据库表。
Sms 类的使用
<?php use Fomvasss\EpochtaService\Sms; class MyClass { protected $sms; public function __construct(Sms $sms) { $this->sms = $sms; } public function run() { $r = $this->sms->account()->getUserBalance('RUB'); // получить баланс счета - array['balance_currency', ...] $r = $this->sms->stat()->sendSms('test sms text', '380656565656'); // отправить $r = $this->sms->stat()->sendSms('Text sms', '380656565656', 'Sender-name', '2017-10-31 16:08:00', '6'); // отправить $r = $this->sms->stat()->getCampaignInfo(96972041); // получить инфо об отправке // Need db table $sms = EpochtaSms::find(2); $r = $this->sms->stat()->smsDbResend($sms); // отправить повторно, при этом записать в поле `resend_sms_id` текущей модели, значиние новой `sms_id` $r = $this->sms->stat()->getGeneralStatus($sms); // пулучить статус в виде строки с конфига $r = $this->sms->stat()->smsDbUpdateStatuses(); // обновить все статусы, смс в которых еще нет конечного статуса $r = $this->sms->stat()->smsDbResendUndelivered(5, 10, 3); // отправить повторно все не доставленные } }
Sms facade 的使用
<?php Sms::account()->getUserBalance(); Sms::stat()->sendSms('test sms text', '380656565656'); Sms::stat()->sendSms('test sms text', '380656565656', 'SenderTest2', '2017-10-31 16:08:00', '6'); Sms::stat()->getCampaignInfo(96972041); Sms::stat()->getAllCampaignInfoFromDb();
例如,您可以在 CRON 任务(app/Console/Kernel.php)中使用方法 getAllCampaignInfoFromDb()
来更新 SMS 状态
<?php $schedule->call(function () { if (env('SMS_UPDATE_STATUS')) { \Sms::stat()->smsDbUpdateStatuses(); } })->cron('* * * * * *');
使用事件
发送 SMS 之前(字段:attributes
- SMS 数据数组)
\Fomvasss\EpochtaService\Events\BeforeSendingSmsEvent
发送 SMS 之后(字段:attributes
- SMS 数据数组,sendingResult
- 发送结果,model
- 保存的 SMS 模型)
\Fomvasss\EpochtaService\Events\AfterSendingSmsEvent