Документация по PHP-классу
Введение
Если вам требуется добавить возможность СМС-оповещения ваших посетителей к себе на WEB-сайт, вы можете воспользоваться нашим PHP-классом.
Этот класс является реализацией нашего транспортного XML-протокола. Подключение и интеграция займет буквально несколько минут.
Возможности класса:
- Отправка СМС
- Проверка возможности отправки СМС
- Проверка баланса вашей организации
- Получение отчетов о доставке по конкретной рассылке
- Получение отчетов о доставке по рассылкам, проведенным в заданный период времени
Конфигурация
Для начала необходимо подключить PHP-класс:
require_once("transport.php"); $api = new Transport();
Перед использованием необходимо провести небольшую настройку в файле config.php
Укажите там свой логин, пароль, а также кодировку, которую используют ваши PHP-скрипты ( список поддерживаемых кодировок — такой же, как у встроенной php-фунции iconv )
Если ваш сервер не поддерживает отправку HTTPS-запросов, установите флажку USE_HTTPS значение 0.
Отправка СМС
Вот самый простой пример отправки СМС-сообщения:
$params = array( "text" => "Текст смски" ); $phones = array("89237778899"); $send = $api->send($params,$phones);
С помощью массива $params, помимо текста сообщения, можно передать следующие параметры:
- action — принимает значения 'send' (отправить СМС, выбрано по-умолчанию) или 'check' (только проверить возможность оптравки);
- datetime — дата и время отправки смс в формате (ГГГГ-ММ-ДД ЧЧ:ММ:СС);
- source — имя отправителя;
- onlydelivery (по-умолчанию 0 — платить за все смски, можно задать 1 — платить только за доставленные);
- smsid — желаемый id смски.
Обязательным параметром является только text.
Как можно передавать массив $phones:
- Первый вариант:
array('79992223333', '79991114444')
- Вариант второй:
array( array('number' => '79992223333', 'text' => 'Текст для первого контакта'), array('number' => '79991114444', 'text' => 'Текст для второго контакта') )
Функция отправки смс возвращает один из двух вариантов массивов, в зависимости от результата операции:
- Неудача:
array( "code" => "Код ошибки", "descr" => "Описание ошибки" )
- Успешное завершение:
array( "code" => 1, "descr" => "Операция успешно завершена", "smsid" => "SMSID, выданный системой", "datetime" => "Время отправки в MySQL формате", "allRecivers" => "Количество абонентов в рассылке", "colSendAbonent" => "Количество тех, кто получит смс", "colNonSendAbonent" => "Количество тех, кто смс не получит", "priceOfSending" => "Стоимость рассылки", "colsmsOfSending" => "Количество смс в рассылке", "price" => "Стоимость одной смс" )
Обратите внимание, что после отправки СМС, система возвращает вам другой SMSID. Это связано с тем, что рассылки через СМС-транспорт автоматически группируются по дням (т.е. все смски отправленные в один день имеют один общий SMSID).
Если вы хотите получить полный отчет за день – используйте этот, выданный системой SMSID.
Чтобы получить отчет о доставке отправленных непосредственно в этот раз СМС, вам нужно запрашивать отчеты с smsid, который вы самостоятельно послали нам при отправке СМС-сообщения.
Список СМС
Чтобы получить список отправленных СМС за определенный период времени, можно воспользоваться следующей функцией:
$smsList = $api->reports($start,$stop);
где
- $start — начальная дата в формате ГГГГ-ММ-ДД;
- $stop — конечная дата в формате ГГГГ-ММ-ДД.
В ответ вы получите следующий массив, в зависимости от результата запроса:
- Неудача
array( "code" => "Код ошибки", "descr" => "Описание ошибки" )
- Успешное завершение
array( "code" => 1, "descr" => "Операция успешно завершена" "sms" => array( 0 => array( "smsid" => "pvjrkhrc0vo7927xrtpv0" "datetime" => "2010-12-07 11:02:10" "text" => "Привет!" "source" => "my sms" "allCol" => "Количество получателей" "deliveredCol" => "Сколько доставлено" "notDeliveredCol" => "Сколько недоставлено" "waitingCol" => "Сколько в ожидании" "enqueuedCol" => "Количество смс без отчета" "payment" => "Стоимость рассылки" ) 1 => array.... ) )
Детальный отчет
Функция получения детального отчета по рассылке выглядит следующим образом:
$report = $api->detailReport($smsid);
где $smsid — smsid смски, по которой вы хотите получить отчет.
В ответ вы получите следующий массив, в зависимости от результата запроса:
- Неудача
array( "code" => "Код ошибки", "descr" => "Описание ошибки" )
- Успешное завершение:
- Если вы передали SMSID, который генерируется нашей системой (напоминаем, что она группирует все смски за день под одним SMSID), то в ответ вы получите такой отчет:
array( "code" => 1, "descr" => "Операция успешно завершена", "sms" => array( "smsid" => "pvjrkhrc0vo7927xrtpv0", "datetime" => "2010-12-07 11:02:10", "text" => "Привет!", "source" => "my sms", "allCol" => "Количество получателей", "deliveredCol" => "Сколько доставлено", "notDeliveredCol" => "Сколько недоставлено", "waitingCol" => "Сколько в ожидании", "enqueuedCol" => "Количество смс без отчета", "payment" => "Стоимость рассылки", ), "delivered" => array(), //Массив с номерами, на которые доставлено "notDelivered" => array(), //Не доставлено "waiting" => array(), //В ожидании "enqueued" => array() //Без отчета )
- Если же вы передадите свой SMSID, который вы указывали при отправке, то вы получите такой отчет:
array( "code" => 1, "descr" => "Операция успешно завершена", "delivered" => array( "79051234567" // доставленные номера ), "notDelivered" => array( "79051234567" // не доставленные номера ), "waiting" => array( "79051234567" // в ожидании ), "enqueued" => array( "79051234567" // нет отчета ) )
- Если вы передали SMSID, который генерируется нашей системой (напоминаем, что она группирует все смски за день под одним SMSID), то в ответ вы получите такой отчет:
Проверка баланса
Для получения текущего количества денежных средств на вашем аккаунте, возпользуйтесь функцией
$balance = $api->balance();
В ответ вам придет дробное число.