Для получения баланса необходимо отправить HTTPS запрос по адресу:
- Код: Выделить всё
http://api.comtube.ru/scripts/balance/balance.php
В дополнение к адресу необходимо передавать следующие параметры:
- username – логин пользователя (обязательный параметр)
- type – указывает, в каком виде возвращать результат. Возможные значения: xml, html (обязательный параметр).
- signature – подпись запроса (обязательный параметр). Как создать подпись смотрите раздел "Создание подписи (signature)"
Хотим обратить внимание, что в частом обращении к данному сервиса ваш IP адрес будет заблокирован не некоторое время.
Обработка результата запроса
После обработки запроса возвращается XML или HTML страница с результатом. Ниже приводится HTML формат ответа:
- Код: Выделить всё
code:200
desc:OK
crcy:RUB
balance:417.85
В первой строке указывается код выполнения операции code:
- 200 - успешное выполнение
- 401 - ошибка авторизации. Не указан логин пользователя
- 403 - учетная запись заблокирована
- 404 - ошибка авторизации. Некорректно сформирована подпись
- 500 - системная ошибка
Поле desc предоставляет дополнительное описание ошибки.
Поле crcy указывает валюту, в которой приводится баланс.
Поле balance указывает непосредственно ваш баланс.
Пример отправки запроса и обработки ответа
Ниже приведен пример на языке программирования PHP для работы с данным API.
- Код: Выделить всё
<?php
include_once('signature.inc');
$baseurl = "http://api.comtube.ru/scripts/balance/balance.php";
// Создаем массив и заполняем его параметрами
$params = array();
$params['username'] = 'mylogin';
$params['type'] = 'html';
// Создаем подпись к параметрам
$urlparams = BuildUrlParamsWithSignature($params, "mypwd");
// Формируем полный URL для обращения к серверу
$url = $baseurl . "?" . $urlparams;
// Инициализируем curl и отправляем запрос
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
// Анализируем результат
$matches = array();
preg_match("/code:([0-9]+)<br>desc:(.*)<br>crcy:(.*)<br>balance:([0-9.]+)/", $data, $matches);
if (count($matches) > 0)
{
$code = $matches[1];
$desc = $matches[2];
$crcy = $matches[3];
$balance = $matches[4];
if ($code != 200)
{
// При обработке запроса произошла ошибка
echo "Failed to request balance, reeson: " . $desc . " (" . $code . ")";
}
else
{
// Успешное выполнение запроса
echo "Your balance is " . $balance . " " . $crcy;
}
}
else
{
// Получен неправильный ответ от сервера
echo "Invalid result";
}
?>