Документация по интеграции приложения iPlayer.org API+OAuth2
in English: open
Игровая платформа iPlayer.org позволяет интегрировать приложения используя протокол OAuth2.
Подключением приложения занимается менеджер iPlayer.org:
Методи, skype: metodi.chukovski
Для инициализации вашего приложения, вам нужно сообщить менеджеру свой URL страницы на котором будет находится ваше приложение.
Пример: https://iplayer.your_game.com/?lang=ru
После того, как менеджер зарегистрировал приложение, вы получите 2 ключа: client_key и client_secret.
Теперь ваше приложение зарегестрировано в iPlayer.org, и вы можете получить информацию о пользователе iPlayer.org.
iPlayer.org делает пункты в красной рамке (на картинке) автоматически и передает access_token в приложение:
Пример: https://iplayer.your_game.com/?lang=ru&access_token=a1b2c3d4e5f6
При помощи access_token приложение может запросить данные о пользователе :
https://iplayer.org/oauth/user/info?access_token=a1b2c3d4e5f6
Пример библиотеки PHP, которая по access_token возвращает данные пользователя iPlayer.org: файл iplayer.php (Скачать)
Пример, как использовать библиотеку:
include "iplayer.php";
$iplayer = IPlayer::handle_request();
try{
$user = $iplayer->user_info();
print_r($user);
}catch(IPlayer_Exception $e){
echo "Error: ". $e->getMessage();
die();
}
В ответе вы получаете массив с информацией о пользователе, или IPlayer_Exception в случае ошибки
Array
(
[name] => Имя пользователя
[surname] => Фамилия пользователя
[nickname] => Ник пользователя
[gender] => m|f Пол пользователя
[birthday] => 1984-06-05 00:00:00 Дата рождения пользователя
[_id] => 156 Уникальный идентификатор пользователя на сервере iPlayer
[avatar] => https://iplayer.org/uploads/a/0/156.jpg Путь к аватарке пользователя
)
Работающий пример приложения можно посмотреть по ссылке (после регистрации/авторизации):
https://iplayer.org/game/example
Когда приложение принимает платежи от пользователей - нужно сообщать iPlayer.org о каждом платеже с привязкой к [user_id] пользователя iPlayer.org
api.iplayer.org/partner/payment - оповещение о платеже
Работающий пример можно посмотреть по ссылке:
https://api.iplayer.org/partner/payment?game=example&user_id=14560&total=130.92&secret=example¤cy=usd&confirm=1
параметры
Если запись добавлена в базу данных iPlayer, возвращается ответ вида
{
"response": {
"payment_id": "13"
}
}
payment_id - уникальный идентификатор платежа в статистике iPlayer.org. Для будущих сверок платежей мы рекомендуем сохранять их payment_id.
Любой платеж требует подтверждения уникальности сервером игры:
api.iplayer.org/partner/payment/confirm - подтверждение получения payment_id нужно для подтверждения УНИКАЛЬНОСТИ платежа (фиксация транзакции):
https://api.iplayer.org/partner/payment/confirm?payment_id= 2002
параметры
в случае успеха возвращает
{ "response": { "status": "confirmed" } }
если платеж уже был подтвержден или не найден
{ "response": { "status": "cancelled" } }
Если получен ответ "confirmed" или "cancelled" - то iPlayer.org подтвердил статус платежа.
Подтверждение платежа не имеет срока давности, желательно отправлять сразу после получения payment_id или в те же сутки.
Детальный пример передачи и подтверждения уникальности платежа
Пользователь user_id=256837 купил в игре botva игровой валюты на сумму 77.39 RUB
Игра отправляет данный платеж в iPlayer
https://api.iplayer.org/partner/payment?game=botva&user_id=256837&total=77.39&secret=BOTVA_SECRET¤cy=rub&confirm=1
Если сервер iPlayer не прислал ответ вида:
{ "response": { "payment_id": "418" } }
то игра повторяет запрос:
https://api.iplayer.org/partner/payment?game=botva&user_id=256837&total=77.39&secret=BOTVA_SECRET¤cy=rub&confirm=1
...
Стандартное время ответа сервера до 1-6 сек.
Получения ответа "response" означает, что iPlayer записал данный платеж в базу данных. Теперь нужно подтвердить уникальность платежа (зафиксировать транзакцию).
Игра отправляете запрос
https://api.iplayer.org/partner/payment/confirm?payment_id=418
Сервер iPlayer присылает один из двух ответов:
{ "response": { "status": "confirmed" } } - означает, что платеж подтвержден и зафиксирован со стороны iPlayer и стороны игры.
{ "response": { "status": "cancelled" } } - платеж подтвержден ранее или не найден.
Если игра не получила ответа, игра повторяет запрос (https://api.iplayer.org/partner/payment/confirm?payment_id=418)
После получения любого из ответов от сервера iPlayer - никаких других действий по платежу “418” не требуется.
Если игра не получила ответа на запрос payment_id или статуса status обратитесь к менеджеру за объяснением работы API:
Методи, skype: metodi.chukovski
Проверка получения истории платежей
https://api.iplayer.org/partner/payment/history?game=example&secret=example&count=20
параметры
api.iplayer.org/friends/get - получение списка друзей пользователя по user_id
Пример: https://api.iplayer.org/friends/get?user_id=1&count=10
Параметры:
api.iplayer.org/friends/getOnline - возвращает список идентификаторов, находящихся на сайте друзей, текущего пользователя.
Пример: https://api.iplayer.org/friends/getOnline?user_id=1&count=10
Параметры:
api.iplayer.org/friends/getRequests - возвращает информацию о полученных или отправленных заявках на добавление в друзья для текущего пользователя.
Параметры:
api.iplayer.org/users/get - возвращает расширенную информацию о пользователях.
Пример: https://api.iplayer.org/users/get?uids=2,1,243641
Параметры:
api.iplayer.org/places/getCountries - возвращает список стран.
Пример: https://api.iplayer.org/places/getCountries
api.iplayer.org/account/setOnline - помечает текущего пользователя как online.
Пример: https://api.iplayer.org/account/setOnline
возвращаемые значения:
api.iplayer.org/users/search - поиск пользователей
Пример: https://api.iplayer.org/users/search?country=2&city_id=314&username=%D0%A1%D0%B5%D1%80%D0%B3
Параметры:
api.iplayer.org/friends/getFromSocial - получение списка возможных друзей
Пример: https://api.iplayer.org/friends/getFromSocial?user_id=23
Параметры:
api.iplayer.org/threads/getComments - получение списка комментариев
Пример: https://api.iplayer.org/threads/getComments?thread_id=10
Параметры:
api.iplayer.org/threads/get - получение информации о топиках
Пример: https://api.iplayer.org/threads/get?ids=1
Параметры: