Laravel SMS is a package that has abilities to send and receive SMS via SMS gateway from various vendors such as SMSgateway.me, Zenziva.id, etc.
- PHP 7.0 or above.
- cURL extension for PHP.
- Laravel version 5.4 or above.
- SMSGateway.me (
smsgatewayme
) - Zenziva.id (
zenziva
)
Install package via Composer by running the command:
composer require yugo/smsgateway -vvv
Publish package assets using the command below:
php artisan vendor:publish
Select package from yugo/smsgateway
to automatically copy a config file to your config application directory.
Note: If you are using Laravel version 5.4, you must setup provider manually by adding Yugo\SMSGateway\Providers\SmsServiceProvider::class
to your config/app.php
file.
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
Yugo\SMSGateway\Providers\SmsServiceProvider::class,
Then, publish package vendor using command below.
php artisan vendor:publish --provider="Yugo\SMSGateway\Providers\SmsServiceProvider"
To enable and using SMSgateway.me vendor, you must set new configurations based on SMSgateway.me setting. Add two config values like as below.
SMS_VENDOR="smsgatewayme"
SMSGATEWAYME_DEVICE=
SMSGATEWAYME_TOKEN=
Login to your Zenziva.id dashboard account to get userkey
and passkey
value. Add userkey
and passkey
to .env
file using these configurations.
SMS_VENDOR="zenziva"
ZENZIVA_USERKEY=userkey
ZENZIVA_PASSKEY=passkey
Sending a new message using Laravel SMS is easy. You just import real-time facade from the package and call the available methods inside it.
use Facades\Yugo\SMSGateway\Interfaces\SMS;
Now, you can use class SMS inside your PHP file. Every vendor has send(array $destinations, string $message)
method.
Quick example:
SMS::send(['62891111111'], 'Hello, how are you?');
Some vendors have additional methods. For example, you can check balance when using Zenziva and check device when using SMSGateway.me.
// get registered device information
SMS::device(?int $id); // $id is nullable
// get detailed information from message
SMS::info(int $id);
// cancel queued message
SMS::cancel(array $id);
By default, SMSgateway.me package will using API configuration from .env
file (such as device and token). But, you can set device ID and token programmatically via application. For example:
SMS::setDevice(12345) // make sure it's integer value
->setToken('secret-token')
->send(['08111111111'], 'Message with custom device and token.');
// get credit balance
SMS::credit();
If you want to set userkey
and/or passkey
manually, you can using setUser(string $user)
and setPassword(string $password)
method. For example:
SMS::setUser('you')
->setPassword('secret')
->send(['08111111111'], 'Message with custom user and password.');
MIT.