PHP code example of xenon / laravelbdsms

1. Go to this page and download the library: Download xenon/laravelbdsms library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

xenon / laravelbdsms example snippets


'default_provider' => env('SMS_DEFAULT_PROVIDER', Ssl::class),

use Xenon\LaravelBDSms\Facades\SMS;

$response = SMS::shoot('017XXYYZZAA', 'helloooooooo boss!');

use LaravelBDSms;

LaravelBDSms::shoot('017XXYYZZAA', 'helloooooooo boss!');

use Xenon\LaravelBDSms\Facades\SMS;
use Xenon\LaravelBDSms\Provider\Ssl;

$response = SMS::via(Ssl::class)->shoot('017XXYYZZAA', 'helloooooooo boss!');

$ssl = SMS::via(Ssl::class);
$ssl->shoot('017XXYYZZAA', 'first message');
$ssl->shoot('018XXYYZZAA', 'second message');   // still goes through Ssl

SMS::via('Ssl')->shoot('017XXYYZZAA', 'helloooooooo boss!');

use Xenon\LaravelBDSms\Facades\SMS;
use Xenon\LaravelBDSms\Provider\Ssl;

SMS::via(Ssl::class)->shootWithQueue('01XXXXXXXXX', 'test sms');

// queue name, retry attempts and retry delay in seconds
SMS::via(Ssl::class)->shootWithQueue('01XXXXXXXXX', 'test sms', 'sms', 5, 90);

$response = SMS::via(Ssl::class)->shoot('017XXYYZZAA', 'helloooooooo boss!');

// {
//     "status": "response",
//     "response": "{\"status\":\"SUCCESS\",\"status_code\":200}",
//     "provider": "Xenon\\LaravelBDSms\\Provider\\Ssl",
//     "send_time": "2026-09-01 08:03:23",
//     "mobile": "017XXYYZZAA",
//     "message": "helloooooooo boss!"
// }

$report = json_decode($response, true);
$gateway = json_decode($report['response'], true);

use Xenon\LaravelBDSms\Handler\ParameterException;
use Xenon\LaravelBDSms\Handler\RenderException;

try {
    SMS::via(Ssl::class)->shoot('017XXYYZZAA', 'helloooooooo boss!');
} catch (ParameterException $e) {
    // a credential is missing from config/sms.php
} catch (RenderException $e) {
    // the gateway could not be reached
}

use Xenon\LaravelBDSms\Provider\Alpha;
use Xenon\LaravelBDSms\Sender;

$sender = Sender::getInstance();
$sender->setProvider(Alpha::class);
$sender->setConfig(['api_key' => 'your api key']);
$sender->setMobile(['017XXYYZZAA', '018XXYYZZAA']);
$sender->setMessage('helloooooooo boss!');
$sender->setQueue(false);

$response = $sender->send();

use Xenon\LaravelBDSms\Provider\Ssl;
use Xenon\LaravelBDSms\Sender;

$sender = Sender::getInstance();
$sender->setProvider(Ssl::class);        // change this provider class according to need
$sender->setMobile('017XXYYZZAA');
$sender->setMessage('helloooooooo boss!');
$sender->setQueue(false);                // true to dispatch the gateway call as a job
$sender->setConfig([
    'api_token' => 'api token goes here',
    'sid' => 'text',
    'csms_id' => 'sender_id',
]);

$response = $sender->send();

use Xenon\LaravelBDSms\Provider\CustomGateway;
use Xenon\LaravelBDSms\Sender;

$sender = Sender::getInstance();
$sender->setProvider(CustomGateway::class);
$sender->setUrl('https://your_custom_gateway_provider_url_here')
    ->setMethod('post')
    ->setHeaders([
        'Authorization' => 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    ], true);
$sender->setMobile('017XXYYZZAA');
$sender->setMessage('text message goes here');
$sender->setQueue(false);
$sender->setConfig([
    'MsgType' => 'TEXT',
    'masking' => 'sample',
    'userName' => 'test_user',
    'message' => 'test message',
    'receiver' => '017xxxxxxxxxx',
]);

echo $sender->send();

$sender->setHeaders(['Authorization' => 'Bearer xxx'], true);
$sender->setHeaders(['Authorization: Bearer xxx'], false);   // also accepted

'sms_log' => true,

'log_driver' => 'database',                 // one driver
'log_driver' => ['database', 'discord'],    // or several

'log_driver' => 'database',

'log_driver' => 'file',

'log_driver' => ['discord'],

use Xenon\LaravelBDSms\Facades\Logger;

Logger::viewLastLog();          // most recent entry
Logger::viewAllLog();           // every entry
Logger::logByProvider(Xenon\LaravelBDSms\Provider\Ssl::class);
Logger::total();                // number of entries
Logger::clearLog();             // empty the table

namespace Xenon\LaravelBDSms\Provider;

use Xenon\LaravelBDSms\Handler\ParameterException;

class MyGateway extends AbstractProvider
{
    private string $apiEndpoint = 'https://api.mygateway.com/send';

    public function sendRequest()
    {
        $config = $this->senderObject->getConfig();

        $query = [
            'token' => $config['token'],
            'to' => $this->senderObject->getMobile(),
            'message' => $this->senderObject->getMessage(),
        ];

        $requestObject = $this->makeRequest($this->apiEndpoint, $query);

        return $this->respond($requestObject->get());
    }

    public function errorException()
    {
        if (!array_key_exists('token', $this->senderObject->getConfig())) {
            throw new ParameterException('token key is absent in configuration');
        }
    }
}

$requestObject = $this->makeRequest($this->apiEndpoint, $query, ['Authorization' => $config['api_key']]);
$requestObject->setContentTypeJson(true);

return $this->respond($requestObject->post());
bash
php artisan vendor:publish --provider=Xenon\LaravelBDSms\LaravelBDSmsServiceProvider --tag="config"
php artisan vendor:publish --provider=Xenon\LaravelBDSms\LaravelBDSmsServiceProvider --tag="migrations"
php artisan migrate
bash
php artisan config:cache