API Ταυτοποίησης
Μέσω ενός τυποποιημένου διεπαφής GET query, το moonpacket ανακτά ενεργά τους 'κανόνες επιβράβευσης' και τα 'χαρακτηριστικά χρήστη' από τον διακομιστή σας. Όλες οι λογικές κρίσεις διαχειρίζεται το moonpacket.
Λογική Αλληλεπίδρασης
Η ολόκληρη διαδικασία είναι διαιρεμένη σε δύο φάσεις: 'Φάση Ρύθμισης' και 'Φάση Εκτέλεσης'. Η moonpacket θα στείλει αιτήματα στο API σας χρησιμοποιώντας τη μέθοδο GET:
Φάση 1: Ορισμός Κανόνων (Διαμόρφωση)
⚡ Σημείο εκκίνησης: Όταν συμπληρώσετε το URL και υποβάλετε στις ρυθμίσεις όρων παραλαβής
Φάση Δύο: Επικύρωση του χρήστη (Runtime)
⚡ Σημείο εκκίνησης: Ο χρήστης προσπαθεί να παραλάβει το Red Packet
💡 Υποστηριζόμενοι Λειτουργοί: `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 {
"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 {
"data": {
"level": 100,
"status": "active",
"is_blacklist": false
}
} Ορισμός Δομής Δεδομένων (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;
};
} 🔐 Επικύρωση Ασφαλείας
Για να διασφαλιστεί η αυθεντικότητα των αιτημάτων, το moonpacket θα συμπεριλαμβάνει μια υπογραφή στο Header. Μπορείτε να ανατρέξετε στον κώδικα στα δεξιά για επικύρωση:
Απαραίτητοι Κεφαλίδες
Αλγορίθμος Υπογραφής
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 τρίτων
Οι μέθοδοι ενσωμάτωσης για τρίτες πλατφόρμες που αναφέρονται σε αυτό το έγγραφο είναι μόνο για αναφορά. Οι προγραμματιστές θα πρέπει να συμβουλεύονται και να τηρούν την πιο πρόσφατη επίσημη τεκμηρίωση προγραμματιστών της πλατφόρμας.