This package makes it easy to send notifications using SMSC with Laravel 5.3.
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,
],
...
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,
],
...
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";
}
}
Check out the constructor signature of SMSCMessage:
public function __construct($content, $number);
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());
}
}
Please see CHANGELOG for more information what has changed recently.
$ composer test
If you discover any security related issues, please email facujgg@gmail.com instead of using the issue tracker.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.