मुख्य सामग्री पर जाएँ
एपीआई विशिष्टता v2.3

प्रामाणिकता एपीआई

एक मानकीकृत GET क्वेरी इंटरफेस के माध्यम से, moonpacket सक्रिय रूप से आपके सर्वर से 'पुरस्कार नियम' और 'उपयोगकर्ता गुण' को प्राप्त करता है। सभी तार्किक निर्णयों को moonpacket द्वारा संभाला जाता है।

इंटरैक्शन लॉजिक

पूरा प्रक्रिया दो चरणों में विभाजित है: 'सेटअप चरण' और 'रनटाइम चरण'। moonpacket आपके एपीआई को GET मेथड का उपयोग करके अनुरोध भेजेगा:

moonpacket क्लाइन्ट / सर्वर तर्कसंगत मेल (स्थानीय) नियम संग्रहीत: Level >= 10 उपयोगकर्ता स्थिति: Level = 12 ✓ पुरस्कार वितरित करें ⚙️ आपका एपीआई GET /check ?user_id=... 1. सेटअप के दौरान: पुनर्प्राप्ति नियम (GET) 2. क्लेम के दौरान: स्थिति पूछें (GET) JSON डेटा
← 左右滑動查看流程 →
चरण एक

प्रेरणात्मक घटना: जब URL 'दावा शर्त सेटअप' में भरा जाता है और सबमिट किया जाता है।

GET ?user_id=...

GET नियमन परिभाषा वस्तु को ऑपरेटरों (gt, eq, lt...) के साथ लौटाता है।
RET चरण 1: नियमों को परिभाषित करें (कॉन्फ़िगरेशन)
चरण दो

चरण 2: उपयोगकर्ता को मान्य करें (रनटाइम)

घटनाएँ चलाना: जब उपयोगकर्ता लाल पैकेट का दावा करने का प्रयास करता है

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 हेडर में एक सिग्नेचर शामिल करेगा। आप मान्यकरण के लिए दाईं ओर कोड को देख सकते हैं:

आवश्यक हेडर

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

हस्ताक्षर एल्गोरिदम

हस्ताक्षर = HMAC_SHA256(गुप्त, शरीर + समयचिह्न + nonce)
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 IP प्रतिबंध या संसाधन तक अनधिकृत पहुँच।
403 Forbidden उपयोगकर्ता आईडी अस्तित्व में नहीं है (उपयोगकर्ता स्थिति परिदृश्यों की खोज के लिए)।
404 Not Found आंतरिक सर्वर त्रुटि।
500 Server Error GET

⚠️ तीसरे पक्ष के एपीआई अस्वीकरण

इस दस्तावेज़ में उल्लेखित थर्ड-पार्टी प्लेटफ़ॉर्म के लिए एकीकरण विधियाँ केवल संदर्भ के लिए हैं। डेवलपर्स को प्लेटफ़ॉर्म की नवीनतम आधिकारिक डेवलपर दस्तावेज़ का परामर्श करना और उसका पालन करना चाहिए।