الأخطاء

تستخدم HIOBuy شكلين للأخطاء: أخطاء البروتوكول (HTTP غير 2xx مع كائن error) ونتائج الأعمال (HTTP 200 مع success: false في بعض مسارات الطلبات).

أخطاء البروتوكول (HTTP 4xx / 5xx) {#protocol-errors}

{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "product_id, url, mi_id, or tao_password is required.",
    "request_id": "req_abc123",
    "category": "VALIDATION_ERROR"
  }
}
الحقلالوصف
error.codeenum قابل للقراءة آليا — استخدمه لتفريع المنطق
error.messageشرح قابل للقراءة البشرية (بالإنجليزية)
error.request_idمطابق لترويسة الاستجابة x-request-id
error.categoryتجميع عام: AUTH_ERROR, RATE_LIMIT_ERROR, VALIDATION_ERROR, CHANNEL_ERROR, INTERNAL_ERROR
error.upstreamملخص اختياري لخطأ المزود عند CHANNEL_UPSTREAM_ERROR (بعد التنقية)

مرجع أكواد الأخطاء {#error-codes}

الفهرس الرسمي القابل للقراءة آليا هو data/errors.catalog.json. ملخص:

CodeHTTPCategoryمتى يحدث
INVALID_API_KEY401AUTH_ERRORرمز Bearer غير صالح أو مفقود
CHANNEL_NOT_AUTHORIZED401AUTH_ERRORالقناة غير مفوضة لهذا التطبيق
INSUFFICIENT_SCOPE403AUTH_ERRORالعملية غير مسموحة لهذا المفتاح/التطبيق
FULFILLMENT_MODE_NOT_SUPPORTED403AUTH_ERRORاستخدام /v1/fulfillment/* على تطبيق self-fulfillment
VALIDATION_ERROR400VALIDATION_ERRORحقول جسم مفقودة/غير صالحة، أو currency غير مدعومة
UNSUPPORTED_CHANNEL400VALIDATION_ERRORقيمة channel غير معروفة
UNSUPPORTED_FIELD400VALIDATION_ERRORمثلا currency في مسارات المنتجات
NOT_FOUND404VALIDATION_ERRORالطلب أو المورد غير موجود
RATE_LIMIT_EXCEEDED429RATE_LIMIT_ERRORتجاوز حد المعدل لكل دقيقة
QUOTA_EXCEEDED429RATE_LIMIT_ERRORاستنفاد حصة القناة اليومية
PLATFORM_QUOTA_EXCEEDED429RATE_LIMIT_ERRORحد سعة المنصة العامة
CHANNEL_CAPABILITY_NOT_SUPPORTED400CHANNEL_ERRORالعملية غير متاحة على هذه القناة
CHANNEL_UPSTREAM_ERROR502CHANNEL_ERRORالسوق رفض الاستدعاء
INTERNAL_ERROR500INTERNAL_ERRORفشل غير متوقع في Gateway — أعد المحاولة مع backoff
PARCEL_NOT_FOUND404VALIDATION_ERRORطرد fulfillment غير صالح أو لم يصل بعد
INVALID_SHIPPING_CHANNEL400VALIDATION_ERRORقيمة shipping_channel_code غير صحيحة
INSUFFICIENT_BALANCE402VALIDATION_ERRORرصيد محفظة fulfillment غير كاف للدفع

فشل الأعمال (HTTP 200) {#business-failures}

قد تعيد preview/create/pay الخاصة بالشراء HTTP 200 مع success: false عندما يرفض السوق العملية مع أن طلب Gateway صالح.

{
  "channel": "1688",
  "success": false,
  "code": "ORDER_CREATE_FAILED",
  "message": "One or more lines could not be purchased.",
  "failed_offers": [
    {
      "offer_id": "...",
      "spec_id": "...",
      "error_code": "STOCK_NOT_ENOUGH",
      "error_message": "Insufficient stock"
    }
  ],
  "request_id": "req_..."
}
  • افحص success قبل اعتبار الاستدعاء مكتملا
  • راجع unavailable_lines في preview أو failed_offers في create
  • نجاح جزئي: قد تعيد 1688 قيمة success: true مع failed_offers غير فارغة

فشل upstream للمنتجات {#upstream-product-errors}

عادة ما تعيد Taobao口令 غير الصالحة، أو المنتج المفقود، أو مهلات المزود في مسارات المنتجات 502 مع CHANNEL_UPSTREAM_ERROR — وليس غلاف منتج فارغا.

المعالجة الموصى بها {#handling}

  1. سجل request_id في كل مسار خطأ.
  2. أعد محاولة 429 و500 باستخدام exponential backoff؛ لا تعد محاولة 400 / 401 قبل إصلاح الإدخال.
  3. عند 502 CHANNEL_UPSTREAM_ERROR، اعرض رسالة المزود لفريق التشغيل؛ ويمكنك اختياريا إعادة المحاولة مرة واحدة للأعطال العابرة.
  4. إنشاء الطلب: استخدم external_order_id / Taobao outer_purchase_id لضمان idempotency — راجع طلبات الشراء.