API для получения тарифов

В данном форуме описаны все API, поддерживаемые нашими услугами.

API для получения тарифов

Сообщение sd » 13 апр 2011, 14:00

Обращение к API происходит по протоколу HTTP(S) (методы POST или GET) по адресу:

Код: Выделить всё
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 - поминутная)
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: API для получения тарифов

Сообщение BubnovRV » 12 мар 2013, 05:03

При запросе тарифа по направлению, в ответе не хватает кода страны абонента по ISO.
BubnovRV
 
Сообщения: 192
Зарегистрирован: 06 мар 2012, 05:41
Откуда: Новосибирск

Re: API для получения тарифов

Сообщение sd » 12 мар 2013, 07:49

BubnovRV писал(а):При запросе тарифа по направлению, в ответе не хватает кода страны абонента по ISO.

Вопрос - а надо ли? Человек запрашивает цену для указанного номера, а в ответ ожидает стоимость. Зачем код страны то?
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: API для получения тарифов

Сообщение BubnovRV » 12 мар 2013, 08:01

Никто и не говорит, что там цены не будет. Все остается в силе. Но вы же присылаете параметр place, что мешает добавить country?
BubnovRV
 
Сообщения: 192
Зарегистрирован: 06 мар 2012, 05:41
Откуда: Новосибирск

Re: API для получения тарифов

Сообщение sd » 12 мар 2013, 08:15

BubnovRV писал(а):Никто и не говорит, что там цены не будет. Все остается в силе. Но вы же присылаете параметр place, что мешает добавить country?

Так, я наверное, не правильно понял. Вы хотите, чтобы возврщался код страны в виде RU, BY, UA и т.д.?
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: API для получения тарифов

Сообщение BubnovRV » 12 мар 2013, 08:41

Ну конечно, только отдельным тегом, чтобы не парсить place.
BubnovRV
 
Сообщения: 192
Зарегистрирован: 06 мар 2012, 05:41
Откуда: Новосибирск

Re: API для получения тарифов

Сообщение sd » 12 мар 2013, 09:16

BubnovRV писал(а):Ну конечно, только отдельным тегом, чтобы не парсить place.

Ок, думаю, это не проблема.
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11

Re: API для получения тарифов

Сообщение dorma » 09 апр 2015, 13:10

Пожалуйста уточните, в рабочем ли состоянии эта функция?
На урл, с правильной сигнатурой (по которой я получаю свой балланс) вижу
Код: Выделить всё
code:401
desc:Authorization failed

Но при запросе без сигнатуры,
Код: Выделить всё
http://api.comtube.com/scripts/api/tariffs.php?number=74997052112

приходит цена звонка, но не понятно по какому тарифу.
dorma
 
Сообщения: 7
Зарегистрирован: 10 авг 2012, 23:27

Re: API для получения тарифов

Сообщение sd » 19 апр 2015, 22:34

dorma писал(а):Пожалуйста уточните, в рабочем ли состоянии эта функция?
На урл, с правильной сигнатурой (по которой я получаю свой балланс) вижу
Код: Выделить всё
code:401
desc:Authorization failed

Но при запросе без сигнатуры,
Код: Выделить всё
http://api.comtube.com/scripts/api/tariffs.php?number=74997052112

приходит цена звонка, но не понятно по какому тарифу.

В первом случае у вас скорее всего неправильно сформирована подпись. Можете прислать мне код, как вы формируете подпись? Ну и сам URL с подписью. Во втором случае приходит цена по рублевому тарифу Старт - это для неавторизованного режима работы. При этом, если запрос пришел из-за пределом России (используем бесплатную базу распределения IP по регионам, поэтому точность где-то 85%), то мы показываем цены по долларовому тарифу Старт.
Аватара пользователя
sd
 
Сообщения: 5184
Зарегистрирован: 31 июл 2009, 13:11


Вернуться в API

Просмотр страницы «Кто сейчас на форуме COMTUBE»

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10