API для получения тарифов
Добавлено: 13 апр 2011, 14:00
Обращение к API происходит по протоколу HTTP(S) (методы POST или GET) по адресу:
В дополнение к адресу необходимо передавать следующие параметры:
Обработка результата запроса
При запросе тарифа по направлению будет возвращены следующие данные (в xml варианте):
В случае, если была запрошена стоимость по нескольким номерам, то секция <destination> будет повторяться для каждого номера отдельно. Описание полей:
Помимо прочего возвращается следующая информация:
Возможные коды ошибок:
При получении списка тарифных планов API вернет следующую информацию (в xml):
где:
- Код: Выделить всё
http://api.comtube.com/scripts/api/tariffs.php
В дополнение к адресу необходимо передавать следующие параметры:
- username – логин пользователя (обязательный параметр)
- action - Действие:
- getprice - узнать цену по направлению (по умолчанию)
- list - получить список доступных тарифных планов
- update - изменить тарифный план (в этом случае необходимо обязательно указывать параметр tplan)
- gettplan - получить активный тарифный план пользователя
- number – номер телефона, для которого необходимо узнать цену. Разрешается указывать несколько номеров разделенных символом ";" (точка с запятой). (обязательный параметр)
- srv_code – код сервиса, который может принимать только одно значение 'SMSOUT' в случае, если необходимо узнать цену для отправки SMS сообщения (необязательный параметр)
- tplan - идентификатор устанавливаемого тарифного плана. Используется только совместно с action = update. (необязательный параметр)
- type – в каком виде возвращать результат (html, xml, json). По умолчанию xml.
- signature – подпись запроса (обязательный параметр). Как создать подпись смотрите раздел "Создание подписи (signature)"
Обработка результата запроса
При запросе тарифа по направлению будет возвращены следующие данные (в xml варианте):
- Код: Выделить всё
<result>
<destinations>
<destination>
<number>79031234567</number>
<place>Россия, Москва, мобильный</place>
<price>1.9900</price>
<currency>RUB</currency>
<validity>200</validity>
<freetime>-1</freetime>
<max_calltime>-1</max_calltime>
</destination>
</destinations>
<total_price>1.99</total_price>
<total_currency>RUB</total_currency>
<enough_money>1</enough_money>
<code>200</code>
<desc>OK</desc>
</result>
В случае, если была запрошена стоимость по нескольким номерам, то секция <destination> будет повторяться для каждого номера отдельно. Описание полей:
- number - номер телефона, для которого указывается стоимость
- place - местоположение для номера. Если номер указан не правильно, то в этот параметре будет "Unknown"
- price - цена за минуту разговора, или за одну часть SMS сообщения
- currency - валюта, в которой указана стоимость (RUB, USD)
- validity - 200 - если номер правильный, 400 - если номер указан неправильно
- freetime - длительность бесплатного периода. На данный момент всегда -1
- max_calltime - максимальное время разговора. На данный момент всегда -1
Помимо прочего возвращается следующая информация:
- total_price - общая стоимость по всем номерам
- total_currency - валюта, в которой указана стоимость (RUB, USD)
- enough_money - указывает, хватает ли денег для совершения вызова длительностью 1 минуту на указанные номера.
- code - код завершения операции. Описание ошибок см.ниже
- desc - описание ошибки.
Возможные коды ошибок:
- 200 - OK – Операция прошла успешно. В случаях, когда запрашивается статистика в формате csv, html и операция прошла успешно, код ошибки не возвращается.
- 400 - Bad Request – указывает, что один или несколько параметров указаны не верно или отсутствуют. В поле desc, как правило, возвращается название параметра, который указан не правильно
- 401 - Authorization Failed – Неправильно указан логин/пароль или неправильно сформирована подпись signature.
- 403 - Account Blocked OR User Blocked – Указывает, что учетная запись пользователя заблокирована по тем или иным причинам
- 500 - Internal Server Error – Возникла внутренняя ошибка. Если ошибка появляется постоянно, то необходимо сообщить об этом в тех.поддержку с указанием сформированного URL'а
- 501 - Not Implemented – Указывает, что запрашиваемая функциональность еще не реализована
- 503 - Service Unavailable – Указывает, что не удалось подключится к серверу приложения для выполнения операции. Однако операция может быть выполнена чуть позже.
При получении списка тарифных планов API вернет следующую информацию (в xml):
- Код: Выделить всё
<result>
<tplans>
<tplan>
<id>71</id>
<tplan_name>Эконом</tplan_name>
<currency>RUB</currency>
<billing_incr>60</billing_incr>
</tplan>
<tplan>
<id>20</id>
<tplan_name>Старт</tplan_name>
<currency>RUB</currency>
<billing_incr>60</billing_incr>
</tplan>
<tplan>
<id>40</id>
<tplan_name>Премиум</tplan_name>
<currency>RUB</currency>
<billing_incr>1</billing_incr>
</tplan>
</tplans>
<code>200</code>
<desc>Ok</desc>
</result>
где:
- id - идентификатор тарифного плана.
- tplan_name - наименование тарифного плана
- currency - валюта тарифного плана
- billing_incr - шаг тарификации (1 - посекундная, 60 - поминутная)