gonzalezfj / smsc
Sends SMS using SMSC API
Requires
- php: >=5.6.4
- guzzlehttp/guzzle: ~6.0
- illuminate/notifications: ^5.3
- illuminate/queue: ^5.1|^5.2|^5.3
- illuminate/support: ^5.1|^5.2|^5.3
- nesbot/carbon: ^1.21
Requires (Dev)
- mockery/mockery: ^0.9.5
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2024-11-06 15:56:13 UTC
README
This package makes it easy to send notifications using SMSC with Laravel 5.3.
Contents
Installation
You can install this package via composer:
composer require gonzalezfj/smsc
Next add the service provider to your config/app.php
:
... 'providers' => [ ... NotificationChannels\SMSC\SMSCServiceProvider::class, ], ...
Setting up the SMSC service
You will need to register to SMSC to use this channel.
The configuration given by the SMSC should be included within your config/services.php
file:
... 'SMSC' => [ 'http' => [ 'endpoint' => 'https://www.smsc.com.ar/api/0.3/', ], 'alias' => '', 'apikey' => '', 'timeout' => 60, ], ...
Usage
Follow Laravel's documentation to add the channel to your Notification class.
use NotificationChannels\SMSC\SMSCChannel; use NotificationChannels\SMSC\SMSCMessage; class ResetPasswordWasRequested extends Notification { /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [SMSCChannel::class]; } /** * Get the SMSC representation of the notification. * * @param mixed $notifiable * @return string|\NotificationChannels\SMSC\SMSCMessage */ public function toSMSC($notifiable) { return "Test notification"; // Or return new SMSCMessage("Test notification", $notifiable->mobile_number); } }
Don't forget to place the dedicated method for SMSC inside your notifiables. (e.g. User)
class User extends Authenticatable { use Notifiable; public function routeNotificationForSMSC() { return "115371885"; } }
Available methods
Check out the constructor signature of SMSCMessage:
public function __construct($content, $number);
Available events
SMSC Notification channel comes with two handy events which provides the required information about the SMS messages.
- Message Was Sent (
NotificationChannels\SMSC\Events\MessageWasSent
)
This event is fired shortly after the message is sent. An example handler is presented below:
namespace App\Listeners; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use NotificationChannels\SMSC\Events\MessageWasSent; class SentMessageHandler { /** * Handle the event. * * @param MessageWasSent $event * @return void */ public function handle(MessageWasSent $event) { $response = $event->response; $message = $event->message; // The message properties. \Log::info($message->content()); \Log::info($message->number()); // Message as array. \Log::info($message->toArray()); // API Response properties. \Log::info($response->isSuccess()); \Log::info($response->errorCode()); \Log::info($response->errorMessage()); } }
- Sending Message (
NotificationChannels\SMSC\Events
)
This event is fired just before the send request. An example handler is presented below.
namespace App\Listeners; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use NotificationChannels\SMSC\Events\SendingMessage; class SendingMessageHandler { /** * Handle the event. * * @param SendingMessage $event * @return void */ public function handle(SendingMessage $event) { $message = $event->message; // The message properties. \Log::info($message->content()); \Log::info($message->number()); // Message as array. \Log::info($message->toArray()); } }
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email facujgg@gmail.com instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.