Authentikációs API
A moonpacket egy szabványos GET kérési felületen keresztül aktívan lekéri a 'jutalom szabályokat' és a 'felhasználói attribútumokat' az ön szerveréről. Minden logikai döntést a moonpacket kezel.
Interakciós Logika
A teljes folyamat két fázisra oszlik: 'Beállítási Fázis' és 'Futási Fázis'. A moonpacket HTTP GET módszerrel kéréseket küld az API-jára:
1. szakasz: Szabályok meghatározása (Konfiguráció)
⚡ Kiváltó esemény: amikor az URL meg van adva az 'Igénylési Feltételek Beállítása' részben és beküldve
Fázis 2: Felhasználó érvényesítése (Futásidő)
⚡ Indító esemény: amikor a felhasználó megpróbálja igényelni a Red Packet-et
💡 Támogatott operátorok: `eq` (egyenlő, támogatja a szövegeket/számokat), `gt` (nagyobb mint), `gte` (nagyobb vagy egyenlő), `lt` (kisebb mint), `lte` (kisebb vagy egyenlő). A nem `eq` operátorok értékei számoknak kell lenniük.
Alkalmazási Szenáriók
GameFi Integráció
Határozza meg a szabályt `level >= 10`. Amikor a felhasználó igényli, a moonpacket ellenőrzi a felhasználó attribútumait, ha `level: 12`, akkor jóváhagyva.
Azonosítói Kötés Jutalom
Határozza meg a szabályt `kyc == true`. A moonpacket ellenőrzi a felhasználó státuszát, és ha az `kyc: true` értéket ad vissza, akkor a jutalmak kiosztásra kerülnek.
Fekete lista szűrés
Határozd meg a szabályt `is_blacklist == false`. Ha az API `is_blacklist: true`-t ad vissza, az igénylés elutasításra kerül.
Kommunikációs példa (GET kérés)
Mode A 1. Szabályok meghatározása (Beállítás)
A beállítások benyújtásakor térjen vissza JSON formátumban az operátorokkal.
GET /check HTTP/1.1
Host: api.your-game.com
Content-Type: application/json
X-API-KEY: 1234567890
X-API-TIMESTAMP: 1698765432
X-API-NONCE: 987654
X-API-SIGNATURE: 5d41402abc4b2a76b9719d911017c592...
# No user_id = Get Rules {
"data": {
"level": {
"gt": 99
},
"status": {
"eq": "active"
},
"is_blacklist": {
"eq": false
}
}
} Mode B 2. Lekérdezés állapot (Futtatás)
Amikor a felhasználó érvényesíti, tiszta értékeket vagy szövegeket kell visszaadni.
GET /check?user_id=666666666 HTTP/1.1
Host: api.your-game.com
Content-Type: application/json
X-API-KEY: 1234567890
X-API-TIMESTAMP: 1698765432
X-API-NONCE: 123456
X-API-SIGNATURE: a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6...
# With user_id = Get User Status {
"data": {
"level": 100,
"status": "active",
"is_blacklist": false
}
} Adatszerkezet Meghatározás (TypeScript)
// Step 1: Rules Definition
interface RulesResponse {
data: {
[key: string]: {
eq?: string | number | boolean;
gt?: number;
gte?: number;
lt?: number;
lte?: number;
};
};
}
// Step 2: User Status
interface UserStatusResponse {
data: {
[key: string]: string | number | boolean;
};
} 🔐 Biztonsági Ellenőrzés
A kérések hitelességének biztosítása érdekében a moonpacket aláírást fog tartalmazni a fejlécben. Az érvényesítéshez a jobb oldalon található kódra hivatkozhat:
Szükséges fejléc
Aláírási algoritmus
import crypto from "crypto";
// 1. Generate Signature
function generateSignature(
apiSecret: string,
body: object,
timestamp: number,
nonce?: string
) {
const payload = JSON.stringify(body) + timestamp + (nonce || "");
return crypto.createHmac("sha256", apiSecret).update(payload).digest("hex");
}
// Client Usage Example
const apiKey = "client123";
const apiSecret = "mysecretkey";
const body = { /* Query Params or Body */ };
const timestamp = Date.now();
const nonce = crypto.randomBytes(8).toString("hex");
const signature = generateSignature(apiSecret, body, timestamp, nonce);
console.log({ apiKey, timestamp, nonce, signature });
// 2. Verify Signature
function verifySignature(
apiSecret: string,
body: object,
timestamp: number,
nonce: string,
signature: string
) {
const expected = generateSignature(apiSecret, body, timestamp, nonce);
return expected === signature;
}
// Verification Result
const isValid = verifySignature(apiSecret, body, timestamp, nonce, signature);
console.log("Is Valid:", isValid); ⚠️ Megjegyzés
- ● Időtúllépés: Győződjön meg róla, hogy az API 3 másodpercen belül képes eredményeket visszaadni.
- ● Formátum: Kérjük, szigorúan kövesse a JSON struktúrát, különben elemzési hiba léphet fel.
Állapotkódok
| Állapotkód | Állapot | Leírás |
|---|---|---|
| 200 | OK | Kérés sikeres |
| 400 | Bad Request | Kérés paraméter hiba (pl. hibás formátum). |
| 401 | Unauthorized | Hiányzik az engedélyezési fejléc vagy a kulcs érvénytelen. |
| 403 | Forbidden | IP korlátozás vagy jogosulatlan hozzáférés az erőforráshoz. |
| 404 | Not Found | Felhasználói azonosító nem létezik (a felhasználói állapot lekérdezésének forgatókönyveihez). |
| 500 | Server Error | Belső szerverhiba. |
⚠️ Harmadik Feles API Felelősségkizárás
A harmadik fél platformok integrációs módszerei, amelyeket ebben a dokumentumban említünk, csak tájékoztató jellegűek. A fejlesztőknek konzultálniuk kell a platform legfrissebb hivatalos fejlesztői dokumentációjával, és ahhoz kell tartaniuk magukat.