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
Requires
- php: ^8.0
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();