Lib for modern integration smsc.ru service
Компонент для интеграции сервиса SMSC.RU API (smsc.ru) на сайт. Основано на версии 3.6 официального кода.
С помощью композера:
$ composer require zhukmax/smsc
Для того, что бы правильно отлавливать Исключения желательно использовать в конструкции try\catch. Не обязательно использовать выход exit()
, можно эхом вывести текст ошибки и продолжить выполнение скрипта.
<?php
try {
$sms = new \Zhukmax\Smsc\Api(
'test',
'123',
[
'https' => true,
'charset' => 'windows-1251',
'from' => '[email protected]',
'post' => true,
'debug' => '/home/user/smsc.log'
]
);
} catch (Exception $exception) {
exit($exception->getMessage());
}
Так же можно унаследовать класс \Zhukmax\Smsc\Api
и добавить собственное поведение до/после выполнения методов компонента или, даже, переназначить некоторые из них.
<?php
class Sms extends \Zhukmax\Smsc\Api
{
public function balance()
{
var_dump($this->sendCmd('balance'));
}
}
sendSms() - Функция отправки SMS
обязательные параметры:
необязательные параметры:
возвращает массив (
sendSmsMail() - SMTP версия функции отправки SMS
getSmsCost() - Функция получения стоимости SMS
обязательные параметры:
необязательные параметры:
возвращает массив (<стоимость>, <количество sms>) либо массив (0, -<код ошибки>) в случае ошибки
getStatus() - Функция проверки статуса отправленного SMS или HLR-запроса
$id - ID cообщения или список ID через запятую
$phone - номер телефона или список номеров через запятую
$all - вернуть все данные отправленного SMS, включая текст сообщения (0,1 или 2)
возвращает массив (для множественного запроса двумерный массив):
для одиночного SMS-сообщения: (<статус>, <время изменения>, <код ошибки доставки>)
для HLR-запроса: (<статус>, <время изменения>, <код ошибки sms>, <код IMSI SIM-карты>, <номер сервис-центра>, <код страны регистрации>, <код оператора>, <название страны регистрации>, <название оператора>, <название роуминговой страны>, <название роумингового оператора>)
при $all = 1 дополнительно возвращаются элементы в конце массива:
(<время отправки>, <номер телефона>, <стоимость>,
при $all = 2 дополнительно возвращаются элементы <страна>, <оператор> и <регион>
при множественном запросе: если $all = 0, то для каждого сообщения или HLR-запроса дополнительно возвращается <ID сообщения> и <номер телефона>
если $all = 1 или $all = 2, то в ответ добавляется <ID сообщения>
либо массив (0, -<код ошибки>) в случае ошибки
getBalance() - Функция получения баланса
возвращает баланс в виде строки или false в случае ошибки
sendCmd() - Функция вызова запроса. Формирует URL и делает 5 попыток чтения через разные подключения к сервису
readUrl() - Функция чтения URL.
Для работы должно быть доступно: curl или fsockopen (только http) или включена опция allow_url_fopen для file_get_contents
The Apache License Version 2.0. Текст лицензии находится в файле License File.