Документация по HTTP API для разработчика

Подробная документация по всему API: PDF

Если необходимой функции нет, можем ее добавить для Вас.


PHP. Пример доступа к API через GET-запрос

/*
 * Пример доступа к API сервиса. Приведен пример получения баланса пользователя.
 * Доступ к остальным функциям API производится аналогичным способом.
 *
 */

  $url = "http://csms.by"; // задается URL сервиса

  $timeout = 15;  // задаем таймаут ответа с секундах

  //задаем параметр запроса
  $params = http_build_query(array(
    'r'=>'api/user_balance',      // функиця API. Задается в формате "api/имя_функции"
    'user'=>'user@gmail.com',  // логин пользователя в системе. Совпадает с логином в веб-интерфейс
    'apikey'=>'qwerty123'         // ключ API. Задается в Личном кабинете пользователя
  ));

  $ch = curl_init();  //инициализируем CURL

  //задаем параметры CURL
  curl_setopt_array($ch, array(
    CURLOPT_URL => $url.'?'.$params,  //указываем URL к сервису и параметры
    CURLOPT_FAILONERROR => 1,         //прерывать запрос в случае ошибки
    CURLOPT_RETURNTRANSFER => 1,      //возвращаем результат запроса в переменную
    CURLOPT_FOLLOWLOCATION => 1,      //разрешаем редирект
    CURLOPT_TIMEOUT => $timeout,      //устаналиваем таймаут
  ));

  //получаем ответ в переменную
  $result = curl_exec($ch);

  if($result) {
    //ответ приходит в виде строки формата JSON. Декодируем его в объектное представление PHP
    $result = json_decode($result);

    //выводим статус
    echo $result->status.'<br>';

    //выводим сумму на балансе
    echo $result->balance;

  } else {
    //доступ к сервису не удался
    echo 'Ошибка доступа к сервису !';
  }

  curl_close($ch);


PHP. Пример доступа к API через POST-запрос

/*
 * Пример доступа к API сервиса. Приведен пример пакетной отправки сообщений.
 *
 */

  $url = "http://csms.by"; // задается URL сервиса

  $timeout = 15;  // задаем таймаут ответа с секундах

  $func = 'msg_send_bulk'; //задаем имя вызываемой функции. В данном случае - msg_send_bulk

  //формируем пакет сообщений
  $package = array(
    array(
      'recipient'=>'39624456789',
      'message'=>'Первое тестовое сообщение. Срочное, с подписью',
      'sender'=>'MyCompany',
      'urgent'=>true
    ),
    array(
      'recipient'=>'39624746363',
      'message'=>'Второе тестовое сообщение. Обычное, с custom_id',
      'custom_id'=>'111'
    ),
    array(
      'recipient'=>'39536788463',
      'message'=>'Третье тестовое сообщение, заключительное',
      'custom_id'=>'222'
    )
  );

  $rawData = json_encode($package); //кодируем пакет в JSON


  $ch = curl_init(); //инициализируем cURL

  //задаем параметры CURL
  curl_setopt_array($ch, array(
    CURLOPT_URL => $url,
    CURLOPT_FAILONERROR => 1,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_TIMEOUT => $timeout,
    CURLOPT_CONNECTTIMEOUT => 0,
    CURLOPT_POST => 1,  //отправляем методом POST - только так можно отправить большой пакет
    CURLOPT_POSTFIELDS => array(
        'r'=>'api/'.$func,     //задаем вызываемую функцию
        'user'=>'some@mail.com',  //логин пользователя
        'apikey'=>'ABC123',        //API-key
        'messages'=>$rawData)         //массив сообщений
  ));

  //получаем ответ в переменную
  $result = curl_exec($ch);

  if($result) {
    //строка формата UTF-8 - удаляем из нее BOM-последовательность
    $__BOM = pack('CCC', 239, 187, 191);
    while(0 === strpos($result, $__BOM)) $result = substr($result, 3);

    //ответ приходит в виде строки формата JSON. Декодируем его в объектное представление PHP
    $result = json_decode($result);

    //выводим статус
    echo $result->status.'<br>';

    //выводим дамп ответа
    echo '<plaintext>'.iconv('utf-8','windows-1251',print_r($result, true));
  } else {
    //доступ к сервису не удался
    echo 'Ошибка доступа к сервису !';
  }

  curl_close($ch);