المصادقة والترويسات (Authentication)
يتم مصادقة جميع الطلبات حصراً عبر الترويسات (Headers) من خادم إلى خادم (Server-to-Server). يجب تمرير المفاتيح في ترويسات كل طلب بالشكل التالي:
X-API-Key: sgc_live_sample_key_12345678
X-API-Secret: sec_sample_secret_abcdef987654321
Content-Type: application/json
Accept: application/json
مفتاح منع التكرار (Idempotency-Key)
عند إرسال طلبات إنشاء العمليات POST /orders، يجب تضمين ترويسة Idempotency-Key فريدة بطول 16 إلى 80 محرفاً. في حال انقطاع الشبكة أو حدوث خطأ، يمكنك إعادة إرسال نفس الطلب بنفس المفتاح بأمان تام دون الخوف من خصم الرصيد مرتين.
الخادم يرفض تنفيذ أي طلب مكرر يحمل نفس المفتاح ويعيد نتيجة الطلب الأصلي فوراً.
فحص سلامة الخدمة (Health Check)
يستخدم للتأكد من جاهزية سيرفر الـ API واستقباله للطلبات (لا يتطلب مصادقة).
curl -X GET "https://sgc-game.shop/health"
<?php
$res = file_get_contents('https://sgc-game.shop/health');
print_r(json_decode($res, true));
import requests
print(requests.get('https://sgc-game.shop/health').json())
const axios = require('axios');
axios.get('https://sgc-game.shop/health').then(r => console.log(r.data));
{
"success": true,
"message": "Service is operational.",
"data": {
"service": "SGC Game API",
"version": "1.0",
"status": "operational",
"currency": "USD"
},
"timestamp": 1788280000
}
رصيد الحساب (Get Balance)
يعيد هذا المسار رصيدك الحالي المتاح لعمليات الشحن بالدولار الأمريكي.
curl -X GET "https://sgc-game.shop/balance" \
-H "X-API-Key: sgc_live_sample_key_12345678" \
-H "X-API-Secret: sec_sample_secret_abcdef987654321" \
-H "Accept: application/json"
<?php
$ch = curl_init('https://sgc-game.shop/balance');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-API-Key: sgc_live_sample_key_12345678',
'X-API-Secret: sec_sample_secret_abcdef987654321',
'Accept: application/json'
]
]);
$res = curl_exec($ch);
curl_close($ch);
print_r(json_decode($res, true));
import requests
headers = {'X-API-Key': 'sgc_live_sample_key_12345678', 'X-API-Secret': 'sec_sample_secret_abcdef987654321'}
print(requests.get('https://sgc-game.shop/balance', headers=headers).json())
const axios = require('axios');
axios.get('https://sgc-game.shop/balance', {
headers: { 'X-API-Key': 'sgc_live_sample_key_12345678', 'X-API-Secret': 'sec_sample_secret_abcdef987654321' }
}).then(r => console.log(r.data));
{
"success": true,
"message": "Balance retrieved successfully",
"data": {
"balance": 150.75,
"currency": "USD"
},
"timestamp": 1788280000
}
كتالوج الألعاب (Games Catalog)
يعيد جميع الألعاب المفعلة وباقاتها مع سعر الشحن بالدولار حسب نسبة الخصم المعتمدة لحسابك.
curl -X GET "https://sgc-game.shop/games" \
-H "X-API-Key: sgc_live_sample_key_12345678" \
-H "X-API-Secret: sec_sample_secret_abcdef987654321"
{
"success": true,
"data": [
{
"id": 1,
"name": "PUBG Mobile",
"slug": "pubg-mobile",
"currency": "USD",
"packages": [
{
"id": 101,
"name": "60 UC",
"price_usd": 0.85,
"status": "available"
},
{
"id": 102,
"name": "325 UC + 25 Bonus",
"price_usd": 4.25,
"status": "available"
}
]
}
]
}
كتالوج تطبيقات اللايف (Live Apps)
جلب قائمة تطبيقات البث واللايف (Bigo Live, Poppo, TikTok وغيرها) مع الباقات والأسعار.
curl -X GET "https://sgc-game.shop/apps" \
-H "X-API-Key: sgc_live_sample_key_12345678" \
-H "X-API-Secret: sec_sample_secret_abcdef987654321"
كتالوج البطاقات الرقمية (Gift Cards)
جلب البطاقات الرقمية (Steam, PlayStation, iTunes, Google Play) بالأسعار المخصصة لحسابك.
curl -X GET "https://sgc-game.shop/cards" \
-H "X-API-Key: sgc_live_sample_key_12345678" \
-H "X-API-Secret: sec_sample_secret_abcdef987654321"
إنشاء طلب شحن (Create Order)
إنشاء وتنفيذ طلب شحن مؤتمت وفوري. الخادم يتحقق من توفر الخدمة ويخصم القيمة تلقائياً من رصيدك بالدولار.
| المعامل (Field) | النوع | الإلزامية | الوصف |
|---|---|---|---|
| type | string | مطلوب | نوع الطلب: game أو app أو card |
| currency | string | اختياري | العملة وتكون USD فقط. |
| items | array | مطلوب | مصفوفة تحتوي على عنصر واحد فقط لبيانات المنتج المطلوب. |
curl -X POST "https://sgc-game.shop/orders" \
-H "Content-Type: application/json" \
-H "X-API-Key: sgc_live_sample_key_12345678" \
-H "X-API-Secret: sec_sample_secret_abcdef987654321" \
-H "Idempotency-Key: sgc_req_1790688198_001" \
-d '{
"type": "game",
"currency": "USD",
"items": [
{
"product_id": 101,
"player_id": "5123456789",
"quantity": 1
}
]
}'
<?php
$payload = [
'type' => 'game',
'currency' => 'USD',
'items' => [
['product_id' => 101, 'player_id' => '5123456789', 'quantity' => 1]
]
];
$ch = curl_init('https://sgc-game.shop/orders');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: sgc_live_sample_key_12345678',
'X-API-Secret: sec_sample_secret_abcdef987654321',
'Idempotency-Key: ' . bin2hex(random_bytes(16))
]
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($res);
{
"success": true,
"message": "Order accepted.",
"data": {
"order_number": "API-DC20260901-102938",
"status": "processing",
"amount": 0.85,
"currency": "USD",
"balance_before": 150.75,
"balance_after": 149.90
},
"timestamp": 1788280000
}
قائمة واستعلام الطلبات
استرجاع وتصفح قائمة الطلبات السابقة مع إمكانية التصفية بحالة الطلب.
curl -X GET "https://sgc-game.shop/orders?limit=10" \
-H "X-API-Key: sgc_live_sample_key_12345678" \
-H "X-API-Secret: sec_sample_secret_abcdef987654321"
استرجاع تفاصيل وكود بطاقة طلب محدد.
curl -X GET "https://sgc-game.shop/orders/API-DC20260901-102938" \
-H "X-API-Key: sgc_live_sample_key_12345678" \
-H "X-API-Secret: sec_sample_secret_abcdef987654321"
أكواد الاستجابة والأخطاء (HTTP Status Codes)
يعتمد النظام على رموز استجابة HTTP القياسية لتوضيح حالة تنفيذ الطلب:
| الكود (Code) | الحالة (Status) | المعنى والسبب |
|---|---|---|
| 200 OK | نجاح العملية | تمت معالجة الطلب بنجاح وتم إرجاع البيانات المطلوبة. |
| 201 Created | تم إنشاء الطلب | تم قبول طلب الشحن الجديد وخصم الرصيد بنجاح. |
| 400 Bad Request | خطأ في المدخلات | الطلب يحتوي على معطيات ناقصة أو صيغة JSON غير صحيحة. |
| 401 Unauthorized | غير مصرح | مفتاح X-API-Key أو X-API-Secret غير صحيح أو غير مفعل. |
| 403 Forbidden | IP محظور | عنوان الـ IP الخاص بسيرفرك غير موجود في قائمة Allowed IPs في إعدادات حسابك. |
| 422 Unprocessable | فشل المنطق | رصيد USD غير كافٍ، أو الـ Idempotency-Key مفقود، أو المنتج غير متاح حالياً. |
| 429 Too Many Requests | تجاوز معدل الطلبات | تم تجاوز الحد المسموح من الطلبات بالثانية (Rate Limit). |
هل تحتاج مساعدة في الربط البرمجي؟ 🛠️
فريق مهندسي ومطوري SGC GAME متواجد لمساعدتك في دمج متجرك أو تطبيقك وحل أي استفسارات تقنية.