Difference between revisions of "Reseller API"
(Новая страница: «==Общее описание API== Запросы API отправляются на адрес <tt><nowiki>https://api-dev.acestream.net</nowiki></tt> методо…») |
|||
Line 1: | Line 1: | ||
==Общее описание API== | ==Общее описание API== | ||
− | Запросы API отправляются на | + | Запросы API отправляются методом HTTP-GET на такие адреса: |
+ | * тестовый режим: <tt><nowiki>https://api.sandbox.acestream.net</nowiki></tt> | ||
+ | * боевой режим: <tt><nowiki>https://api.acestream.net</nowiki></tt> | ||
+ | |||
Ответы на запросы приходят в формате json. | Ответы на запросы приходят в формате json. | ||
Line 12: | Line 15: | ||
* '''api_key''' - ключ клиента API | * '''api_key''' - ключ клиента API | ||
* '''api_version''' - поддерживаемая версия API (текущая версия: 1.0) | * '''api_version''' - поддерживаемая версия API (текущая версия: 1.0) | ||
+ | * '''app''' - идентификатор маркета | ||
* '''sign''' - цифровая подпись запроса | * '''sign''' - цифровая подпись запроса | ||
Line 39: | Line 43: | ||
===getServiceCost=== | ===getServiceCost=== | ||
− | Получить стоимость | + | Получить стоимость опции |
параметры: | параметры: | ||
− | * '''service''' (''string'') - идентификатор | + | * '''service''' (''string'') - идентификатор опции |
* '''period''' (''string'') - идентификатор периода | * '''period''' (''string'') - идентификатор периода | ||
поля в ответе: | поля в ответе: | ||
− | * '''cost''' (''decimal'') - стоимость | + | * '''cost''' (''decimal'') - стоимость опции на указанный период в EUR |
пример запроса: | пример запроса: | ||
− | <nowiki>https://api | + | <nowiki>https://api.acestream.net/?method=getServiceCost ↵ |
&api_version=1.0 ↵ | &api_version=1.0 ↵ | ||
&api_key=be6f66e0848528139583b567fb222215444fc8ac ↵ | &api_key=be6f66e0848528139583b567fb222215444fc8ac ↵ | ||
Line 61: | Line 65: | ||
===activateService=== | ===activateService=== | ||
− | Активировать | + | Активировать опцию для пользователя |
параметры: | параметры: | ||
− | |||
* '''user_key''' (''string'') - ключ пользователя | * '''user_key''' (''string'') - ключ пользователя | ||
− | * '''service''' (''string'') - идентификатор | + | * '''service''' (''string'') - идентификатор опции |
* '''period''' (''string'') - идентификатор периода | * '''period''' (''string'') - идентификатор периода | ||
поля в ответе: | поля в ответе: | ||
− | * '''validFrom''' (''unix timestamp'') - с какого времени | + | * '''validFrom''' (''unix timestamp'') - с какого времени опция активна |
− | * '''validTo''' (''unix timestamp'') - до какого времени | + | * '''validTo''' (''unix timestamp'') - до какого времени опция активна |
пример запроса: | пример запроса: | ||
− | <nowiki>https://api | + | <nowiki>https://api.acestream.net/?method=activateService ↵ |
&api_version=1.0 ↵ | &api_version=1.0 ↵ | ||
&api_key=be6f66e0848528139583b567fb222215444fc8ac ↵ | &api_key=be6f66e0848528139583b567fb222215444fc8ac ↵ | ||
Line 83: | Line 86: | ||
&sign=c4df772a4a41ad7bbb4d7d07e46cad5e3622c59e</nowiki> | &sign=c4df772a4a41ad7bbb4d7d07e46cad5e3622c59e</nowiki> | ||
− | ответ (успешная активация | + | ответ (успешная активация опции): |
<nowiki>{"validFrom":1376048972,"validTo":1378640972}</nowiki> | <nowiki>{"validFrom":1376048972,"validTo":1378640972}</nowiki> | ||
− | ответ (недостаточно средств | + | ответ (на балансе реселлера недостаточно средств для активации опции): |
<nowiki>{"error":"not enough credits"}</nowiki> | <nowiki>{"error":"not enough credits"}</nowiki> | ||
Line 93: | Line 96: | ||
параметры: | параметры: | ||
− | |||
* '''user_key''' (''string'') - ключ пользователя | * '''user_key''' (''string'') - ключ пользователя | ||
поля в ответе: | поля в ответе: | ||
− | * '''services''' (''array'') - массив | + | * '''services''' (''array'') - массив опций, привязанных к данному ключу пользователя. Каждая опция описывается такими полями: |
− | ** '''id''' (''string'') - идентификатор | + | ** '''id''' (''string'') - идентификатор опции |
− | ** '''validFrom''' (''unix timestamp'') - с какого времени | + | ** '''validFrom''' (''unix timestamp'') - с какого времени опция активна |
− | ** '''validTo''' (''unix timestamp'') - до какого времени | + | ** '''validTo''' (''unix timestamp'') - до какого времени опция активна |
− | ** '''enabled''' (''boolean'') - активна ли | + | ** '''enabled''' (''boolean'') - активна ли опция в данный момент |
пример запроса: | пример запроса: | ||
− | <nowiki>https://api | + | <nowiki>https://api.acestream.net/?method=getUserKeyInfo ↵ |
&api_version=1.0 ↵ | &api_version=1.0 ↵ | ||
&api_key=be6f66e0848528139583b567fb222215444fc8ac ↵ | &api_key=be6f66e0848528139583b567fb222215444fc8ac ↵ | ||
Line 111: | Line 113: | ||
&sign=5e0fc46d908e5f224ce9fce9f6a83dd6b3502cc0</nowiki> | &sign=5e0fc46d908e5f224ce9fce9f6a83dd6b3502cc0</nowiki> | ||
− | ответ (нет | + | ответ (нет опций): |
<tt>{"services":[]}</tt> | <tt>{"services":[]}</tt> | ||
− | ответ (есть | + | ответ (есть опции): |
<nowiki>{"services": [ | <nowiki>{"services": [ | ||
{"id": "noAds", "validFrom": 1374673235, "validTo": 1445089235, "enabled": true}, | {"id": "noAds", "validFrom": 1374673235, "validTo": 1445089235, "enabled": true}, | ||
Line 120: | Line 122: | ||
]}</nowiki> | ]}</nowiki> | ||
− | ==Идентификаторы | + | ==Идентификаторы опций== |
− | * '''noAds''' - | + | * '''noAds''' - опция "No ADs" (отключение рекламы Ace Stream) |
− | * '''premium''' - | + | * '''premium''' - опция "Premium Streams" (доступ к премиум-контенту) |
==Идентификаторы периодов== | ==Идентификаторы периодов== | ||
* '''m1''' - 30 дней | * '''m1''' - 30 дней | ||
* '''y1''' - 365 дней | * '''y1''' - 365 дней |
Revision as of 15:38, 9 August 2013
Contents
Общее описание API
Запросы API отправляются методом HTTP-GET на такие адреса:
- тестовый режим: https://api.sandbox.acestream.net
- боевой режим: https://api.acestream.net
Ответы на запросы приходят в формате json.
Если при обработке запроса возникла ошибка, будет отослан ответ такого вида:
{"error":"error descrtiption"}
Ответы за успешно обработанные запросы зависят от вызываемого метода.
Обязательные общие параметры для всех запросов
- method - вызываемый метод API
- api_key - ключ клиента API
- api_version - поддерживаемая версия API (текущая версия: 1.0)
- app - идентификатор маркета
- sign - цифровая подпись запроса
Алгоритм формирования цифровой подписи
- создается массив строк вида "название_параметра=значение_параметра"
- полученный массив сортируется
- элементы отсортированного массива объединяются в строку с разделителем "#"
- к полученной строке добавляется секретный ключ клиента API
- подписью является sha1-хеш от полученной строки (в шестнадцатеричном представлении, 40 символов, маленькими буквами)
Код на PHP:
function makeSignature(array $params, $apiSecret) { $checkParams = array(); foreach($params as $k => $v) { $checkParams[] = $k . '=' . $v; } sort($checkParams); $payload = join('#', $checkParams); $sign = sha1($payload . $apiSecret); return $sign; }
Методы API
getServiceCost
Получить стоимость опции
параметры:
- service (string) - идентификатор опции
- period (string) - идентификатор периода
поля в ответе:
- cost (decimal) - стоимость опции на указанный период в EUR
пример запроса:
https://api.acestream.net/?method=getServiceCost ↵ &api_version=1.0 ↵ &api_key=be6f66e0848528139583b567fb222215444fc8ac ↵ &app=9_50gh753t6uscog88800kcksw04s0o0wccscco8kgsogwkocwgw ↵ &service=noAds ↵ &period=m1 ↵ &sign=45c84ceffd3ec443586e8f4666b28abde8400768
ответ:
{"cost":1}
activateService
Активировать опцию для пользователя
параметры:
- user_key (string) - ключ пользователя
- service (string) - идентификатор опции
- period (string) - идентификатор периода
поля в ответе:
- validFrom (unix timestamp) - с какого времени опция активна
- validTo (unix timestamp) - до какого времени опция активна
пример запроса:
https://api.acestream.net/?method=activateService ↵ &api_version=1.0 ↵ &api_key=be6f66e0848528139583b567fb222215444fc8ac ↵ &app=9_50gh753t6uscog88800kcksw04s0o0wccscco8kgsogwkocwgw ↵ &user_key=a455865e5800fd7efab75f2b4852fc2497f9fc39 ↵ &service=noAds ↵ &period=m1 ↵ &sign=c4df772a4a41ad7bbb4d7d07e46cad5e3622c59e
ответ (успешная активация опции):
{"validFrom":1376048972,"validTo":1378640972}
ответ (на балансе реселлера недостаточно средств для активации опции):
{"error":"not enough credits"}
getUserKeyInfo
Получить информацию о ключе пользователя
параметры:
- user_key (string) - ключ пользователя
поля в ответе:
- services (array) - массив опций, привязанных к данному ключу пользователя. Каждая опция описывается такими полями:
- id (string) - идентификатор опции
- validFrom (unix timestamp) - с какого времени опция активна
- validTo (unix timestamp) - до какого времени опция активна
- enabled (boolean) - активна ли опция в данный момент
пример запроса:
https://api.acestream.net/?method=getUserKeyInfo ↵ &api_version=1.0 ↵ &api_key=be6f66e0848528139583b567fb222215444fc8ac ↵ &app=9_50gh753t6uscog88800kcksw04s0o0wccscco8kgsogwkocwgw ↵ &user_key=8fb311be3836b04f61817dbf8a23c05739ebb13e ↵ &sign=5e0fc46d908e5f224ce9fce9f6a83dd6b3502cc0
ответ (нет опций):
{"services":[]}
ответ (есть опции):
{"services": [ {"id": "noAds", "validFrom": 1374673235, "validTo": 1445089235, "enabled": true}, {"id": "premium", "validFrom": 1374858187, "validTo": 1448301787, "enabled": true} ]}
Идентификаторы опций
- noAds - опция "No ADs" (отключение рекламы Ace Stream)
- premium - опция "Premium Streams" (доступ к премиум-контенту)
Идентификаторы периодов
- m1 - 30 дней
- y1 - 365 дней