LiaРазработчики

Руководства

Платите игрокам в $LIA из пула вознаграждений вашего приложения, с вашего сервера. Ежедневная бонус, как пример, безопасно повторить и в пределах ваших ограничений.

Ваше приложение должно иметь пул вознаграждений, финансируемый командой Lia (см. Пулы наград. Вознаграждения всегда приходят с вашего сервера, с вашим ключом.

#Ежедневный бонус

Каждый игрок может получить 2 LIA один раз в день, после завершения уровня.

server.js
import { lia } from "./lia.js";

app.post("/api/daily-bonus", async (req, res) => {
  const playerId = await playerFrom(req.body.session); // see Verify on your server
  if (!playerId) return res.status(401).end();
  if (!(await db.finishedALevelToday(playerId))) return res.status(403).json({ error: "play_first" });

  const day = new Date().toISOString().slice(0, 10); // 2026-11-01
  try {
    const result = await lia("POST", "/rewards", {
      playerId,
      amount: 2,
      key: `daily:${day}:${playerId}`, // one a day per player, however often this runs
      reason: "Daily bonus",
    });
    res.json({ paid: result.status === "paid", amount: result.amount });
  } catch (error) {
    if (error.data?.error === "pool_empty") return res.status(503).json({ error: "bonus_paused" });
    if (error.data?.error === "daily_limit") return res.status(429).json({ error: "come_back_tomorrow" });
    throw error;
  }
});

На странице:

const { paid, amount } = await api("/api/daily-bonus", {});
if (paid) {
  Lia.haptic("success");
  Lia.toast("+" + amount + " LIA");
}

#Выбор ключей

Ключ делает вознаграждение безопасным. Один и тот же ключ никогда не платит дважды, поэтому сделайте его названием причины вознаграждения, а не запроса:

НаградаКлюч
Ежедневный бонусdaily:2026-11-01:p_3f9c…
Место в турниреtournament-44:place-1:p_3f9c…
Завершенный квестquest-7:p_3f9c…
Просмотренное видеоad:ad_8e1c…

Повторная попытка с тем же ключом после таймаута даст ответ { "status": "duplicate" } и платит ничего больше, поэтому повторная попытка всегда безопасна. Никогда не повторяйте с новым ключом.

#Следите за пулом

const { balance, dailyCapPerPlayer } = await lia("GET", "/pool");
if (balance < 100) alertTheTeam(`Reward pool is down to ${balance} LIA`);

Когда пула может'не покрывают вознаграждение, POST /rewards ответы 409 pool_empty. Скажите игрокам вежливо и попросите команду Lia увеличить его. Когда игрок уже использовал ваше приложение'дневной лимит, он отвечает 429 daily_limit (лимит на человека в день UTC, установленный командой).

#В тесте

С вашим тестовым ключом вознаграждения фальшивые: записываются, с их вебхуком, но нет $LIA операций, и пул и дневной лимит не'не использован. Попробуйте ваши ключи и обработку ошибок там в первую очередь.

#Сделайте вознаграждения справедливыми

  • Решайте на сервере. Что заработало, должно исходить из того, что видело ваше сервер (оконченная игра, проверенное видео), а не из того, что говорит страница.
  • Заботьтесь о своих собственных ограничениях также, на игрока и в день, так что один игрок может'не опустошать бассейн.
  • Объясните почему. The reason отображается в игроке's активность под вашим приложением'имя.

Автоматически переведено. Английский — источник истины. Читать на английском

Введите, чтобы искать по каждой странице, методу и точке окончания.