SMSC Notification Channel For Laravel 5.3
, (*1)
This package makes it easy to send notifications using SMSC with Laravel 5.3., (*2)
Contents
Installation
You can install this package via composer:, (*3)
``` bash
composer require gonzalezfj/smsc, (*4)
Next add the service provider to your `config/app.php`:
```php
...
'providers' => [
...
NotificationChannels\SMSC\SMSCServiceProvider::class,
],
...
Setting up the SMSC service
You will need to register to SMSC to use this channel., (*5)
The configuration given by the SMSC should be included within your config/services.php file:, (*6)
...
'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., (*7)
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), (*8)
class User extends Authenticatable
{
use Notifiable;
public function routeNotificationForSMSC()
{
return "115371885";
}
}
Available methods
Check out the constructor signature of SMSCMessage:, (*9)
public function __construct($content, $number);
Available events
SMSC Notification channel comes with two handy events which provides the required information about the SMS messages., (*10)
-
Message Was Sent (
NotificationChannels\SMSC\Events\MessageWasSent)
This event is fired shortly after the message is sent. An example handler is presented below:, (*11)
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., (*12)
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., (*13)
Testing
bash
$ composer test, (*14)
Security
If you discover any security related issues, please email facujgg@gmail.com instead of using the issue tracker., (*15)
Contributing
Please see CONTRIBUTING for details., (*16)
Credits
License
The MIT License (MIT). Please see License File for more information., (*17)