2017 © Pedro Peláez
 

library smsc

Sends SMS using SMSC API

image

gonzalezfj/smsc

Sends SMS using SMSC API

  • Monday, April 16, 2018
  • by gonzalezfj
  • Repository
  • 1 Watchers
  • 1 Stars
  • 9 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 50 % Grown

The README.md

SMSC Notification Channel For Laravel 5.3

Packagist Pre Release Software License Build Status StyleCI SensioLabsInsight Quality Score Code Coverage Total Downloads, (*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)

  1. 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());
    }
}
  1. 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)

The Versions