رموز الأخطاء · المفاتيح والتواقيع

استدعاء موقّع غير سليم البنية

الرمزmalformed_signed_request
الحالة400
إن كان طلب شراءلم يشترِ شيئًا — ربما اشترت نسخة سابقة: استأنف بالمعرّف نفسه
هل تعيد إرساله كما هو؟لا — غيّر شيئًا أولًا
حزمة SDK لـ ‎.NETAnisApiException

ربما تمّت نسخة سابقة من طلب الشراء هذا

هذا الاستدعاء لم يشترِ شيئًا، لكنه رُفض قبل أن تنظر أنيس في طلب الشراء، فهو لا يقول شيئًا عن محاولة سابقة بمعرّف العملية نفسه. عالج السبب أولًا (أعِد الوصول، أو أصلح طريقة توقيع الاستدعاء)، ثم استأنف بالمعرّف نفسه (أو اقرأه بالاستدعاء GET /orders/{operationId}). لا تقدّمه أبدًا بمعرّف جديد.

المعنى

الاستدعاء الموقّع غير سليم البنية: ترويسة توقيع مفقودة أو لا يمكن قراءتها، أو الأجزاء الموقّعة ليست ما يحتاجه هذا المسار أو ليست بترتيبه، أو بصمة المحتوى (Content-Digest) لا يمكن قراءتها أو لا تصف المحتوى المُرسَل. تقرّر أنيس ذلك قبل أن تنظر في أي مفتاح، فهو لا يقول شيئًا عن مفتاحك.

ما عليك فعله

  • شغّل الفحص الذاتي للتوقيع (التحقق من توقيعك) بشيفرة التوقيع نفسها. إن رُفض بالطريقة نفسها فالخلل في طريقة بناء شيفرتك للاستدعاء الموقّع؛ وإن نجح فقارن ما يعرضه بالاستدعاء الذي فشل.
  • أعِد بناء الاستدعاء على البايتات التي ترسلها بالضبط: الترويستان Signature و Signature-Input كلتاهما (بالوسم sig1)، والأجزاء التي يوقّعها هذا المسار بالضبط وبترتيبها (انظر توقيع الاستدعاءات)، و Content-Digest للمحتوى كما أُرسل — وتأكّد أن لا شيء بينك وبين أنيس يغيّر المحتوى.
  • لا تغيّر مفتاحك: هذا الرفض لا يقول شيئًا عنه. وإرسال الاستدعاء نفسه دون تغيير يتلقى الرد نفسه.
  • في طلب شراء: رُفض الاستدعاء قبل أن تنظر أنيس في طلب الشراء، فهو لا يقول شيئًا عن محاولة سابقة بمعرّف العملية نفسه. أصلح طريقة توقيع الاستدعاء أولًا، ثم استأنف بالمعرّف نفسه (أو اقرأه بالاستدعاء GET /orders/{operationId}). لا تقدّمه أبدًا بمعرّف جديد.

أين قد تصادفه

مثال

محتوى الرفض. قيمة type هي عنوان الصفحة الإنجليزية؛ وهذه الصفحة نسختها العربية.

{
  "type": "https://developers.anis.ly/errors/malformed-signed-request",
  "title": "استدعاء موقّع غير سليم البنية",
  "status": 400,
  "code": "malformed_signed_request",
  "requestId": "01J9R2K8T4V6XQ0M3B7C5D9E1F"
}