মূল বিষয়বস্তুতে যান
এপিআই স্পেসিফিকেশন v2.3

প্রমাণীকরণ API

একটি মানক GET কোয়েরি ইন্টারফেসের মাধ্যমে, moonpacket সক্রিয়ভাবে আপনার সার্ভার থেকে 'পুরষ্কার নীতি' এবং 'ব্যবহারকারীর গুণাবলী' পুনরুদ্ধার করে। সমস্ত যৌক্তিক বিচার moonpacket দ্বারা পরিচালিত হয়।

অন্তঃক্রিয়া লজিক

সমগ্র প্রক্রিয়াটি দুটি ধাপে বিভক্ত: 'সেটআপ ধাপ' এবং 'রানটাইম ধাপ'। moonpacket আপনার API তে GET পদ্ধতি ব্যবহার করে অনুরোধ পাঠাবে:

moonpacket ক্লায়েন্ট / সার্ভার যুক্তিসংগত মেল (স্থানীয়) নিয়ম সংরক্ষিত: Level >= 10 ব্যবহারকারীর অবস্থা: Level = 12 ✓ পুরস্কার বিতরণ করুন ⚙️ আপনার API GET /check ?user_id=... 1. সেটআপের সময়: পুনরুদ্ধার নিয়ম (GET) 2. দাবি করার সময়: স্থিতি অনুসন্ধান (GET) JSON ডেটা
← 左右滑動查看流程 →
ধাপ এক

পর্যায় এক: নিয়ম সংজ্ঞা (কনফিগারেশন)

ট্রিগার সময়: 'গহণ শর্ত সেটিং'-এ URL প্রবেশ করান এবং সাবমিট করার সময়

GET GET
RET অপারেটর (gt, eq, lt...) সহ নিয়ম সংজ্ঞা অবজেক্টে ফিরে যান
অবস্থান দুই

পর্যায় দুই: ব্যবহারকারী যাচাই (রানটাইম)

ট্রিগার সময়: যখন ব্যবহারকারী লাল প্যাকেট দাবি করার চেষ্টা করে

GET ?user_id=...
RET নির্দিষ্ট ব্যবহারকারীর প্রকৃত বৈশিষ্ট্য মান (শুদ্ধ সংখ্যা বা স্ট্রিং) ফিরিয়ে নিন

💡 সমর্থিত অপারেটর: `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
ফিরিয়ে দিন ফলাফল (200 OK)
{
  "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
ফিরিয়ে দিন ফলাফল (200 OK)
{
  "data": {
    "level": 100,
    "status": "active",
    "is_blacklist": false
  }
}

তথ্য কাঠামো সংজ্ঞা (টাইপস্ক্রিপ্ট)

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(গোপন, বডি + টাইমস্ট্যাম্প + ননস)
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 Authorizaiton Header অনুপস্থিত বা কী পরিবর্তনযোগ্য।
403 Forbidden IP সীমাবদ্ধতা বা সেই সম্পদের অ্যাক্সেস নেই।
404 Not Found ব্যবহারকারী ID বিদ্যমান নেই (ব্যবহারকারী স্থিতি অনুসন্ধান দৃশ্যের জন্য)।
500 Server Error সার্ভারের অভ্যন্তরীণ ত্রুটি।

⚠️ থার্ড-পার্টি এপিআই ডিসক্লেমার

এই ডকুমেন্টে উল্লেখিত তৃতীয়-পক্ষ প্ল্যাটফর্মের জন্য একীকরণ পদ্ধতি শুধুমাত্র রেফারেন্সের জন্য। ডেভেলপারদের প্ল্যাটফর্মের সর্বশেষ অফিসিয়াল ডেভেলপার ডোকুমেন্টেশন দেখে এবং অনুসরণ করা উচিত।