واجهة برمجة تطبيقات شحن الألعاب والتطبيقات
واجهة برمجية موحدة وقياسية (Standard API) لاسترجاع كتالوج كافة المنتجات الرقمية وتنفيذ عمليات الشحن المباشر لمختلف الألعاب والتطبيقات عبر SofizPay.
آلية وسير العمل الموحد (Integration Workflow)
تعتمد عملية شحن أي لعبة أو تطبيق رقمي على مسار عمل قياسي موحد من خطوتين:
استعلام كتالوج المنتجات والأسعار
استدعاء نقطة النهاية get_products لجلب قائمة كافة المنتجات والألعاب المتاحة، مع تفاصيل كود المشغل (operator) والباقات والأسعار المحدثة بالدينار الجزائري.
تنفيذ عملية الشحن الموحدة
استدعاء نقطة النهاية operation_post وتمرير كود المشغل ومعرف الحساب (Player/Account ID) والعرض المطلوب لإتمام الشحن فورياً لأي منتج.
1. استعلام وجلب المنتجات والأسعار
استرجع قائمة كافة المنتجات الرقمية والتطبيقات المتاحة مع أسعارها الدقيقة وأكواد المشغلين
https://sofizpay.com/services/get_products/تقوم هذه النقطة بإرجاع المنتجات المتاحة مع تصفيتها حسب التوفر وإعادة معلومات مبسطة فقط (الاسم والسعر)
معاملات الطلب
Content-Type: application/json
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
encrypted_sk | string | نعم | المفتاح السري المشفر أو النصي لـ SofizPay. يمكن أن يكون مفتاحاً نصياً يبدأ بـ "S" (56 حرفاً) أو مفتاحاً مشفراً بـ RSA بتشفير base64 |
search | string | لا | كلمة بحث اختيارية لتصفية المنتجات حسب الاسم |
مثال على الطلب
مثال مع كلمة البحث
curl -X GET "https://sofizpay.com/services/get_products/" \
-H "Content-Type: application/json" \
-d '{
"encrypted_sk": "SBXJ...",
"search": "PUBG"
}'مثال بدون كلمة البحث (جميع المنتجات)
curl -X GET "https://sofizpay.com/services/get_products/" \
-H "Content-Type: application/json" \
-d '{
"encrypted_sk": "SBXJ..."
}'استجابة ناجحة (200)
يتم إرجاع قائمة المنتجات المتاحة مع أسمائها وأسعارها بالدينار الجزائري
1{
2 "status": "success",
3 "count": 8,
4 "products": [
5 {
6 "name": "PUBG 1320 UC",
7 "price": "4743.24"
8 },
9 {
10 "name": "PUBG 1800 UC",
11 "price": "5929.05"
12 },
13 {
14 "name": "PUBG 325 UC",
15 "price": "1185.81"
16 },
17 {
18 "name": "Free Fire 1080 Diamonds",
19 "price": "2150.00"
20 }
21 ]
22}حقول الاستجابة
| الحقل | النوع | الوصف |
|---|---|---|
status | string | حالة الاستجابة: "success" أو "error" |
count | integer | إجمالي عدد المنتجات المتاحة المُعادة |
products | array | مصفوفة كائنات المنتجات |
products[].name | string | اسم المنتج |
products[].price | string | سعر المنتج بالدينار الجزائري |
استجابات الأخطاء
400 - JSON غير صالح
{
"status": "error",
"message": "Invalid JSON"
}400 - encrypted_sk مطلوب
{
"status": "error",
"message": "encrypted_sk is required"
}400 - مفتاح سري غير صالح
{
"status": "error",
"message": "Invalid secret key"
}400 - صيغة المفتاح السري غير صحيحة
{
"status": "error",
"message": "Invalid secret key format"
}500 - خطأ في الواجهة الخارجية
{
"status": "error",
"message": "Error fetching products: [error details]"
}الميزات
ملاحظات تقنية هامة:
- تُعاد جميع المنتجات المتاحة إذا لم يتم تحديد كلمة بحث
- تُعاد الأسعار كنصوص لتجنب مشاكل دقة الأرقام العشرية
- يتم تضمين المنتجات ذات is_available: true فقط
- النقطة معفاة من CSRF لسهولة تكامل العملاء
2. تنفيذ عملية شحن الألعاب والتطبيقات (Standard Endpoint)
نقطة نهاية موحدة وقياسية لمعالجة طلبات شحن كافة الألعاب والخدمات والتطبيقات الرقمية
https://sofizpay.com/services/operation_postتتعامل هذه النقطة الموحدة مع عمليات الشحن لكافة الألعاب والتطبيقات الرقمية المتوفرة في الكتالوج
واجهة قياسية موحدة لكافة المنتجات
تعمل نقطة النهاية هذه بشكل موحد وقياسي (Standard) مع جميع المنتجات والألعاب والتطبيقات المتوفرة في كتالوج SofizPay. لا تقتصر على منتج معين، بل تستقبل كود المشغل (operator) ومعرف الحساب المستهدف (playerId) المناسب لكل خدمة.
هيكل الطلب القياسي (Standard Request)
الهيكل العام الموحد المستخدم مع أي لعبة، تطبيق، أو بطاقة رقمية:
curl --location 'https://sofizpay.com/services/operation_post' \
--header 'Content-Type: application/json' \
--data '{
"encrypted_sk": "YOUR_ENCRYPTED_SECRET_KEY OR PURE_SECRET_KEY",
"operator": "PRODUCT_OPERATOR_CODE",
"playerId": "TARGET_USER_OR_PLAYER_ID",
"amount": AMOUNT_IN_DZD,
"offer": "PACKAGE_OFFER_CODE"
}'معاملات الطلب القياسية (Request Parameters)
Content-Type: application/json
| المعامل | النوع | الوصف القياسي |
|---|---|---|
encrypted_sk | string | المفتاح السري المشفر (أو النصي) المعتمد للمصادقة |
operator | string | كود المنتج أو المشغل من كتالوج المنتجات (مثل: pubg, freefire وغيرها من المنتجات) |
playerId | string | معرف اللاعب أو الحساب المستهدف (Player ID / User ID / Account ID) |
amount | number | مبلغ أو سعر الشحن بالدينار الجزائري (DZD) المطابق للباقة المحددة |
offer | string | رمز الباقة أو العرض المختار من كتالوج المنتجات |
تحديد معرف الحساب (playerId) بحسب نوع المنتج
ألعاب الموبايل والكمبيوتر: معرّف اللاعب داخل اللعبة (Player ID / UID).
التطبيقات والمنصات الرقمية: رقم الحساب أو اسم المستخدم أو معرف البروفايل (Account ID / Username).
البطاقات والخدمات الرقمية: معرف الحساب المستفيد أو رقم الهاتف المرتبط بالخدمة.
استجابة ناجحة قياسية (200 OK)
{
"status": "success",
"message": "Operation completed successfully",
"operation_id": "OP_894321789",
"transaction_id": "TX_448921102",
"transaction_status": "confirmed"
}ملاحظة هامة: تتم معالجة العملية وتأكيدها فورياً، وتُضاف العملة أو الخدمة مباشرة إلى حساب المستخدم في التطبيق أو اللعبة المحددة.