تصدیق API
ایک معیاری GET سوالات کے انٹرفیس کے ذریعے، moonpacket آپ کے سرور سے 'انعام کے قواعد' اور 'صارف کی خصوصیات' کو فعال طور پر حاصل کرتا ہے۔ تمام منطقی فیصلے moonpacket کے ذریعے کیے جاتے ہیں۔
تفاعلی منطق
پورا عمل دو مراحل میں تقسیم کیا گیا ہے: 'سیٹ اپ مرحلہ' اور 'رَن ٹائم مرحلہ'۔ moonpacket آپ کے API کو GET طریقہ استعمال کرتے ہوئے درخواستیں بھیجے گا:
مرحلہ 1: اصولوں کی وضاحت کریں (ترتیب)
⚡ کام کرنے والا واقعہ: جب URL 'دعویٰ کی شرائط کی ترتیب' میں بھرا جاتا ہے اور جمع کرایا جاتا ہے
مرحلہ 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 | اجازت دینے والا ہیڈر غائب ہے یا کلید غیر درست ہے۔ |
| 403 | Forbidden | IP کی پابندی یا وسائل تک غیر مجاز رسائی۔ |
| 404 | Not Found | صارف کی شناخت موجود نہیں (صارف کی حیثیت کے منظرناموں کے لیے)۔ |
| 500 | Server Error | اندرونی سرور کی خرابی۔ |
⚠️ تیسرے فریق کی API کی تذکرہ
اس دستاویز میں ذکر کردہ تیسرے فریق کے پلیٹ فارم کے لیے انضمام کے طریقے صرف حوالہ کے لیے ہیں۔ ترقی دہندگان کو پلیٹ فارم کی تازہ ترین سرکاری ترقی دہندہ دستاویزات سے مشورہ کرنا اور ان پر عمل کرنا چاہیے۔