اربط متجرك أو تطبيقك مع NitroLoad
وثائق عملية ومباشرة للوصول إلى المنتجات، إنشاء الطلبات، متابعة حالتها، وقراءة رصيد المحفظة باستخدام مفتاح API آمن.
Public API v1
NitroLoad API
X-API-KeyAccept-Language: ar | enIdempotency-Keyمصادقة واضحة
أرسل مفتاحك ضمن ترويسة X-API-Key في كل طلب.
حماية من التكرار
استخدم Idempotency-Key عند إنشاء الطلب لمنع الخصم المكرر.
عربي وإنجليزي
حدد اللغة المطلوبة عبر Accept-Language بقيمة ar أو en.
المعلومات الأساسية قبل أول طلب
واجهة التكامل منفصلة عن واجهة الموقع الداخلية. استخدم المسار العام أدناه ومفتاح API صادر من حساب موثّق.
الرابط الأساسي
https://api.nitroload.net/api/public/v1ترويسة المصادقة
X-API-Key: {prefix}.{secret}ترويسة اللغة
Accept-Language: ar | enنوع المحتوى
Content-Type: application/jsonقواعد أساسية للتكامل
- لا تضع مفتاح API داخل كود الواجهة الأمامية أو تطبيق قابل للتنزيل؛ احفظه في الخادم فقط.
- تعامل مع جميع القيم المالية كسلاسل عشرية ولا تستخدم Number في JavaScript للحسابات المالية.
- أعد المحاولة بنفس Idempotency-Key عند انقطاع الاتصال أثناء إنشاء الطلب.
- احترم Retry-After عند استلام HTTP 429 ولا تكرر الطلب مباشرة.
مفاتيح API الخاصة بحسابك
أنشئ مفاتيح منفصلة لكل متجر أو بوت، راقب آخر استخدام، وألغِ أي مفتاح لم تعد تحتاجه.
قراءة المنتجات المتاحة
ابدأ بقائمة المنتجات، ثم اقرأ المنتج مباشرة قبل الشراء للتحقق من التوفر والكميات والحقول المطلوبة.
/products/يتطلب X-API-Keyقائمة المنتجات
يعيد قائمة مرقمة بالأسعار الخاصة بحسابك، التوفر، قيم الكمية، والحقول الديناميكية.
معاملات الاستعلام
- page و page_size للتصفح
- search للبحث بالاسم أو المعرّف المخصص
- category لتصفية القسم
- availability لإظهار المتوفر أو غير المتوفر
- ordering للترتيب
أمثلة التنفيذ
مثال الاستجابة
application/json
/products/{id}/يتطلب X-API-Keyتفاصيل منتج واحد
استخدم معرّف المنتج للتحقق من أحدث بياناته قبل إرسال الطلب.
حقول يجب احترامها
- pricing.final_price هو السعر الخاص بالحساب عند توفره.
- availability يجب أن تكون true قبل السماح بالشراء.
- qty يجب أن تطابق إحدى القيم الموجودة في qty_values.
- أنشئ field_values من custom_fields وأرسل مفاتيح الحقول المطلوبة.
- delivers_codes يوضح ما إذا كان الطلب الناجح سيعيد أكواداً.
أمثلة التنفيذ
مثال الاستجابة
application/json
إنشاء طلب بأمان
يُخصم المبلغ من المحفظة فور قبول الطلب، ثم تتم معالجة التسليم بشكل غير متزامن.
لماذا Idempotency-Key مهم؟
إذا انتهت مهلة الاتصال بعد الإرسال، أعد نفس الطلب بالمفتاح نفسه. سيعيد الخادم الطلب ذاته بدلاً من إنشاء طلب جديد وخصم الرصيد مرة ثانية.
Idempotency-Key
- أنشئ المفتاح من رقم طلبك الداخلي أو UUID ثابت.
- لا تولّد مفتاحاً جديداً عند إعادة محاولة الطلب نفسه.
- احفظ uuid المعاد من NitroLoad لمتابعة الحالة.
- استجابة النجاح الأولية هي HTTP 202 وليست دليلاً على اكتمال التسليم.
/orders/يتطلب X-API-Keyإنشاء طلب جديد
أرسل product وqty وfield_values، مع Idempotency-Key فريد لكل عملية شراء منطقية.
X-API-Key
YOUR_PREFIX.YOUR_SECRETIdempotency-Key
your-order-9c09f6c4Content-Type
application/jsonأمثلة التنفيذ
مثال الاستجابة
application/json
قائمة الطلبات ومتابعة الحالة
اعرض طلبات التكامل أو تابع طلباً محدداً بواسطة uuid حتى يصل إلى حالة نهائية.
دورة حياة الطلب
pendingتم قبول الطلب ووضعه في قائمة المعالجة.
processingيجري تنفيذ الطلب لدى نظام التسليم.
successاكتمل الطلب، وقد تظهر الأكواد في delivered_codes.
failed / provider_unreachableفشل نهائي وتتم إعادة كامل المبلغ تلقائياً.
refundedأُعيدت قيمة طلب مكتمل لاحقاً إلى المحفظة.
/orders/يتطلب X-API-Keyقائمة طلباتي
يعيد طلبات مفتاح API الحالي، ويمكن تصفيتها بحسب الحالة أو المنتج أو الفترة الزمنية.
أمثلة التنفيذ
مثال الاستجابة
application/json
/orders/{uuid}/يتطلب X-API-Keyمتابعة طلب واحد
استعلم كل عدة ثوانٍ أثناء pending أو processing، ثم توقف عند الحالة النهائية.
أمثلة التنفيذ
مثال الاستجابة
application/json
قراءة الرصيد المتاح
يعيد الرصيد الحالي القابل للإنفاق بالدولار. شحن المحفظة يتم من موقع NitroLoad وليس من واجهة التكامل العامة.
/balance/يتطلب X-API-Keyرصيد المحفظة
استخدمه قبل إنشاء الطلب وبعد نجاح أو استرداد أي عملية لتحديث الرصيد في نظامك.
أمثلة التنفيذ
مثال الاستجابة
application/json
تنسيق القيم المالية
balance وunit_price وtotal_price سلاسل عشرية بدقة تصل إلى 8 منازل. استخدم مكتبة Decimal أو BigNumber في الخادم.
"125.50000000"صيغة الأخطاء والحالات المهمة
اعتمد على error.code في منطق التطبيق، وليس على نص الرسالة لأنه قابل للترجمة والتغيير.
بنية الخطأ الموحدة
application/json
أفضل ممارسات الإنتاج
- استخدم مهلة اتصال واضحة وExponential Backoff للأخطاء المؤقتة.
- لا تسجل المفتاح الكامل أو الأكواد المسلّمة في سجلات عامة.
- افصل مفتاح الإنتاج عن التطوير وعن كل متجر فرعي.
- ألغِ المفتاح فور الشك بتسريبه ودوّر الأسرار دورياً.
- راقب آخر استخدام ومعدل أخطاء 401 و429.
| HTTP | error.code | المعنى | الإجراء المقترح |
|---|---|---|---|
| 400 | validation_error | كمية أو حقول غير صحيحة | اعرض أخطاء details بجانب الحقول |
| 400 | insufficient_funds | الرصيد غير كافٍ | اطلب من العميل شحن المحفظة |
| 401 | invalid_api_key | المفتاح غير صحيح أو ملغى | راجع X-API-Key أو أنشئ مفتاحاً جديداً |
| 401 | malformed_api_key | صيغة المفتاح غير صحيحة | أرسل المفتاح الكامل prefix.secret |
| 404 | not_found | المورد غير موجود أو لا يخص الحساب | اعرض حالة غير موجود |
| 429 | throttled | تم تجاوز معدل الطلبات | انتظر حسب Retry-After ثم أعد المحاولة |
| 500 | error | خطأ غير متوقع | سجّل رقم العملية وأعد المحاولة تدريجياً |
