amiriun / sms
伊朗短信,sms,kavenegar
Requires
- php: >=7.3
- ippanel/php-rest-sdk: ^1.0
Requires (Dev)
- guzzlehttp/guzzle: ^6.3
This package is auto-updated.
Last update: 2024-09-22 14:09:45 UTC
README
Laravel SMS 包含 流行的伊朗 SMS 网关 库,提供了一种更简单的方式,从您想要的任何网关发送短信,或者在这些网关之间切换。
支持的短信网关
- Kavenegar
- SMS.ir
- Payam Resan
- Mediana
- Melli Payamak (即将推出)
- 调试(不会向最终用户发送短信,仅将其记录到 laravel.log 文件)
要求
- PHP >=5.4
- PHP SoapClient 扩展(仅适用于 payamresan 网关)
先决条件
- Laravel >=5.2
安装
Composer 安装(适用于 Laravel 5+/Lumen 5)
composer require amiriun/sms:dev-master
将包服务提供者添加到 config/app.php
'providers' => [ \Amiriun\SMS\SMSServiceProvider::class, ];
然后通过以下方式发布配置
php artisan vendor:publish
(现在您可以在 config/sms.php 文件中指定您的短信网关标识符并选择默认网关)
return [ // debug , kavenegar, sms_ir, payamresan 'default_gateway' => env('SMS_GATEWAY', 'debug'), ... ]
注意:如果您选择“调试”驱动作为默认驱动,则您的消息将不会发送,仅记录在 laravel.log 文件中。
如何发送短信
$data = new \Amiriun\SMS\DataContracts\SendSMSDTO(); $data->setSenderNumber('300024444'); // also this can be set as default in config/sms.php $data->setMessage("Hello, this is a test"); $data->setTo('09123000000'); $getResponse = app('\Amiriun\SMS\Services\SMSService')->send($data); // expected output is instance of \Amiriun\SMS\DataContracts\SentSMSOutputDTO() // $getResponse->messageId // get response of message id // $getResponse->status // get response state of provider // $getResponse->to // get recipient mobile number // $getResponse->senderNumber // get provider sender number // $getResponse->messageResult // get any other results from provider // $getResponse->connectorName // get provider name, such as: Kavenegar, MelliPayamak, etc.
在上面的示例中,您的消息将通过您在 config/sms.php 文件中选择的默认提供程序(驱动程序)发送,但您也可以手动更改提供程序,如下面的示例所示
... ... // $driver = app(\Amiriun\SMS\Services\Drivers\PayamResanDriver::class); // $driver = app(\Amiriun\SMS\Services\Drivers\SmsIrDriver::class); if(config('app.debug')){ $driver = app(\Amiriun\SMS\Services\Drivers\DebugDriver::class); }else{ $driver = app(\Amiriun\SMS\Services\Drivers\KavenegarDriver::class); } $getResponse = new \Amiriun\SMS\Services\SMSService($kavenegarDriver); $getResponse = $getResponse->send($data); ... ...
如何接收短信
此包通过提供程序挂钩的 route uri 获取,以更新您的应用程序有关接收和发送的消息。以下列出这些路由
YOUR_SITE.COM/amiriun-sms/kavenegar/receive
YOUR_SITE.COM/amiriun-sms/kavenegar/deliver
您可以在提供程序中定义这些 URL,使用您自己的网站域名(目前仅 kavenegar 支持)
当您从提供程序接收到新消息或您有新的发送更新时,您可能想执行某些操作。在这些情况下,您可以使用 artisan 命令创建两个事件
php artisan make:event SMSWasDelivered php artisan make:event SMSWasReceived
然后您可以在 config/sms.php 中定义该类,如下所示
... 'events' => [ 'after_receiving_sms' => \App\Events\SMSWasReceived::class, 'after_delivering_sms' => \App\Events\SMSWasDelivered::class, ], ...
然后您可以在从提供程序获取新挂钩时定义您的操作
扩展
您可以通过实现 Amiriun\SMS\Contracts\StorageInterface 接口并更改 config/sms.php 中的存储类来更改日志存储
贡献
请阅读 CONTRIBUTING.md 了解我们的行为准则以及向我们提交 pull 请求的过程。
版本控制
我们使用 SemVer 进行版本控制。有关可用的版本,请参阅此存储库的 标签。
作者
- Amir Alian - 初始工作 - Amiriun
许可证
本项目受 MIT 许可证的许可 - 有关详细信息,请参阅 LICENSE.md 文件