Xenon\LaravelBDSms is a sms gateway package for sending text message to Bangladeshi mobile numbers using several gateways for Laravel Framework. You can watch installation process from youtube.
Installation
Step 1:
composer require xenon/laravelbdsms
Step 2:
Then, publish the package
php artisan vendor:publish --provider=Xenon\LaravelBDSms\LaravelBDSmsServiceProvider
Step 3:
Step 4:
php artisan config:cache && php artisan migrate
Usage
Simply use the facade
Note: For sending message using facade you must have to set .env credentials. Find .env credentials for different providers from inside config/sms.php)
use Xenon\LaravelBDSms\Facades\SMS; SMS::shoot('017XXYYZZAA', 'helloooooooo boss!'); SMS::shoot(['017XXYYZZAA','018XXYYZZAA'], 'helloooooooo boss!'); //for Ssl Sms Gateway Only
Or, with facade alias
use LaravelBDSms, SMS; LaravelBDSms::shoot('017XXYYZZAA', 'helloooooooo boss!'); SMS::shoot('017XXYYZZAA', 'helloooooooo boss!');
Or, if you need to change the default provider on the fly
use Xenon\LaravelBDSms\Facades\SMS; use Xenon\LaravelBDSms\Provider\Ssl; $response = SMS::via(Ssl::class)->shoot('017XXYYZZAA', 'helloooooooo boss!');
That should do it.
Or, if you want to send message with queue. This queue will be added in your jobs table. Message will be sent as soon as job is run.
use Xenon\LaravelBDSms\Facades\SMS; use Xenon\LaravelBDSms\Provider\Ssl; SMS::shootWithQueue("01XXXXXXXXX",'test sms'); SMS::via(Ssl::class)->shootWithQueue("01XXXXXXXXX",'test sms');
That should do it.
Log Generate
You can generate log in database for every sms api request and save in database. For doing this. Follow below points
- Be confirm you have completed step-2 and step-3
- Run command
php artisan migrate
. This will createlbs_log
table in your database - Go to your project directory and locate
config/sms.php
- Find and make true
'sms_log' => true,
Otherwise, if you want more control, you can use the underlying sender object. This will not touch any laravel facade or service provider.
Sample Code
SSLCommerz
use Xenon\LaravelBDSms\Provider\Ssl; use Xenon\LaravelBDSms\Sender; $sender = Sender::getInstance(); $sender->setProvider(Ssl::class); $sender->setMobile('017XXYYZZAA'); //$sender->setMobile(['017XXYYZZAA','018XXYYZZAA']); $sender->setMessage('helloooooooo boss!'); $sender->setQueue(true); //if you want to sent sms from queue $sender->setConfig( [ 'api_token' => 'api token goes here', 'sid' => 'text', 'csms_id' => 'sender_id' ] ); $status = $sender->send();
Demo Response Using SSL
array:6 [âŧ "status" => "response" "response" => "{"status":"FAILED","status_code":4003,"error_message":"IP Blacklisted"}" "provider" => "Xenon\LaravelBDSms\Provider\Ssl" "send_time" => "2021-07-06 08:03:23" "mobile" => "017XXYYZZAA" "message" => "helloooooooo boss!" ]
MimSMS
use Xenon\LaravelBDSms\Provider\MimSms; use Xenon\LaravelBDSms\Sender; $sender = Sender::getInstance(); $sender->setProvider(MimSms::class); $sender->setMobile('017XXYYZZAA'); $sender->setMessage('This is test message'); $sender->setQueue(true); //if you want to sent sms from queue $sender->setConfig( [ 'api_key' => 'api_key_goes_here', 'type' => 'text', 'senderid' => 'approved_send_id', ] ); $status = $sender->send();
Currently Supported SMS Gateways
Provider | Credentials Required For Sending SMS |
Status | Comment | Contact |
---|---|---|---|---|
AjuraTech | apikey, secretkey , callerID | Done | - | - |
Adn | api_key, type, senderid | Done | - | - |
Banglalink | userID, passwd , sender | Done | - | - |
BDBulkSMS | token | Done | - | - |
BoomCast | masking , userName , password | Done | - | - |
BulksmsBD | api_key,senderid | Done | - | - |
DianaHost | api_key, type, senderid | Done | - | - |
DianaSMS | ApiKey, ClientId, SenderId | Done | - | - |
Esms | api_token, sender_id | Done | - | - |
ElitBuzz | api_key, type, senderid | Done | not tested yet in live | - |
Grameenphone | username, password, messagetype | Done | not tested yet in live | - |
Infobip | user, password | Done | not tested yet in live | - |
MDL | api_key, type, senderid | Done | not tested yet in live | - |
Metronet | api_key, mask | Done | - | - |
MimSms | api_key, type, senderid | Done | - | - |
Mobireach | Username,Password, From | Done | - | - |
NovocomBD | ApiKey , ClientId , SenderId | Done | - | - |
OnnoRokomSMS | userName, userPassword, type, maskName, campaignName | Done | not tested yet in live | - |
RedmoITSms | api_token, sender_id | Support closed | - | |
SmartLabSMS | user, password, sender | Done | - | - |
SmsinBD | api_token, senderid | Done | - | |
SmsQ | sender_id, client_id, api_key | Done | - | |
SMSNet24 | user_id, user_password, route_id(optional), sms_type_id(optional) | Done | - | |
SmsNoc | sender_id, bearer_token | Done | - | |
Sslsms | api_token, sid, csms_id | Done | - | - |
Tense | user, password, campaign, masking | Done | - | - |
TwentyFourSmsBD | apiKey, sender_id | Done | - | - |
Trubosms | api_token, sender_id | Done | - | - |
Viatech | api_key, mask | Done | - | - |
Stargazers
Forkers
Contributors
We are continuously working in this open source library for adding more Bangladeshi sms gateway. If you feel something is missing then make a issue regarding that. If you want to contribute in this library, then you are highly welcome to do that....
For clear documentation read this blog in Medium! and also you can download several sms providers documentations as pdf from this link!
Special thanks to
tusharkhan
tusher9352