Todennus API
Standardisoidun GET-kyselyrajapinnan kautta moonpacket noutaa aktiivisesti 'palkkiosäännöt' ja 'käyttäjätiedot' palvelimeltasi. Kaikki loogiset arvioinnit hoitaa moonpacket.
Vuorovaikutuslogiikka
Koko prosessi on jaettu kahteen vaiheeseen: 'Asennusvaihe' ja 'Suoritusvaihe'. moonpacket lähettää pyyntöjä API:si käyttämällä GET-menetelmää:
Vaihe 1: Sääntöjen määrittäminen (Konfiguraatio)
⚡ Käynnistysohje: Syötä URL „vaatimusehdot“ ja lähetä se
Vaihe 2: Käyttäjän vahvistaminen (Suorituskyky)
⚡ Käynnistysohje: Käyttäjä yrittää nostaa punakirin.
💡 Tuetut operaattorit: `eq` (yhtä suuri, tukee merkkijonoja/lukuja), `gt` (suurempi kuin), `gte` (suurempi tai yhtä suuri kuin), `lt` (pienempi kuin), `lte` (pienempi tai yhtä suuri kuin). Arvojen, jotka eivät ole `eq` operaattoreita, on oltava lukuja.
Sovellusskenaariot
GameFi yhdistäminen
Määritä sääntö `level >= 10`. Kun käyttäjä lunastaa, moonpacket tarkistaa käyttäjän ominaisuudet, jos `level: 12`, niin se hyväksytään.
Identiteettisitoutumispalkinto
Määrittele sääntö `kyc == true`. moonpacket tarkistaa käyttäjän tilan, ja jos se palauttaa `kyc: true`, niin palkintoja jaetaan.
Blacklist-suodatus
Määritä sääntö `is_blacklist == false`. Jos API palauttaa `is_blacklist: true`, hylkää hakemus.
Viestintäesimerkki (GET-pyyntö)
Mode A 1. Määritä säännöt (Määritys)
Kun asetuksia lähetetään, palauta JSON, joka sisältää operaattorit.
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. Kyselyn tila (Suorituskyky)
Kun käyttäjä vaatii, palauta puhtaat arvot tai merkkijonot.
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
}
} Tietorakenteen määrittely (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;
};
} 🔐 Turvatarkistus
Varmistaaksesi pyyntöjen aitouden, moonpacket lisää allekirjoituksen otsikkoon. Voit viitata oikealla olevaan koodiin validoimista varten:
Tarvittavat otsikot
Allekirjoitusalgoritmi
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); ⚠️ Huomautus
- ● Aikakatkos: Varmista, että API voi palauttaa tuloksia 3 sekunnin kuluessa.
- ● Muoto: Ole hyvä ja noudata tarkasti JSON-rakennetta, muuten se johtaa jäsentämisvirheeseen.
Tilakoodit
| Tilakoodi | Tila | Kuvaus |
|---|---|---|
| 200 | OK | Pyyntö onnistui |
| 400 | Bad Request | Pyyntöparametri virheellinen (esim. muoto ei oikein). |
| 401 | Unauthorized | Valtuutuspäänsisi puuttuu tai avain on voimaton. |
| 403 | Forbidden | IP-rajoitus tai ei oikeutta päästä tähän resurssiin. |
| 404 | Not Found | Käyttäjän ID ei ole olemassa (koskee käyttäjätietojen hakuja). |
| 500 | Server Error | Palvelimen sisäinen virhe. |
⚠️ Kolmannen Osapuolen API Varoitus
Kolmannen osapuolen alustojen integrointimenetelmät, jotka on mainittu tässä asiakirjassa, ovat vain viittausmateriaalia. Kehittäjien tulisi ottaa huomioon ja noudattaa alustojen uusinta virallista kehittäjädokumentaatiota.