Skip to main content

نظرة عامة

يُوضِّح هذا الدليل بالضبط ما يجب تغييره عند الانتقال من OneClickDz Flexy API الإصدار v2 إلى v3. يعرض كل مثال الكود الحالي في v2 ويسرد التغييرات المطلوبة ويُظهر النتيجة في v3.متاح بعدة لغات: أمثلة JavaScript/Node.js وPHP وPython متضمَّنة.
إيقاف API v2: سيُوقَف API v2 في 30 أكتوبر 2026. يرجى الانتقال قبل هذا التاريخ لتجنب انقطاع الخدمة.

الجديد في v3

استجابات موحّدة

جميع الاستجابات مُغلَّفة في هيكل {(success, data, meta, requestId)}

معالجة أخطاء أفضل

أخطاء منظّمة مع أكواد ورسائل وتفاصيل لتصحيح أسهل

تصحيح أخطاء محسَّن

كل استجابة تتضمن طوابع زمنية ومعرّفات طلب فريدة

endpoints أوضح

تجميع منطقي: /mobile/* و/internet/* و/gift-cards/* و/account/*

مفاتيح API منفصلة

أنشئ مفاتيح sandbox مخصصة للاختبار مع الحفاظ على مفتاح الإنتاج

القائمة البيضاء لعناوين IP

أضف قيود IP مباشرة من صفحة الإعدادات لأمان معزّز

قائمة التحقق السريع للهجرة

1

إنشاء مفتاح API للـ sandbox (اختياري)

أنشئ مفتاح API للـ sandbox من صفحة إعدادات لوحة التحكم لاختبار v3 قبل نقل الإنتاج
2

تهيئة القائمة البيضاء لعناوين IP (اختياري)

أضف قيود IP لأمان معزّز مباشرة من الإعدادات
3

تحديث رأس المصادقة

غيِّر من authorization إلى X-Access-Token في جميع طلبات API
4

تحديث معالجة الاستجابة

ادخل إلى البيانات عبر result.data بدلاً من الوصول المباشر
5

تحديث معالجة الأخطاء

تحقق من القيمة المنطقية result.success وتعامل مع كائن result.error المنظّم
6

تحديث مسارات الـ endpoints

رسِّم مسارات v2 على المسارات الجديدة في v3 (راجع جدول المرجع الكامل أدناه)
7

تحديث منطق ترقيم الصفحات

ادخل إلى معلومات الترقيم من result.data.pagination بدلاً من المستوى الجذري

اختر استراتيجية الهجرة الخاصة بك

خبر جيد: كلا API الإصداريْن v2 وv3 يعملان في آنٍ واحد حتى إيقاف v2. مفتاح API الإنتاجي الحالي يعمل مع endpoints كلٍّ من v2 وv3، مما يمنحك مرونة في كيفية الانتقال.
تغيير عنوان URL الأساسي: يستخدم v3 عنوان URL أساسياً جديداً: - v2: https://flexy-api.oneclickdz.com/v2 - v3: https://api.oneclickdz.com/v3
اختر النهج الذي يناسب احتياجاتك:

🆕 بداية جديدة

الأنسب لـ: إعادة البناء الكاملة أو المشاريع الجديدة
  • أنشئ مفتاح sandbox للاختبار من الإعدادات
  • هيِّئ القائمة البيضاء لعناوين IP لمفتاح الإنتاج
  • اختبر كل شيء في sandbox مع v3
  • استخدم مفتاح الإنتاج عند الاستعداد
✅ صفحة بيضاء، لا كود موروث ✅ أمان معزّز مع قيود IP

🔄 هجرة تدريجية

الأنسب لـ: أنظمة الإنتاج الحالية
  • استمر في استخدام مفتاح الإنتاج الحالي لـ endpoints v2
  • أنشئ مفتاح sandbox لاختبار v3 بأمان
  • انقل الـ endpoints واحداً تلو الآخر إلى v3
  • شغِّل v2 وv3 جنباً إلى جنب بنفس مفتاح الإنتاج
✅ صفر توقف، مخاطر أقل ✅ انتقل بالسرعة التي تناسبك
موصى به: معظم الفرق تختار الهجرة التدريجية لتقليل المخاطر. يمكنك تحديث الـ endpoints الحرجة أولاً مع إبقاء البقية على v2.

هجرة ذكية: ابدأ ببطاقات الهدايا

نصيحة احترافية: إذا كنت مهتماً ببطاقات الهدايا، ادمجها على v3 أولاً! لا تحتاج إلى نقل شحنات الجوال والإنترنت الحالية لتبدأ استخدام بطاقات الهدايا على v3. هذه طريقة منخفضة المخاطر لاختبار v3 مع إبقاء عملياتك الحرجة على v2. استخدم مفتاح sandbox للاختبار، ثم انتقل للإنتاج عند الاستعداد.
ترتيب الهجرة المقترح:
  1. المرحلة 1: دمج بطاقات الهدايا على v3 (إذا كان ذلك مناسباً)
    • أنشئ مفتاح sandbox للاختبار
    • استخدم endpoints /v3/gift-cards/* في sandbox
    • اختبر بدقة، ثم استخدم مفتاح الإنتاج
    • أبقِ الجوال/الإنترنت على v2
  2. المرحلة 2: نقل endpoints الحساب والتحقق
    • /v3/validate
    • /v3/account/balance
    • /v3/account/transactions
  3. المرحلة 3: نقل شحنات الجوال تدريجياً
    • اختبر بعمليات منخفضة الحجم أولاً
    • راقب المشكلات
    • وسِّع نطاق الهجرة تدريجياً
  4. المرحلة 4: نقل شحنات الإنترنت
    • أكمل قبل الموعد النهائي للإيقاف
هذا النهج يتيح لك الانتقال بالسرعة التي تناسبك حتى تاريخ الإيقاف مع الاستفادة من ميزات v3 الجديدة.

التغييرات الثلاثة الرئيسية

1. رأس المصادقة

ما يجب تغييره: أعِد تسمية الرأس من authorization إلى X-Access-Token
إدارة المفاتيح الجديدة: يتيح لك v3 إنشاء مفتاح API sandbox منفصل للاختبار من إعدادات لوحة التحكم. يمكنك أيضاً إضافة قيود القائمة البيضاء لعناوين IP لأمان معزّز. مفتاح API الإنتاجي الحالي يعمل مع endpoints كلٍّ من v2 وv3.
Changes needed:
  • ❌ Remove: authorization: "YOUR_API_KEY"
  • ✅ Add: X-Access-Token: "YOUR_API_KEY"
  • ✅ Update: Base URL to https://api.oneclickdz.com/v3
The authentication mechanism remains the same - only the header name changes. Your existing API key works with both v2 and v3.
التغييرات المطلوبة:
  • ❌ احذف: authorization: "YOUR_API_KEY"
  • ✅ أضف: X-Access-Token: "YOUR_API_KEY"
  • ✅ حدِّث: عنوان URL الأساسي إلى https://api.oneclickdz.com/v3
آلية المصادقة تبقى كما هي - فقط اسم الرأس يتغير. مفتاح API الحالي يعمل مع v2 وv3.

2. Response Structure

What to change: All responses are now wrapped in a standard structure

3. Error Handling

What to change: Errors are now structured objects with codes
Changes needed:
  • ❌ Remove: Checking result.error string
  • ✅ Add: Check result.success === false
  • ✅ Add: Access result.error.code and result.error.message
  • ✅ Add: Handle different error codes with switch/if statements
  • ✅ Add: Log result.requestId for support tickets
Pro Tip: Always save the requestId when logging errors. Our support team needs this to trace issues in our system.

Step-by-Step Migration Examples

Example 1: Get Mobile Plans

Step 1 - Your current v2 code:
Step 2 - What to change:
  1. Change base URL: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. Change endpoint: /v2/plans/listAll/v3/mobile/plans
  3. Change header: authorizationX-Access-Token
  4. Add success check: if (result.success)
  5. Access through data: data.dymanicPlansresult.data.dynamicPlans (typo fixed!)
MUST Fix: v3 fixes the typo in “dymanicPlans” to “dynamicPlans”. Update your code to use the correct spelling.
Step 3 - Your new v3 code:

Example 2: Send Mobile Top-Up

Step 1 - Your current v2 code:
Step 2 - What to change:
  1. Change base URL: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. Change endpoint: /v2/topup/sendTopup/v3/mobile/send
  3. Change header: authorizationX-Access-Token
  4. Add success check: if (result.success)
  5. Access through data: data.topupIdresult.data.topupId
  6. Add comprehensive error handling
Important: Always handle errors when sending top-ups. Network issues, insufficient balance, or invalid data can cause failures. Save the requestId for tracking.
Step 3 - Your new v3 code:

Example 3: Check Top-Up Status

Step 1 - Your current v2 code:
Step 2 - What to change:
  1. Change base URL: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. Change endpoint: /v2/topup/checkStatus/REF/:ref/v3/mobile/check-ref/:ref
  3. Change header: authorizationX-Access-Token
  4. Add success check: if (result.success)
  5. Access directly: data.topup.statusresult.data.status (no more nested topup object)
  6. Handle new refund information fields
New Feature: v3 includes detailed refund information with suggested alternative offers when a top-up is refunded.
Step 3 - Your new v3 code:

Example 4: List Transactions with Pagination

Step 1 - Your current v2 code:
Step 2 - What to change:
  1. Change base URL: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. Change version: /v2/account/transactions/v3/account/transactions
  3. Change header: authorizationX-Access-Token
  4. Add success check: if (result.success)
  5. Access items: data.transactionsresult.data.items
  6. Access pagination: Root level fields → result.data.pagination object
Breaking Change: Pagination structure has moved from root level to data.pagination. Update all list/pagination logic.
Step 3 - Your new v3 code:

Example 5: Check Internet Products

Step 1 - Your current v2 code:
Step 2 - What to change:
  1. Change base URL: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. Change endpoint: /v2/internet/checkCards/:type/v3/internet/products?type=:type
  3. Change from path param to query param: /ADSL?type=ADSL
  4. Change header: authorizationX-Access-Token
  5. Add success check: if (result.success)
  6. Access array: Direct array → result.data.products
API Design: v3 uses query parameters instead of path parameters for type selection, making it easier to add filters in the future.
Step 3 - Your new v3 code:

Migrate Your API Client

Here’s how to update your API client wrapper:Step 1 - Your current v2 client:
Step 2 - What to change:
  1. Change base URL: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. Change header: authorizationX-Access-Token
  3. Add response wrapper handling in request() method
  4. Check result.success and handle errors
  5. Update all endpoint paths to v3
  6. Throw structured errors with codes and request IDs
Best Practice: Centralize error handling in your API client. This makes it easier to add logging, monitoring, and user notifications.
Step 3 - Your new v3 client:

Complete Endpoint Reference


Error Code Reference

Common v2 errors and their v3 equivalents:How to handle v3 errors:

Critical Deadline: After October 30, 2026, all v2 API requests will fail. Plan your migration accordingly to avoid service disruption.

Common Migration Issues & Solutions

Problem: Changed endpoint but forgot to update header name.Solution: Replace authorization with X-Access-Token in ALL requests.
Problem: Trying to access data directly instead of through result.data. Solution: Always access response data through the data property.
❌ Wrong const balance = result.balance; ✅ Correct const
Problem: Using old v2 endpoint paths.Solution: Update all paths according to the reference table above.
التغييرات المطلوبة:
  • ❌ احذف: الوصول المباشر إلى data.balance
  • ✅ أضف: تحقق من result.success أولاً
  • ✅ أضف: الوصول عبر result.data.balance
  • ✅ إضافي: استخدم result.requestId لأغراض التصحيح
  • ✅ إضافي: استخدم result.meta.timestamp لمعلومات التوقيت
تغيير جوهري: في v3، يجب دائماً التحقق من القيمة المنطقية success قبل الوصول إلى البيانات. سيُسبِّب الوصول المباشر للحقول أخطاءً إذا فشل الطلب.

3. معالجة الأخطاء

ما يجب تغييره: الأخطاء الآن عبارة عن كائنات منظّمة مع أكواد
التغييرات المطلوبة:
  • ❌ احذف: التحقق من سلسلة result.error
  • ✅ أضف: تحقق من result.success === false
  • ✅ أضف: ادخل إلى result.error.code وresult.error.message
  • ✅ أضف: تعامل مع أكواد الخطأ المختلفة باستخدام switch/if
  • ✅ أضف: سجِّل result.requestId لتذاكر الدعم
نصيحة احترافية: احفظ دائماً requestId عند تسجيل الأخطاء. يحتاج فريق الدعم لدينا إليه لتتبع المشكلات في نظامنا.

أمثلة الهجرة خطوة بخطوة

المثال 1: الحصول على الخطط المتنقلة

الخطوة 1 - كودك الحالي في v2:
الخطوة 2 - ما الذي يجب تغييره:
  1. غيّر عنوان URL الأساسي: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. غيّر الـ endpoint: /v2/plans/listAll/v3/mobile/plans
  3. غيّر الرأس: authorizationX-Access-Token
  4. أضف فحص النجاح: if (result.success)
  5. الوصول عبر data: data.dymanicPlansresult.data.dynamicPlans (تم تصحيح الخطأ المطبعي!)
إلزامي: يصحح v3 الخطأ المطبعي في “dymanicPlans” إلى “dynamicPlans”. قم بتحديث كودك لاستخدام الإملاء الصحيح.
الخطوة 3 - كودك الجديد في v3:

المثال 2: إرسال شحن متنقل

الخطوة 1 - كودك الحالي في v2:
الخطوة 2 - ما الذي يجب تغييره:
  1. غيّر عنوان URL الأساسي: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. غيّر الـ endpoint: /v2/topup/sendTopup/v3/mobile/send
  3. غيّر الرأس: authorizationX-Access-Token
  4. أضف فحص النجاح: if (result.success)
  5. الوصول عبر data: data.topupIdresult.data.topupId
  6. أضف معالجة شاملة للأخطاء
مهم: تعامل دائماً مع الأخطاء عند إرسال الشحن. مشاكل الشبكة أو الرصيد غير الكافي أو البيانات غير الصالحة قد تسبب الفشل. احفظ requestId للتتبع.
الخطوة 3 - كودك الجديد في v3:

المثال 3: فحص حالة الشحن

الخطوة 1 - كودك الحالي في v2:
الخطوة 2 - ما الذي يجب تغييره:
  1. غيّر عنوان URL الأساسي: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. غيّر الـ endpoint: /v2/topup/checkStatus/REF/:ref/v3/mobile/check-ref/:ref
  3. غيّر الرأس: authorizationX-Access-Token
  4. أضف فحص النجاح: if (result.success)
  5. الوصول المباشر: data.topup.statusresult.data.status (لا مزيد من كائن topup المتداخل)
  6. تعامل مع حقول معلومات الاسترداد الجديدة
ميزة جديدة: يتضمن v3 معلومات مفصلة عن الاسترداد مع عروض بديلة مقترحة عند استرداد الشحن.
الخطوة 3 - كودك الجديد في v3:

المثال 4: قائمة المعاملات مع الترقيم

الخطوة 1 - كودك الحالي في v2:
الخطوة 2 - ما الذي يجب تغييره:
  1. غيّر عنوان URL الأساسي: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. غيّر الإصدار: /v2/account/transactions/v3/account/transactions
  3. غيّر الرأس: authorizationX-Access-Token
  4. أضف فحص النجاح: if (result.success)
  5. الوصول للعناصر: data.transactionsresult.data.items
  6. الوصول للترقيم: الحقول على مستوى الجذر ← كائن result.data.pagination
تغيير جذري: انتقلت بنية الترقيم من المستوى الجذري إلى data.pagination. قم بتحديث جميع منطق القوائم/الترقيم.
الخطوة 3 - كودك الجديد في v3:

المثال 5: فحص منتجات الإنترنت

الخطوة 1 - كودك الحالي في v2:
الخطوة 2 - ما الذي يجب تغييره:
  1. غيّر عنوان URL الأساسي: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. غيّر الـ endpoint: /v2/internet/checkCards/:type/v3/internet/products?type=:type
  3. من معامل المسار إلى معامل الاستعلام: /ADSL?type=ADSL
  4. غيّر الرأس: authorizationX-Access-Token
  5. أضف فحص النجاح: if (result.success)
  6. الوصول للمصفوفة: مصفوفة مباشرة ← result.data.products
تصميم API: يستخدم v3 معاملات الاستعلام بدلاً من معاملات المسار لاختيار النوع، مما يسهّل إضافة الفلاتر مستقبلاً.
الخطوة 3 - كودك الجديد في v3:

هجرة عميل API الخاص بك

إليك كيفية تحديث wrapper عميل API الخاص بك:الخطوة 1 - عميلك الحالي في v2:
الخطوة 2 - ما الذي يجب تغييره:
  1. غيّر عنوان URL الأساسي: https://flexy-api.oneclickdz.comhttps://api.oneclickdz.com
  2. غيّر الرأس: authorizationX-Access-Token
  3. أضف معالجة غلاف الاستجابة في الـ method request()
  4. تحقق من result.success وتعامل مع الأخطاء
  5. حدّث جميع مسارات الـ endpoint إلى v3
  6. ألقِ أخطاء منظّمة مع أكواد ومعرّفات الطلبات
أفضل الممارسات: مركِّز معالجة الأخطاء في عميل API الخاص بك. هذا يسهّل إضافة التسجيل والمراقبة وإشعارات المستخدم.
الخطوة 3 - عميلك الجديد في v3:

مرجع أكواد الخطأ

أخطاء v2 الشائعة ومكافئاتها في v3:كيفية التعامل مع أخطاء v3:

موعد نهائي حرج: بعد 30 أكتوبر 2026، ستفشل جميع طلبات API v2. خطّط لهجرتك وفقاً لذلك لتجنب انقطاع الخدمة.

مشاكل الهجرة الشائعة وحلولها

المشكلة: تم تغيير الـ endpoint لكن لم يتم تحديث اسم الرأس.الحل: استبدل authorization بـ X-Access-Token في جميع الطلبات.
المشكلة: محاولة الوصول للبيانات مباشرة بدون المرور بـ result.data.الحل: الوصول دائماً لبيانات الاستجابة عبر خاصية data.
المشكلة: البحث عن حقول الترقيم على المستوى الجذري.الحل: الوصول للترقيم عبر data.pagination.
المشكلة: التحقق من تنسيق الخطأ القديم.الحل: تحقق من البوليان success وادخل إلى كائن الخطأ المنظّم.
المشكلة: استخدام مسارات الـ endpoint القديمة في v2.الحل: حدّث جميع المسارات وفقاً لجدول المرجع أعلاه.


مرجع الـ endpoints الكامل


قائمة التحقق من الاختبار

قبل النشر في الإنتاج، تحقق من:
  • جميع رؤوس المصادقة غُيِّرت إلى X-Access-Token
  • جميع مسارات الـ endpoints حُدِّثت إلى v3
  • التحقق من النجاح/الخطأ مُطبَّق في كل مكان
  • البيانات يمكن الوصول إليها عبر result.data
  • الترقيم يمكن الوصول إليه عبر result.data.pagination
  • أكواد الخطأ مُعالَجة مع result.error.code
  • معرِّفات الطلبات مسجَّلة لأغراض التصحيح
  • تم الاختبار في وضع sandbox أولاً
  • جميع الوظائف الموجودة لا تزال تعمل
  • سيناريوهات الخطأ مختبَرة (رصيد غير كافٍ، بيانات غير صالحة، إلخ)

تحتاج مساعدة؟

وثائق API v3

مرجع v3 الكامل والأمثلة

دليل معالجة الأخطاء

أفضل الممارسات لمعالجة الأخطاء

إعدادات لوحة التحكم

الوصول: سجِّل الدخول إلى لوحة التحكمإنشاء مفتاح sandbox: أنشئ مفتاحاً للاختبار الآمنالقائمة البيضاء لعناوين IP: أضف قيود IP لأمان معزّز

الدعم

البريد الإلكتروني: [email protected]مهم: أدرج دائماً معرِّف الطلب عند الإبلاغ عن مشكلات
دعم الهجرة: فريقنا هنا للمساعدة! راسلنا بالبريد الإلكتروني مع “دعم هجرة API v3” في سطر الموضوع، وأدرج: - تفاصيل تطبيقك الحالي - الأخطاء المحددة (مع معرِّفات الطلبات) - نماذج الكود التي تُظهر المشكلة