LiaPengembang

Panduan

Bayar pemain dalam $LIA dari kumpulan hadiah aplikasi Anda, dari server Anda. Bonus harian sebagai contoh, aman untuk diulang dan dalam batas Anda.

Aplikasi Anda memerlukan dana pool, yang didanai oleh tim Lia (lihat Pola hadiah). Hadiah hanya pernah datang dari server Anda, dengan kunci Anda.

#Bonus harian

Setiap pemain dapat mengklaim 2 LIA sekali sehari, setelah menyelesaikan level.

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;
  }
});

Di halaman:

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

#Memilih kunci

Kunci adalah yang membuat hadiah aman. Kunci yang sama tidak pernah membayar dua kali, jadi buatlah nama alasan hadiah, bukan permintaan:

HadiahKunci
Bonus hariandaily:2026-11-01:p_3f9c…
Sebuah tempat turnamentournament-44:place-1:p_3f9c…
Sebuah misi selesaiquest-7:p_3f9c…
Sebuah video yang ditontonad:ad_8e1c…

Sebuah ulang coba dengan kunci yang sama setelah timeout menjawab { "status": "duplicate" } dan tidak membayar lebih, jadi mencoba ulang selalu aman. Jangan coba ulang dengan kunci baru.

#Perhatikan pool tersebut

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

Ketika pool bisa'tidak menutupi hadiah, POST /rewards jawaban 409 pool_empty. Beri tahu pemain dengan baik dan minta tim Lia untuk menambahkannya. Ketika seorang pemain telah menggunakan aplikasi Anda'batas harian, itu menjawab 429 daily_limit (batasnya per pemain per UTC hari, ditetapkan oleh tim).

#Dalam uji coba

Dengan kunci uji Anda, hadiahnya palsu: dicatat, dengan webhook mereka, tetapi tidak ada pergerakan $LIA, dan kolam dan batas harian tidak'telah digunakan. Coba kunci Anda dan penanganan kesalahan Anda terlebih dahulu.

#Buat hadiah adil

  • Putuskan di server. Apa yang Anda peroleh seharusnya berasal dari apa yang server Anda lihat (permainan selesai, video diverifikasi), bukan dari halaman yang mengatakannya.
  • Perhatikan batasan Anda sendiri juga, per pemain dan per hari, jadi satu pemain bisa'tidak menguras kolam.
  • Jelaskan alasannya. The reason tampil di pemain's aktivitas di bawah aplikasi Anda'nama.

Diterjemahkan otomatis. Bahasa Inggris adalah sumber kebenaran. Baca dalam Bahasa Inggris

Ketik untuk mencari setiap halaman, metode, dan titik akhir.