/arena/rewards/claim
Забрать одну награду арены.
Адрес метода
/arena/rewards/claim
Требует сессию пользователя
Параметры
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| kind | НЕТ | string(1..10) | rank — за достижение AP, win — сундук за победы, daily — ежедневная |
| cid | НЕТ | string(1..50) | cid награды |
Результат
{
"response": {
"success": 1,
"kind": "win",
"cid": "win_10",
"rewards": [{"id": "hard", "amount": 100}, {"id": "arena_token", "amount": 5}],
"arena": {"...arena"}
}
}
Что важно знать
До завершения онбординга метод отказывает кодом 10061 (ArenaNotOnboarded) — до любых списаний. Игрок, не победивший Цукера, в боях не участвует (онбординг). Это страховка: состояние клиент знает заранее из onboarding.onboarded в /arena/info.
Двойную выдачу отбивает атомарная заявка, а не проверка перед выдачей. Прежняя связка «проверить — выдать — отметить» была check-then-act: два параллельных запроса проходили проверку оба и начисляли предметы дважды.
Ежедневная награда живёт слотом, а не журналом клеймов, поэтому у неё свой путь выдачи. Клейм
гасит слот — этим же выдача становится однократной, и cid обязан совпадать со слотом. Забрать до
окончания суток нельзя: слот пуст, пока граница не пройдена.
Сезонной награды здесь нет намеренно. Она начисляется сама в момент смены сезона и
показывается попапом через /event/list. Второй путь выдачи означал бы возможность расхождения
между «начислено ролловером» и «забрано кнопкой».
cid обязан совпадать с той наградой, которая игроку положена. Сервер находит награду по
состоянию игрока и сверяет её cid с присланным; несовпадение — отказ. Без этой сверки одну и ту же
награду можно было бы забирать сколько угодно раз, каждый раз присылая новый cid: реестр клеймов
ключуется парой (вид, cid), и разные cid он не отбивает.
Право на награду проверяется ДО заявки — иначе на недоступную награду в реестре осталась бы фантомная строка, блокирующая законный клейм позже.
Выдача идёт через штатный конвейер награды, а не прямым пополнением кошелька: иначе теряются аналитика, история операций, опыт игрока и осколки приёмов.
Недоступная, уже забранная или неизвестная награда даёт пустой список rewards, а не ошибку.