رموز الأخطاء · الاستدعاء نفسه
فشل التحقق
الرمز
validation_failedالحالة422
إن كان طلب شراءهذا الاستدعاء لم يشترِ شيئًا
هل تعيد إرساله كما هو؟لا — غيّر شيئًا أولًا
حزمة SDK لـ .NET
ValidationFailedExceptionالمعنى
الاستدعاء يخالف قاعدة. قد يحمل التحقق من مستلم الشحن المباشر أخطاء الحقول في extensions.fields؛ ولا تعتمد على تفاصيل الحقول في حالات الرفض الأخرى.
ما عليك فعله
- في قوائم شحن العدادات والشحن المباشر، صحّح مرشّحات الحالة أو العداد أو المنتج وتواريخ UTC وحجم الصفحة أو المؤشّر. استخدم المرشّحات وحجم الصفحة نفسيهما مع مؤشّر المتابعة، أو احذف المؤشّر لبدء بحث مصحّح؛ ولا تكرر الشراء لاستعادة القائمة.
- يجب أن تكون الأسعار نصوصًا عشرية بثلاث خانات عشرية بالضبط، مثل
"10.500": أكبر من الصفر، دون إشارة، ودون أصفار في أولها، وبما لا يزيد على 15 رقمًا قبل الفاصلة العشرية. ويجب أن يساوي الإجمالي سعر الوحدة مضروبًا في الكمية بالضبط. - يجب أن يكون
externalReferenceمن 1 إلى 100 حرف: حروف لاتينية وأرقام ومسافة و- _ . : / #. - أعِد مؤشر الصفحات (cursor) كما استلمته بالضبط.
- الاستدعاء الذي لا يأخذ محتوى — كل استدعاء
GET، واستدعاءا الكشف — يُرفض إن حمل ولو بايتًا واحدًا؛ والفحص الذاتي للتوقيع يأخذ{}بالضبط. - يجب ألا يتجاوز محتوى طلب الشراء 8,192 بايت (8 كيلوبايت)، بترميز UTF-8 — ويُرفض
Content-Typeيذكرcharsetآخر بالحالة HTTP 422والرمزvalidation_failed. يُرفض محتوى طلب الشراء الذي يتجاوز الحدّ بالحالة HTTP 422والرمزvalidation_failed. - طريقة إرسال الاستدعاء تُحتسب أيضًا: أي محتوى آخر يزيد على 64 كيلوبايت، أو محتوى مُرسَل على أجزاء (chunked) — أرسل
Content-Lengthبدلًا من ذلك —، أو ترويسات يزيد مجموعها على 32 كيلوبايت، أو مسار واستعلام أطول من 2048 حرفًا، أو طلب شراء ترويستهIdempotency-Keyمفقودة أو ليست UUID مكتوبًا بالشرطات. - لبيانات مستلم الشحن المباشر، صحّح المفاتيح المذكورة في
extensions.fieldsوفق قواعد حقول المنتج.
أين قد تصادفه
- GETقائمة المحافظ
/v1/wallets - GETقائمة فئات الكتالوج
/v1/wallets/{walletId}/catalog/categories - GETقائمة الفئات الفرعية لفئة
/v1/wallets/{walletId}/catalog/categories/{categoryId}/subcategories - GETقائمة البطاقات المعروضة للبيع
/v1/wallets/{walletId}/catalog/subcategories/{subcategoryId}/cards - POSTتقديم طلب شراء
/v1/wallets/{walletId}/orders - GETقائمة البطاقات المملوكة
/v1/wallets/{walletId}/owned-cards - POSTكشف بطاقة
/v1/wallets/{walletId}/owned-cards/{soldCardId}/reveal - POSTكشف فاتورة
/v1/wallets/{walletId}/invoices/{invoiceId}/owned-cards/reveal - POSTتعليق تطبيقك
/v1/application/suspend - POSTإلغاء مفتاح للتطبيق
/v1/keys/{keyId}/revoke - POSTفحص توقيعك
/v1/diagnostics/signature - POSTإرسال مفتاح عام
/v1/enrollments/{invitationId}/keys - POSTإثبات حيازة المفتاح
/v1/enrollments/{invitationId}/proof - POSTالسماح بعنوان إضافي
/v1/application/networks - POSTإزالة عنوان أضفته
/v1/application/networks/remove - GETعرض باقات شحن العداد
/v1/wallets/{walletId}/meter-packages - GETعرض عمليات شحن العدادات الخاصة بي
/v1/wallets/{walletId}/meter-charges - POSTشحن عداد
/v1/wallets/{walletId}/meter-charges - GETقراءة عملية شحن
/v1/meter-charges/{operationId} - GETعرض الشحن المباشر
/v1/wallets/{walletId}/direct-recharge-products - GETقراءة منتج الشحن المباشر
/v1/wallets/{walletId}/direct-recharge-products/{productId} - GETالبحث عن مواقع المستلم
/v1/wallets/{walletId}/direct-recharge-products/{productId}/locations - GETحساب تكلفة الشحن المباشر
/v1/wallets/{walletId}/direct-recharge-products/{productId}/quote - GETعرض عمليات الشحن المباشر الخاصة بي
/v1/wallets/{walletId}/direct-recharges - POSTطلب الشحن المباشر
/v1/wallets/{walletId}/direct-recharges - GETمتابعة عملية شحن مباشر مطلوبة
/v1/direct-recharges/{operationId} - PATCHتصحيح بيانات المستلم
/v1/direct-recharges/{operationId}/recipient - GETقراءة عنوان الإشعارات
/v1/webhook-endpoint - PUTتسجيل عنوان الإشعارات
/v1/webhook-endpoint - POSTاختبار استقبال الإشعارات
/v1/webhook-endpoint/test - GETعرض تسليم الإشعارات
/v1/webhook-events - POSTإعادة إرسال إشعار
/v1/webhook-events/{eventId}/redeliver
مثال
محتوى الرفض. قيمة type هي عنوان الصفحة الإنجليزية؛ وهذه الصفحة نسختها العربية.
{
"type": "https://developers.anis.ly/errors/validation-failed",
"title": "فشل التحقق",
"status": 422,
"code": "validation_failed",
"requestId": "01J9R2K8T4V6XQ0M3B7C5D9E1F"
}