nanoblocktech / php-sms-gateways
PHP短信网关类,使用相同的代码库实现,在不同短信网关中发送短信。
1.1
2023-12-25 18:32 UTC
Requires
- php: ^8.0
README
PHP短信网关类,使用相同的代码库和实现,在Vonage & ClickSend短信网关中发送短信。
可用的短信提供商
- Vonage: 若要使用Vonage作为提供商,请安装库
composer require vonage/client - ClickSend 若要使用ClickSend作为提供商,请安装库
composer require clicksend/clicksend-php
通过Composer安装指南
composer require nanoblocktech/php-sms-gateways
用法
初始化类
use \Luminova\ExtraUtils\Sms\Gateway; use \Luminova\ExtraUtils\Sms\Providers\Vonage; use \Luminova\ExtraUtils\Sms\Providers\ClickSend; use \Luminova\ExtraUtils\Sms\Exceptions\SmsException;
使用 Vonage 初始化SMS客户端
use Luminova\ExtraUtils\Sms\Providers\Vonage; $client = new Vonage("KEY", "SECRETE");
使用 ClickSend 初始化SMS客户端
use Luminova\ExtraUtils\Sms\Providers\ClickSend; $client = new ClickSend("USERNAME", "KEY");
初始化短信网关
$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(); }
通过调制解调器串行端口发送短信
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(); }
配置您的串行端口
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 = $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();