Мы в социальных сетях:
 
8 800 200 56 57 Звонок по России бесплатный

Документация по PHP-классу

Введение

Скачать PHP-класс

Если вам требуется добавить возможность СМС-оповещения ваших посетителей к себе на WEB-сайт, вы можете воспользоваться нашим PHP-классом.

Этот класс является реализацией нашего транспортного XML-протокола. Подключение и интеграция займет буквально несколько минут.

Возможности класса:

  1. Отправка СМС
  2. Проверка возможности отправки СМС
  3. Проверка баланса вашей организации
  4. Получение отчетов о доставке по конкретной рассылке
  5. Получение отчетов о доставке по рассылкам, проведенным в заданный период времени

Конфигурация

Для начала необходимо подключить 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:

  1. Первый вариант:
    array('79992223333', '79991114444')
    
  2. Вариант второй:
    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.

Чтобы получить отчет о доставке отправленных непосредственно в этот раз СМС, вам нужно запрашивать отчеты с 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" // нет отчета
      	)
      )

Проверка баланса

Для получения текущего количества денежных средств на вашем аккаунте, возпользуйтесь функцией

$balance = $api->balance();

В ответ вам придет дробное число.