gelo11 / smstraffic-client
SmsTraffic HTTP API client for PHP 8.4+
v1.0.0
2025-10-21 12:13 UTC
Requires
- php: ^8.4
- ext-simplexml: *
- guzzlehttp/guzzle: ^7.8
Requires (Dev)
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2026-03-21 13:17:00 UTC
README
Легковесный, типобезопасный и полностью тестируемый клиент для работы с SmsTraffic HTTP API на PHP 8.4+.
Соблюдает принципы SOLID, PSR-4, использует immutable DTO, enums и современные возможности PHP.
Требования
- PHP 8.4 или выше
- Расширение
ext-simplexml(включено по умолчанию в большинстве сборок) - Composer для управления зависимостями
Автоматически устанавливает:
guzzlehttp/guzzle— для HTTP-запросов
Быстрый старт
- Установите пакет:
composer require gelo11/smstraffic-client
- Отправьте SMS:
use Gelo11\SmsTraffic\SmsTrafficClient; use Gelo11\SmsTraffic\SmsTrafficConfig; use Gelo11\SmsTraffic\Client\GuzzleHttpClient; use Gelo11\SmsTraffic\Parser\SimpleXmlResponseParser; use Gelo11\SmsTraffic\Request\SendSmsRequest; $config = new SmsTrafficConfig('ваш_логин', 'ваш_пароль'); $client = new SmsTrafficClient( $config, new GuzzleHttpClient(new \GuzzleHttp\Client()), new SimpleXmlResponseParser() ); $request = new SendSmsRequest( phones: '79051112233', message: 'Привет!', originator: 'MySender', wantSmsIds: true ); $response = $client->sendSms($request); echo "Отправлено: {$response->description}\n";
- Обработка ошибок
use Gelo11\SmsTraffic\Exception\SmsTrafficException; use Gelo11\SmsTraffic\Model\ErrorCode; try { $client->sendSms($request); } catch (SmsTrafficException $e) { if ($e->getCode() === ErrorCode::INSUFFICIENT_FUNDS) { // Обработка нехватки средств } }
- Работа со статусами
use Gelo11\SmsTraffic\Model\Status; $status = Status::fromString('Delivered'); echo $status->isFinal() ? 'Доставлено' : 'В обработке';
Методы
Клиент поддерживает следующие операции:
| Метод | Назначение | Пример использования |
|---|---|---|
sendSms(SendSmsRequest $request) |
Отправка SMS на один или несколько номеров | new SendSmsRequest(...) |
getStatus(GetStatusRequest $request) |
Получение статуса по ID сообщений | new GetStatusRequest(['1001', '1002']) |
getBalance(GetBalanceRequest $request) |
Проверка баланса аккаунта | new GetBalanceRequest() |
getIncomingSms(GetIncomingSmsRequest $request) |
Получение входящих SMS | new GetIncomingSmsRequest() |
Лицензия
Этот проект распространяется под лицензией MIT.