Активация кодов
Вы можете активировать коды двумя способами:
- Из базы данных: API берет код из базы данных и активирует его для вас. База данных синхронизируется с ботом, поэтому вы или ваши пользователи можете добавлять туда коды, не беспокоясь о хранении.
- Напрямую: Вы предоставляете код с каждым запросом. Это дает полный контроль над вашими кодами, но добавляет сложности при ошибках, поскольку нужно решать, что делать с неудачными кодами.
Начнем с метода через базу данных, поскольку он проще. Прямую активацию рассмотрим после.
Выполнение запроса
Используйте эндпоинт POST /redeem для активации кода.
Вот как:
Разберем ключевые параметры:
requireReceipt
Раньше этот параметр контролировал, будете ли вы получать email/пароль при активации.
Сейчас этот параметр ни на что не влияет и должен оставаться равным true.
Он сохранен только для обратной совместимости.
playerId
Это внутриигровой ID персонажа игрока (строка из цифр).
Используйте эндпоинт GET /character для проверки ID игрока сначала.
Он возвращает имя игрока, что помогает пользователям убедиться, что они ввели правильный ID.
gameId
Сейчас наш сервис поддерживает активацию кодов для 3 игр:
- PUBG Mobile (
pubg_mobile) - Honor of Kings (
honor_of_kings) - Garena Free Fire (
free_fire)
Интерфейс API практически идентичен, и вы можете легко переключаться между играми.
База данных отдельная для каждой игры. Это значит, что для всех игр, кроме
pubg_mobile, активация возможна только с codeOverride.
Поддержка управления базами данных для других игр появится в ближайшее время.
Понимание ответа
Когда активация проходит успешно, вы получите объект ActivationReceipt:
Вот что означает каждое поле:
ID
Каждый чек имеет уникальный ID.
Вы можете получить ее позже с помощью GET /history/{id}, или использовать команду /receipt_{id} в боте для просмотра.
Email и password
Вы получите учетные данные аккаунта Midasbuy, использованного для активации. Вы можете использовать их для входа и самостоятельной проверки транзакции. Обычно безопасно делиться ими с пользователями, но помните, что на одном аккаунте может быть несколько активаций.
Если вы не можете войти в аккаунт, обратитесь в поддержку для сброса пароля.
Для игр Garena (Free Fire) email - это внутренний ID аккаунта игрока, а password -
это токен сессии, использованный для активации.
Warning
После активации мы проверяем, появляется ли “полный чек” на аккаунте.
Чтобы увидеть чек самостоятельно: войдите в Midasbuy, нажмите на свой аккаунт, затем “Order Center”. Каждый элемент там - это “полный чек”.
Для игр Garena warning всегда должен быть false.
Поле warning равно true, когда мы по какой-то причине не можем найти полный чек.
Это происходит редко, но все же возможно в некоторых случаях (обычно из-за проблем с сетью на стороне игрового провайдера или на нашей).
Amount
Это показывает, сколько UC/алмазов/валюты было активировано. Это поле может отсутствовать в некоторых случаях, когда мы не можем точно определить сумму.
Обработка ошибок
Мы подробно рассмотрим все ошибки позже, но вот основы.
Когда активация не удается, вы получите ActivationErrorResponse, содержащий объект ActivationError с полем errorCode.
errorCode - это конкретный тип ошибки из фиксированного набора вариантов.
Например, CHARACTER_NOT_FOUND означает, что playerId неверен или поиск игрока не удался.
Подробнее читайте в гайде Обработка ошибок.
Прямая активация
Если вы предпочитаете не использовать базу данных, можете предоставлять коды напрямую с каждым запросом.
Отправьте RedeemCodeDirectRequest вместо RedeemCodeFromDbRequest.
(В HTTP API опустите denomination и используйте codeOverride вместо этого.)
Следующие шаги
Узнайте о всех возможных ошибках и как их обрабатывать.