प्रामाणिकता एपीआई
एक मानकीकृत GET क्वेरी इंटरफेस के माध्यम से, moonpacket सक्रिय रूप से आपके सर्वर से 'पुरस्कार नियम' और 'उपयोगकर्ता गुण' को प्राप्त करता है। सभी तार्किक निर्णयों को moonpacket द्वारा संभाला जाता है।
इंटरैक्शन लॉजिक
पूरा प्रक्रिया दो चरणों में विभाजित है: 'सेटअप चरण' और 'रनटाइम चरण'। moonpacket आपके एपीआई को GET मेथड का उपयोग करके अनुरोध भेजेगा:
प्रेरणात्मक घटना: जब URL 'दावा शर्त सेटअप' में भरा जाता है और सबमिट किया जाता है।
⚡ GET ?user_id=...
चरण 2: उपयोगकर्ता को मान्य करें (रनटाइम)
⚡ घटनाएँ चलाना: जब उपयोगकर्ता लाल पैकेट का दावा करने का प्रयास करता है
💡 सहायता प्राप्त ऑपरेटर: `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 हेडर में एक सिग्नेचर शामिल करेगा। आप मान्यकरण के लिए दाईं ओर कोड को देख सकते हैं:
आवश्यक हेडर
हस्ताक्षर एल्गोरिदम
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 | IP प्रतिबंध या संसाधन तक अनधिकृत पहुँच। |
| 403 | Forbidden | उपयोगकर्ता आईडी अस्तित्व में नहीं है (उपयोगकर्ता स्थिति परिदृश्यों की खोज के लिए)। |
| 404 | Not Found | आंतरिक सर्वर त्रुटि। |
| 500 | Server Error | GET |
⚠️ तीसरे पक्ष के एपीआई अस्वीकरण
इस दस्तावेज़ में उल्लेखित थर्ड-पार्टी प्लेटफ़ॉर्म के लिए एकीकरण विधियाँ केवल संदर्भ के लिए हैं। डेवलपर्स को प्लेटफ़ॉर्म की नवीनतम आधिकारिक डेवलपर दस्तावेज़ का परामर्श करना और उसका पालन करना चाहिए।