nanoblocktech/php-sms-gateways

PHP class for sms gateways, using same codebase implementaion to send sms in different sms gateways.

1.1 2023-12-25 18:32 UTC

This package is auto-updated.

Last update: 2024-04-26 18:01:07 UTC


README

PHP class for sms gateways, using same codebase and implementation to send sms in Vonage & ClickSend sms gateways.

AVAILABLE SMS PROVIDERS

  • Vonage: To use Vonage as provider, install the library composer require vonage/client
  • ClickSend To use ClickSend as provider, install the library composer require clicksend/clicksend-php

Installation Guide via Composer:

composer require nanoblocktech/php-sms-gateways

Usages

Initialize classes

use \Luminova\ExtraUtils\Sms\Gateway;
use \Luminova\ExtraUtils\Sms\Providers\Vonage;
use \Luminova\ExtraUtils\Sms\Providers\ClickSend;
use \Luminova\ExtraUtils\Sms\Exceptions\SmsException;

Initialize SMS Client using Vonage

use Luminova\ExtraUtils\Sms\Providers\Vonage;

$client = new Vonage("KEY", "SECRETE");

Initialize SMS Client using ClickSend

use Luminova\ExtraUtils\Sms\Providers\ClickSend;

$client = new ClickSend("USERNAME", "KEY");

Initialize SMS gateway

$gateway = new Gateway($client);

$gateway->setPhone('000000000');
$gateway->setFrom('000000000');
$gateway->setMessage('Hello your verification code is 1234');
try {
    if($gateway->send()){
        echo "Message sent successfully";
    }else{
        $response = $gateway->getResponse();
        echo $response->getError();
    }
} catch (SmsException $e){
    echo $e->getMessage();
}

Send sms using modem serial port

use Luminova\ExtraUtils\Sms\SerialGateway;
try{
    $serial = new SerialGateway('COM4', 'en_US');
    $serial->send('000000000', 'Hello your verification code is 1234', function($data){
        echo "Message sent successfully";
    });
} catch (SmsException $e){
    echo $e->getMessage();
}

Configuring your serial

use Luminova\ExtraUtils\Sms\SerialGateway;
$to = '9999999999';
$message = 'Hello your verification code is 1234';

try{
    $serial = new SerialGateway('COM4', 'en_US');
    $serial->setBaudRate(9600);
    $serial->setParity('none');
    $serial->setCharacterLength(8);
    $serial->setStopBits(1);
    $serial->setFlowControl('none');
    if($serial->openDevice()){
        $serial->sendMessage("AT+CMGF=1\n\r"); 
        $serial->sendMessage("AT+cmgs=\"{$to}\"\n\r");
        $serial->sendMessage("{$message}\n\r");
        $serial->sendMessage(chr(26));

        sleep(7);

        $read = $serial->readPort(0);
        $serial->closeDevice();
        echo "Message was sent successfully";
    }
} catch (SmsException $e){
    echo $e->getMessage();
}

Response methods

 $response = $gateway->getResponse();

/**
 * Get response status 
*/
$response->getStatus();

/**
 * Get gateways response status 
*/
$response->getOriginalStatus();

/**
 * Check if sms message was sent
*/
$response->isSuccess();

/**
 * Get api response body
*/
$response->getContent();

/**
 * Get error if any 
*/
$response->getError();