Методы HTTP API

  1. Общие сведения
  2. Авторизация
  3. Доступные методы API

Общие сведения

Адрес API
Все запросы к API отправляются как HTTP-запрос (GET/POST) на единый URL-адрес соответствующий методу (действию) который надо выполнить.

http://api.profisend.ru/имя_метода

Метод отправки данных
POST или GET. Рекомендуется POST метод.

Формат ответных данных
API возвращает результат в формате JSON.

Кодировка
Используемая кодировка в ответах и запросах UTF-8.

Авторизация

Для доступа к API-методам требуется авторизация каждого HTTP-запроса.

Авторизация в API осуществляется посредством передачи в параметрах запроса ID-клиента (номер договора) и верной цифровой подписи запроса секретным API-ключем PRIVATE_API_KEY. Значение PRIVATE_API_KEY (ключ API) генерируется автоматически и доступно в разделе Профиль.

HTTP-параметры для авторизации

Имя параметра Описание
uid ID-клиента (номер договора) от чьего имени осуществляется действие в API.
sig Подпись параметров HTTP-запроса.

Алгоритм расчета подписи запроса
Параметр sig рассчитывается как MD5-хеш строки полученной путем конкатенации (объединения) uid (ID-клиента), имени вызываемого метода API, пар имя-значение параметров HTTP-запроса разделенных знаком равно (=) перечисленных в алфавитном порядке и значения PRIVATE_API_KEY.

Пример кода расчета подписи запроса (параметра sig) на языке PHP

/**
 * Подпись параметров для передачи в АПИ
 * 
 * @param array $api_params HTTP-параметры запроса к API
 * @param string $api_method Имя вызываемого метода
 * @param string $uid ID-клиента
 * @param string $private_api_key Ключ API (из профиля)
 * @param string $data Дополнительные данные
 */
function api_sig ($request_params, $api_method, $uid, $private_api_key, $data='') {
	$params = api_sig_params_string($request_params);
	return md5($uid . $api_method . $params . $data . $private_api_key);
}
/**
 * Сбор параметров в строку
 * 
 * @param array $request_params - Параметры HTTP-запроса
 * @param mixed $parent_key - родительский ключ для рекурсии
 */
function api_sig_params_string ($request_params, $parent_key=null) {
	$params = '';
	ksort($request_params, SORT_STRING);

	foreach ($request_params as $key => $value) {
  		if ($parent_key !== null || ($key != 'uid' && $key != 'method' && $key != 'sig')) {
  			if (is_array($value)) {
  				if ($parent_key) {
  					$key = $parent_key."[$key]";
  				}
  				$params .= api_sig_params_string ($value, $key);
  			} else {
  				if ($parent_key) {
  					$params .= $parent_key."[$key]=$value";
  				} else {
    				$params .= "$key=$value";
  				}
  			}
		}
	}
	
	return $params;
}

Использование API в PHP

Вы можете использовать готовый код php-класса для работы с нашим API.

Использование API в JavaScript

Работа с методами API в JavaScript может быть органирована с использованием формата JSONP. Ниже приведен код библиотеки для работы с API рассылки смс на JavaScript.

Доступные методы API

В раздел "Помощь"

Наверх