This package makes it easy to send sms notifications using Netgsm with Laravel 8.x, 9.x, 10.x, 11.x
You can install this package via composer:
composer require macellan/netgsm
Add your Netgsm configs to your config/services.php:
// config/services.php
...
'sms' => [
'netgsm' => [
'username' => env('NETGSM_USERNAME', ''),
'password' => env('NETGSM_PASSWORD', ''),
'header' => env('NETGSM_HEADER', ''),
'language' => env('NETGSM_LANGUAGE', 'tr'),
'enable' => env('NETGSM_ENABLE', false),
'debug' => env('NETGSM_DEBUG', false), // Will log sending attempts and results
'sandbox_mode' => env('NETGSM_SANDBOX_MODE', false), // Will not invoke API call
],
],
...
You can use the channel in your via() method inside the notification:
use Illuminate\Notifications\Notification;
use Macellan\Netgsm\DTO\Sms\BaseSmsMessage;
use Macellan\Netgsm\DTO\Sms\SmsMessage;
class TestNotification extends Notification
{
public function via($notifiable)
{
return ['netgsm'];
}
public function toNetgsm(object $notifiable): BaseSmsMessage
{
return new SmsMessage('Netgsm test message');
}
}
For Otp Sms sending, OtpSmsMessage class can be returned.
return new OtpSmsMessage('Netgsm otp test message');
In your notifiable model, make sure to include a routeNotificationForSms() method, which returns a phone number.
public function routeNotificationForSms()
{
return $this->phone;
}
Sometimes you may need to send a notification to someone who is not stored as a "user" of your application. Using the Notification::route method, you may specify ad-hoc notification routing information before sending the notification:
Notification::route('sms', '+905554443322')
->notify(new TestNotification());
use Macellan\Netgsm\Facades\Netgsm;
use Macellan\Netgsm\DTO\Sms\SmsMessage;
use Macellan\Netgsm\DTO\Sms\OtpSmsMessage;
// Sms send
$smsMessage = (new SmsMessage('Netgsm test message'))
->setNumbers(['+905554443322']);
Netgsm::sendSms($smsMessage);
/**
// return array
[
'code' => '00', // Netgsm response code
'id' => '111111', // Bulk Id
]
**/
// Otp Sms send
$otpSmsMessage = (new OtpSmsMessage('Netgsm otp test message'))
->setNumbers(['+905554443322']);
Netgsm::sendSms($otpSmsMessage);
/**
// return array
[
'code' => '00', // Netgsm response code
'id' => '111111', // Job id
'error' => '', // Error message
]
**/
composer test
Please see CHANGELOG for more information what has changed recently.