الانتقال إلى المحتوى الرئيسي

نظرة عامة

تستخدم واجهة برمجة تطبيقات مدفوعات دودي رموز الحالة القياسية HTTP ورموز الخطأ المخصصة للإشارة إلى نجاح أو فشل طلبات API. عند حدوث خطأ، تعيد واجهة برمجة التطبيقات رمز حالة HTTP مناسب واستجابة JSON تحتوي على معلومات مفصلة حول الخطأ. تتضمن كل استجابة خطأ:
  • رمز حالة HTTP يشير إلى الفئة العامة للخطأ
  • رمز خطأ محدد يحدد الطبيعة الدقيقة للخطأ
  • رسالة خطأ قابلة للقراءة البشرية تشرح ما حدث
  • تفاصيل إضافية حول الخطأ عند الاقتضاء
فهم هذه الرموز ومعانيها أمر بالغ الأهمية لـ:
  • تصحيح مشكلات التكامل
  • تنفيذ معالجة الأخطاء بشكل صحيح في تطبيقك
  • تقديم ملاحظات ذات مغزى للمستخدمين النهائيين
  • الحفاظ على نظام معالجة مدفوعات قوي
تقدم الأقسام التالية معلومات مفصلة حول رموز الحالة القياسية HTTP ورموز الخطأ المحددة التي قد تواجهها عند استخدام واجهة برمجة تطبيقات مدفوعات دودي.

رموز خطأ API القياسية

رمز الخطأحالة HTTPالوصف
400طلب غير صحيحكان الطلب مشوهاً أو يحتوي على معلمات غير صالحة
401غير مصرحفشلت المصادقة أو مفتاح API غير صالح
403محظورمفتاح API ليس لديه إذن للوصول إلى المورد المطلوب
404غير موجودالمورد المطلوب غير موجود
405طريقة غير مسموح بهاطريقة HTTP غير مدعومة لهذه النقطة النهائية
409تعارضيتعارض الطلب مع الحالة الحالية للمورد
422كيان غير قابل للمعالجةكان الطلب مشكلاً بشكل جيد ولكنه يحتوي على أخطاء دلالية
429عدد كبير جداً من الطلباتتم تجاوز حد المعدل
500خطأ في الخادم الداخليحدث خطأ غير متوقع على خوادمنا
502بوابة غير صالحةتلقت الخادم استجابة غير صالحة من خادم متقدم
503الخدمة غير متاحةالخدمة غير متاحة مؤقتاً
504انتهاء مهلة البوابةانتهت مهلة الخادم أثناء الانتظار لاستجابة متقدمة

تنسيق استجابة الخطأ

عند حدوث خطأ، تعيد واجهة برمجة التطبيقات استجابة JSON بالهيكل التالي:
{
  "code": "UNSUPPORTED_COUNTRY",
  "message": "Country AI currently not supported"
}

