Μετάβαση στο κύριο περιεχόμενο
Προδιαγραφή API v2.3

API Ταυτοποίησης

Μέσω ενός τυποποιημένου διεπαφής GET query, το moonpacket ανακτά ενεργά τους 'κανόνες επιβράβευσης' και τα 'χαρακτηριστικά χρήστη' από τον διακομιστή σας. Όλες οι λογικές κρίσεις διαχειρίζεται το moonpacket.

Λογική Αλληλεπίδρασης

Η ολόκληρη διαδικασία είναι διαιρεμένη σε δύο φάσεις: 'Φάση Ρύθμισης' και 'Φάση Εκτέλεσης'. Η moonpacket θα στείλει αιτήματα στο API σας χρησιμοποιώντας τη μέθοδο GET:

moonpacket Πελάτης / Διακομιστής Λογικό Ταίριασμα (Τοπικό) Κανόνες αποθηκευμένοι: Level >= 10 Κατάσταση Χρήστη: Level = 12 ✓ Διανομή Ανταμοιβών ⚙️ Η API σας GET /check ?user_id=... 1. Κατά την Ρύθμιση: Κανόνες Ανάκτησης (GET) 2. Κατά τη διάρκεια της Αίτησης: Ερώτηση Κατάστασης (GET) JSON δεδομένα
← 左右滑動查看流程 →
Βήμα Ένα

Φάση 1: Ορισμός Κανόνων (Διαμόρφωση)

Σημείο εκκίνησης: Όταν συμπληρώσετε το URL και υποβάλετε στις ρυθμίσεις όρων παραλαβής

GET GET
RET Επιστρέφει αντικείμενο ορισμού κανόνων με τελεστές (gt, eq, lt...)
Βήμα Δύο

Φάση Δύο: Επικύρωση του χρήστη (Runtime)

Σημείο εκκίνησης: Ο χρήστης προσπαθεί να παραλάβει το Red Packet

GET ?user_id=...
RET Επιστροφή της πραγματικής τιμής ιδιοτήτων αυτού του συγκεκριμένου χρήστη (καθαρές αριθμητικές τιμές ή συμβολοσειρές)

💡 Υποστηριζόμενοι Λειτουργοί: `eq` (ίσο με, υποστηρίζει συμβολοσειρές/αριθμούς), `gt` (μεγαλύτερο από), `gte` (μεγαλύτερο ή ίσο με), `lt` (μικρότερο από), `lte` (μικρότερο ή ίσο με). Οι τιμές για μη `eq` λειτουργούς πρέπει να είναι αριθμοί.

Σενάρια Εφαρμογής

🎮

Ενοποίηση GameFi

Ορίστε τον κανόνα `level >= 10`. Όταν ο χρήστης ζητήσει, η moonpacket ελέγχει τα χαρακτηριστικά του χρήστη, αν `level: 12` τότε εγκρίνεται.

🆔

Βραβείο σύνδεσης ταυτότητας

Ορίστε τον κανόνα `kyc == true`. Η moonpacket ελέγχει την κατάσταση του χρήστη και αν επιστρέψει `kyc: true`, τότε οι ανταμοιβές διανέμονται.

🚀

Φιλτράρισμα μαύρης λίστας

Ορίστε το κανόνα `is_blacklist == false`. Αν το API επιστρέψει `is_blacklist: true`, θα απορριφθεί η παραλαβή.

Παράδειγμα Επικοινωνίας (GET Αίτημα)

Mode A 1. Ορίστε Κανόνες (Ρύθμιση)

Όταν υποβάλετε ρυθμίσεις, επιστρέψτε JSON που περιέχει χειριστές.

Αίτηση Περιεχομένου
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
Επιστροφή Αποτελέσματος (200 OK)
{
  "data": {
    "level": {
      "gt": 99
    },
    "status": {
      "eq": "active"
    },
    "is_blacklist": {
      "eq": false
    }
  }
}

Mode B 2. Κατάσταση Ερώτησης (Χρόνος Εκτέλεσης)

Όταν ο χρήστης αξιώνει, επιστρέψτε καθαρές τιμές ή συμβολοσειρές.

Αίτηση Περιεχομένου
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
Επιστροφή Αποτελέσματος (200 OK)
{
  "data": {
    "level": 100,
    "status": "active",
    "is_blacklist": false
  }
}

Ορισμός Δομής Δεδομένων (TypeScript)

types.d.ts
// 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;
  };
}

🔐 Επικύρωση Ασφαλείας

Για να διασφαλιστεί η αυθεντικότητα των αιτημάτων, το moonpacket θα συμπεριλαμβάνει μια υπογραφή στο Header. Μπορείτε να ανατρέξετε στον κώδικα στα δεξιά για επικύρωση:

Απαραίτητοι Κεφαλίδες

X-API-KEY
X-API-TIMESTAMP
X-API-NONCE
X-API-SIGNATURE

Αλγορίθμος Υπογραφής

Υπογραφή = HMAC_SHA256(μυστικό, σώμα + χρονική σήμανση + μοναδικός αριθμός)
verify.ts
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);

⚠️ Σημείωση

  • Χρόνος Λήξης: Βεβαιωθείτε ότι το API μπορεί να επιστρέψει αποτελέσματα εντός 3 δευτερολέπτων.
  • Μορφή: Παρακαλώ τηρήστε αυστηρά τη δομή JSON, διαφορετικά θα οδηγήσει σε σφάλμα ανάλυσης.

Κωδικοί Καταστάσεως

Κωδικός Κατάστασης Κατάσταση Περιγραφή
200 OK Αίτημα επιτυχές
400 Bad Request Λάθος παράμετροι αιτήματος (π.χ. λανθασμένη μορφή).
401 Unauthorized Λείπει το Authorization Header ή το Key είναι άκυρο.
403 Forbidden Περιορισμός IP ή μη εξουσιοδοτημένη πρόσβαση στους πόρους αυτούς.
404 Not Found Η αναγνωριστική Εγγραφή του χρήστη δεν υπάρχει (για την κατάσταση διερεύνησης χρηστών).
500 Server Error Εσωτερικό σφάλμα διακομιστή.

⚠️ Αποποίηση ευθυνών API τρίτων

Οι μέθοδοι ενσωμάτωσης για τρίτες πλατφόρμες που αναφέρονται σε αυτό το έγγραφο είναι μόνο για αναφορά. Οι προγραμματιστές θα πρέπει να συμβουλεύονται και να τηρούν την πιο πρόσφατη επίσημη τεκμηρίωση προγραμματιστών της πλατφόρμας.