প্রমাণীকরণ API
একটি মানক GET কোয়েরি ইন্টারফেসের মাধ্যমে, moonpacket সক্রিয়ভাবে আপনার সার্ভার থেকে 'পুরষ্কার নীতি' এবং 'ব্যবহারকারীর গুণাবলী' পুনরুদ্ধার করে। সমস্ত যৌক্তিক বিচার moonpacket দ্বারা পরিচালিত হয়।
অন্তঃক্রিয়া লজিক
সমগ্র প্রক্রিয়াটি দুটি ধাপে বিভক্ত: 'সেটআপ ধাপ' এবং 'রানটাইম ধাপ'। moonpacket আপনার API তে GET পদ্ধতি ব্যবহার করে অনুরোধ পাঠাবে:
পর্যায় এক: নিয়ম সংজ্ঞা (কনফিগারেশন)
⚡ ট্রিগার সময়: 'গহণ শর্ত সেটিং'-এ URL প্রবেশ করান এবং সাবমিট করার সময়
পর্যায় দুই: ব্যবহারকারী যাচাই (রানটাইম)
⚡ ট্রিগার সময়: যখন ব্যবহারকারী লাল প্যাকেট দাবি করার চেষ্টা করে
💡 সমর্থিত অপারেটর: `eq` (সমান, স্ট্রিং/সংখ্যাকে সমর্থন করে), `gt` (বড়), `gte` (বড় বা সমান), `lt` (ছোট), `lte` (ছোট বা সমান)। গুণাফল জন্য non-`eq` অপারেটরের মান সংখ্যা হতে হবে।
অ্যাপ্লিকেশন পরিস্থিতি
GameFi ইন্টিগ্রেশন
নিয়ম সংজ্ঞায়িত করুন `level >= 10`। যখন ব্যবহারকারী দাবি করে, moonpacket ব্যবহারকারীর বৈশিষ্ট্যগুলি পরীক্ষা করে, যদি `level: 12` হয় তবে এটি অনুমোদিত।
পরিচয় বন্ধন পুরস্কার
রুল `kyc == true` সংজ্ঞায়িত করুন। moonpacket ব্যবহারকারীর স্থিতি পরীক্ষা করে, এবং এটি যদি `kyc: true` ফিরিয়ে আনে, তাহলে পুরস্কার বিতরণ করা হয়।
কালো তালিকা ফিল্টারিং
নিয়ম সংজ্ঞা `is_blacklist == false`। যদি API ফেরত দেয় `is_blacklist: true` তবে দাবি প্রত্যাখ্যান করুন।
যোগাযোগ উদাহরণ (GET অনুরোধ)
Mode A ১. নিয়ম নির্ধারণ করুন (সেটআপ)
সেটিংস জমা দেওয়ার সময় অপারেটরগুলি ধারণকারী 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 ২. প্রশ্নের অবস্থা (রানটাইম)
যখন ব্যবহারকারী দাবি করে, শুদ্ধ মান বা স্ট্রিং ফেরত দিন।
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
}
} তথ্য কাঠামো সংজ্ঞা (টাইপস্ক্রিপ্ট)
// 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 | Authorizaiton Header অনুপস্থিত বা কী পরিবর্তনযোগ্য। |
| 403 | Forbidden | IP সীমাবদ্ধতা বা সেই সম্পদের অ্যাক্সেস নেই। |
| 404 | Not Found | ব্যবহারকারী ID বিদ্যমান নেই (ব্যবহারকারী স্থিতি অনুসন্ধান দৃশ্যের জন্য)। |
| 500 | Server Error | সার্ভারের অভ্যন্তরীণ ত্রুটি। |
⚠️ থার্ড-পার্টি এপিআই ডিসক্লেমার
এই ডকুমেন্টে উল্লেখিত তৃতীয়-পক্ষ প্ল্যাটফর্মের জন্য একীকরণ পদ্ধতি শুধুমাত্র রেফারেন্সের জন্য। ডেভেলপারদের প্ল্যাটফর্মের সর্বশেষ অফিসিয়াল ডেভেলপার ডোকুমেন্টেশন দেখে এবং অনুসরণ করা উচিত।