مرجع رموز الخطأ

  • ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT
    • السبب: تفعيل مفتاح الترخيص: حد جديد < عدد المثيلات الحالية
    • الرسالة: لا يمكن أن يكون حد التفعيل الجديد أقل من عدد المثيلات الحالية
  • ADDONS_IN_USAGE_BASED_BILLING_NOT_SUPPORTED
    • السبب: محاولة إضافة إضافات إلى اشتراكات الفوترة المعتمدة على الاستخدام
    • الرسالة: الإضافات في الاشتراكات غير مدعومة للفوترة المعتمدة على الاستخدام
  • ADDONS_NOT_ALLOWED_FOR_ON_DEMAND
    • السبب: محاولة إضافة إضافات إلى الاشتراكات عند الطلب
    • الرسالة: الإضافات غير مسموح بها للاشتراكات عند الطلب
  • BRAND_MISMATCH
    • السبب: عناصر السلة تنتمي إلى علامات تجارية مختلفة
    • الرسالة: يجب أن تنتمي جميع العناصر في سلة المنتجات إلى نفس العلامة التجارية
  • BRAND_NOT_ENABLED
    • السبب: العلامة التجارية معطلة أو غير نشطة
    • الرسالة: العلامة التجارية المقدمة غير مفعلة
  • BRAND_SUBMISSION_NOT_ENABLED
    • السبب: ميزة إعادة تقديم التحقق من العلامة التجارية غير مفعلة
    • الرسالة: إعادة تقديم التحقق من العلامة التجارية غير مفعلة
  • CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION
    • السبب: محاولة فرض رسوم على اشتراك مقرر إلغاؤه
    • الرسالة: الاشتراك مقرر إلغاؤه
  • CHECKOUT_SESSION_CONSUMED
    • السبب: تم إنشاء جلسة الخروج بالفعل دفعة
    • الرسالة: تم استهلاك جلسة الخروج بالفعل
  • DISCOUNT_CODE_ALREADY_EXISTS
    • السبب: إنشاء رمز خصم مكرر
    • الرسالة: رمز الخصم موجود بالفعل
  • DISCOUNT_CODE_EXPIRED
    • السبب: رمز الخصم بعد expires_at التاريخ
    • الرسالة: انتهت صلاحية رمز الخصم
  • DISCOUNT_CODE_USAGE_LIMIT_EXCEEDED
    • السبب: تم إعادة استخدام الخصم بعد usage_limit تم الوصول إليه
    • الرسالة: لا يمكن أن يكون حد الاستخدام أقل من times_used / تم الوصول إلى حد استخدام رمز الخصم
  • DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND
    • السبب: تم تطبيق الرمز على اشتراك عند الطلب
    • الرسالة: قسيمة الخصم غير متاحة للاشتراكات عند الطلب
  • DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT
    • السبب: تم تطبيق الرمز على منتج (منتجات) غير ذات صلة
    • الرسالة: قسيمة الخصم غير متاحة لهذا المنتج
  • DUPLICATE_LINE_ITEMS_IN_REQUEST
    • السبب: نفس item_id يظهر مرتين في items[]
    • الرسالة: تم تحديد item_ids مكررة في مصفوفة العناصر
  • DUPLICATE_METER_IDS_IN_REQUEST
    • السبب: نفس معرف العداد يظهر عدة مرات في الطلب
    • الرسالة: معرفات العداد المكررة غير مسموح بها
  • EXCHANGE_RATE_NOT_FOUND
    • السبب: لا يوجد سعر صرف لـ from → to زوج العملات
    • الرسالة: لم يتم العثور على سعر الصرف للتحويل من العملة إلى العملة
  • EXISTING_REFUND_REQUEST_PROCESSING
    • السبب: لا يزال طلب الاسترداد السابق قيد المعالجة
    • الرسالة: لا يزال طلب الاسترداد بحالة “معلق” قيد المعالجة
  • INACTIVE_LICENSE_KEY
    • السبب: حالة المفتاح ≠ ACTIVE
    • الرسالة: مفتاح الترخيص غير نشط
  • INACTIVE_SUBSCRIPTION_PLAN_CHANGE_NOT_SUPPORTED
    • السبب: تغيير الخطة على اشتراك غير نشط
    • الرسالة: تغيير الخطط غير مدعوم للاشتراكات غير النشطة
  • INSUFFICIENT_WALLET_FUNDS
    • السبب: رصيد المحفظة < مبلغ الخصم
    • الرسالة: لا توجد أموال كافية في المحفظة
  • INTEGER_CONVERSION_FAILURE
    • السبب: أي تحويل بين عدد صحيح ↔ سلسلة/عشري يفشل من جانب الخادم
    • الرسالة: فشل تحويل العدد الصحيح
  • INTERNAL_SERVER_ERROR
    • السبب: استثناءات غير ملتقطة؛ يجب عليك تسجيل التفاصيل من جانب الخادم
    • الرسالة: لا توجد رسالة عامة (500 العامة)
  • INVALID_DISCOUNT_CODE
    • السبب: الرمز غير موجود / غير قابل للتطبيق
    • الرسالة: رمز الخصم غير صالح / لا يمكن تطبيق رمز الخصم على أي منتج في السلة
  • INVALID_PERCENTAGE
    • السبب: المبلغ المئوي > 100% (أو 10,000 نقطة أساس)
    • الرسالة: لا يمكن أن يكون المبلغ المئوي أكثر من 10000 / لا يمكن أن يكون مبلغ رمز الخصم أكثر من 100%
  • INVALID_QUANTITY
    • السبب: كمية غير صالحة محددة للتسعير المعتمد على الاستخدام
    • الرسالة: يُسمح فقط بكمية واحدة في المنتجات المعتمدة على السعر القائم على الاستخدام
  • INVALID_QUERY_PARAMS
    • السبب: معلمات استعلام متعارضة / مشوهة
    • الرسالة: يجب أن تحتوي معلمات الاستعلام على إما time_frame أو (start, end) فقط
  • INVALID_REQUEST_BODY
    • السبب: JSON مشوه أو انتهاك للمخطط
    • الرسالة: جسم طلبك غير صالح. يرجى التحقق من رؤوس الطلب وكائنك.
  • INVALID_REQUEST_PARAMETERS
    • السبب: دلالات خاطئة (مثل التاريخ في الماضي)
    • الرسالة: لا يمكن تغيير next_billing_date إلى وقت ماضي
  • INVALID_SUGGESTED_PRICE
    • السبب: سعر PWYW < الحد الأدنى المسموح به
    • الرسالة: لا يمكن أن يكون السعر المقترح أقل من الحد الأدنى للسعر. في حالة الدفع كما تريد، يُعتبر السعر هو الحد الأدنى المقبول
  • INVALID_TAX_ID
    • السبب: فشل التحقق من VAT/GST/TIN
    • الرسالة: معرف الضريبة غير صالح
  • LICENSE_KEY_LIMIT_REACHED
    • السبب: التفعيلات = الحد
    • الرسالة: تم الوصول إلى حد تفعيل مفتاح الترخيص
  • LICENSE_KEY_NOT_FOUND
    • السبب: معرف المثيل أو معرف المفتاح غير صالح
    • الرسالة: لم يتم العثور على مثيل مفتاح الترخيص أو لا ينتمي إلى هذا المفتاح
  • LINE_ITEM_FULLY_REFUNDED
    • السبب: محاولة استرداد عنصر خط تم استرداده بالكامل بالفعل
    • الرسالة: تم استرداد عنصر الخط بالكامل ولا يمكن استرداده مرة أخرى.
  • LINE_ITEM_NOT_FOUND
    • السبب: معرف العنصر ليس جزءًا من الدفع المشار إليه
    • الرسالة: لم يتم العثور على عنصر الخط في الدفع
  • LINE_ITEM_PRORATED
    • السبب: تم محاولة استرداد أو تحديث عنصر خط مقسم
    • الرسالة: لا يمكن استرداد عنصر الخط لأنه مقسم
  • LINE_ITEM_REFUND_AMOUNT_TOO_HIGH
    • السبب: مبلغ الاسترداد > المبلغ المدفوع (شامل الضرائب)
    • الرسالة: مبلغ الاسترداد المطلوب لعنصر الخط بما في ذلك الضرائب هو وهو أعلى من المبلغ المدفوع
  • LINE_ITEM_REFUND_AMOUNT_TOO_LOW
    • السبب: مبلغ الاسترداد أقل من الحد الأدنى
    • الرسالة: مبلغ الاسترداد المطلوب لعنصر الخط هو وهو منخفض جداً
  • MAXIMUM_KEYS_REACHED
    • السبب: تجاوز البيانات الوصفية / الحقول المخصصة 50 زوجًا
    • الرسالة: يتجاوز 50 زوجًا من المفاتيح والقيم
  • MERCHANT_NOT_LIVE
    • السبب: لا يزال العمل في وضع الاختبار / الصندوق الرمل
    • الرسالة: التاجر ليس مباشرًا
  • METER_IS_DELETED
    • السبب: محاولة استخدام عداد محذوف
    • الرسالة: تم حذف العداد بالفعل
  • MISSING_ADDON_IDS
    • السبب: addon_id القائمة فارغة أو معرفات غير معروفة
    • الرسالة: واحد أو أكثر من معرفات المنتجات غير موجودة:
  • MISSING_METER_IDS
    • السبب: قائمة معرفات العداد فارغة أو تحتوي على معرفات غير صالحة
    • الرسالة: واحد أو أكثر من معرفات العداد غير موجودة:
  • MISSING_PRODUCT_INFORMATION
    • السبب: المنتج موجود ولكن المعلومات الإلزامية مفقودة
    • الرسالة: المنتج موجود ولكن المعلومات الإلزامية الأخرى مفقودة أو غير صالحة
  • NEGATIVE_BALANCE_ADJUSTMENT
    • السبب: محاولة جعل رصيد المحفظة سالبًا
    • الرسالة: لا يُسمح بجعل رصيد المحفظة سالبًا
  • NO_ELIGIBLE_PAYMENT_METHODS
    • السبب: بعد التصفية، لم يتبق شيء
    • الرسالة: لم يتم العثور على طرق دفع مؤهلة
  • NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS
    • السبب: محاولة تعيين انتهاء الصلاحية على مفتاح قائم على الاشتراك
    • الرسالة: لا يمكن تعيين تاريخ انتهاء الصلاحية لمفتاح الترخيص القائم على الاشتراك
  • NOT_FOUND
    • السبب: 404 العامة لأي مورد مفقود
    • الرسالة: العنصر غير موجود (أو أكثر تحديدًا)
  • ON_DEMAND_PLAN_CHANGE_NOT_SUPPORTED
    • السبب: تغيير الخطة غير مسموح به عند الطلب
    • الرسالة: تغيير الخطط غير مدعوم للاشتراكات عند الطلب
  • ON_DEMAND_SUBSCRIPTIONS_NOT_ENABLED
    • السبب: العمل لديه علم ميزة مغلق
    • الرسالة: الاشتراكات عند الطلب غير مفعلة لهذا العمل
  • ON_DEMAND_USAGE_BASED_BILLING_NOT_SUPPORTED
    • السبب: محاولة استخدام عند الطلب مع الفوترة المعتمدة على الاستخدام
    • الرسالة: الاشتراكات عند الطلب غير مدعومة للفوترة المعتمدة على الاستخدام
  • PAY_AS_YOU_WANT_AMOUNT_REQUIRED
    • السبب: السعر مفقود لمنتج PWYW
    • الرسالة: المبلغ إلزامي لمنتج الدفع كما تريد
  • PAYMENT_ALREADY_REFUNDED
    • السبب: استرداد مكرر
    • الرسالة: تم استرداد هذه المدفوعات بالفعل
  • PAYMENT_HAS_BEEN_REFUNDED
    • السبب: تم استرداد المدفوعات بالكامل
    • الرسالة: تم استرداد معرف الدفع بالكامل.
  • PAYMENT_NOT_SUCCEEDED
    • السبب: محاولة استرداد / معالجة دفعة غير ناجحة
    • الرسالة: لم تنجح المدفعة المقدمة
  • PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION
    • السبب: تم محاولة تغيير الخطة على اشتراك مقرر إلغاؤه
    • الرسالة: الاشتراك مقرر إلغاؤه
  • PREVIOUS_PAYMENT_PENDING
    • السبب: محاولة إنشاء رسوم بينما السابقة في حالة غير نهائية
    • الرسالة: لا يمكن إنشاء رسوم جديدة حيث لم تنجح المدفعة السابقة بعد
  • PRODUCT_CART_EMPTY
    • السبب: تم تقديم سلة منتجات فارغة
    • الرسالة: سلة المنتجات فارغة
  • PRODUCT_IS_DELETED
    • السبب: تم حذف المنتج بشكل ناعم
    • الرسالة: لا توجد رسائل
  • REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT
    • السبب: المبلغ الإجمالي للاسترداد أكبر من المبلغ المدفوع
    • الرسالة: المبلغ المحسوب للاسترداد أكبر من المبلغ المدفوع
  • REFUND_WINDOW_EXPIRED
    • السبب: خارج نافذة الاسترداد المسموح بها
    • الرسالة: لا يمكن بدء الاستردادات أيام بعد إنشاء الدفع. اتصل [email protected].
  • REQUEST_AMOUNT_BELOW_MINIMUM
    • السبب: المبلغ < الحد الأدنى للمنتج
    • الرسالة: لا يمكن أن يكون المبلغ أقل من الحد الأدنى المحدد للمنتج
  • SUBSCRIPTION_EXPIRED
    • السبب: الفوترة بعد ends_at
    • الرسالة: انتهت صلاحية الاشتراك ولا يمكن إنشاء رسوم جديدة
  • SUBSCRIPTION_INACTIVE
    • السبب: الحالة ≠ ACTIVE
    • الرسالة: الاشتراك غير نشط
  • SUBSCRIPTION_NOT_ON_DEMAND
    • السبب: متوقع عند الطلب ولكن حصل على فترة ثابتة
    • الرسالة: الاشتراك ليس عند الطلب بالفعل
  • SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED
    • السبب: تجاوز عدد محاولات إعادة دفع الاشتراك الحد الأقصى
    • الرسالة: تم تجاوز الحد الأقصى لمحاولات إعادة الدفع البالغ 10 محاولات لهذا الاشتراك
  • TOO_MANY_REQUESTS
    • السبب: 429 حد المعدل
    • الرسالة: لا توجد رسائل
  • TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT
    • السبب: إجمالي سلة المنتجات < الحد الأدنى للبوابة
    • الرسالة: الحد الأدنى من المبلغ مطلوب لمعالجة الدفع
  • UNABLE_TO_EDIT_PRIMARY_BRAND
    • السبب: محاولة تحديث العلامة التجارية الأساسية عبر واجهة برمجة التطبيقات العادية
    • الرسالة: لا يمكن تحديث العلامة التجارية الأساسية عبر نقطة نهاية واجهة برمجة التطبيقات هذه.
  • UNAUTHORIZED
    • السبب: لا يوجد مفتاح API أو رمز غير صالح / نطاق
    • الرسالة: أنت غير مصرح لك بأداء هذا الإجراء
  • UNSUPPORTED_ACTION
    • السبب: إجراء غير مدعوم لنوع المورد
    • الرسالة: تغيير الخطط للاشتراكات المعتمدة على الاستخدام غير مدعوم
  • UNSUPPORTED_BILLING_CURRENCY
    • السبب: الاشتراكات مقيدة بالدولار الأمريكي
    • الرسالة: لا يتم دعم عملة الفوترة غير الدولار الأمريكي للاشتراكات
  • UNSUPPORTED_COUNTRY
    • السبب: الجغرافيا غير مدعومة بعد
    • الرسالة: الدولة غير مدعومة حالياً
  • UNSUPPORTED_CURRENCY
    • السبب: عملة المنتج أو الإضافة غير صالحة
    • الرسالة: العملة غير مدعومة حالياً / يتم دعم المنتجات بالدولار الأمريكي والروبية الهندية فقط حالياً / يتم دعم الأسعار الإضافية بالدولار الأمريكي والروبية الهندية فقط / يمكن طلب الدولار الأمريكي أو الروبية الهندية فقط لعملة الفوترة / العملة غير مدعومة / عملة غير متوقعة للاشتراكات ببطاقة هندية
  • UNSUPPORTED_DISCOUNT_TYPE
    • السبب: الخصومات بمبلغ ثابت، إلخ. غير نشطة بعد
    • الرسالة: يتم دعم رموز الخصم النسبية فقط في الوقت الحالي
  • UNSUPPORTED_PAYMENT_CURRENCY
    • السبب: عملة الدفع محظورة للموصل
    • الرسالة: لا يتم دعم المعاملات بالروبية الهندية لهذه المعاملة
  • UNSUPPORTED_TAX_CATEGORY
    • السبب: سلسلة فئة الضريبة غير موجودة في التعداد
    • الرسالة: الفئة غير مدعومة حالياً
  • UNSUCCESSFUL_PAYMENT_ID
    • السبب: معرف الدفع يشير إلى دفع غير ناجح
    • الرسالة: معرف الدفع له حالة غير ناجحة.
  • ZERO_AMOUNT_PAYMENT_REFUND_NOT_ALLOWED
    • السبب: محاولة استرداد دفعة بمبلغ صفر
    • الرسالة: لا يمكن استرداد دفعة بمبلغ عملة صفر

أفضل الممارسات

  1. تعامل دائماً مع الأخطاء بشكل لطيف في تطبيقك
  2. نفذ تسجيل الأخطاء بشكل صحيح
  3. استخدم رسائل خطأ مناسبة للمستخدمين النهائيين
  4. نفذ منطق إعادة المحاولة للأخطاء العابرة
  5. اتصل بالدعم لحل المشكلات غير المحلولة

الدعم

للحصول على مساعدة إضافية بشأن رموز الخطأ أو مشكلات التكامل، يرجى الاتصال بفريق الدعم لدينا على [email protected].