جميع الاختبارات الفردية ناجحة، لكن الاختبار التكاملي قد يفشل أيضًا. تتمحور أخطاء x402 تقريبًا كلها حول الحواف: تم إرسال رؤوس الاستجابة 402 ولكن لا يمكن للمتصفح قراءتها (غياب رؤوس التعرّض CORS)، والتوقيع صحيح حسابيًّا لكن المُيسِّر يرفضه (تكرار الـ nonce / خطأ في وحدة المبلغ)، والمبلغ يصل لكن الحسابات لا تتطابق (استخدام مصدر مطابقة خاطئ). وتولّد هذه الأداة نصًّا برمجيًّا للتكامل يمكن تشغيله بنجاح دفعة واحدة، وقائمةً خطوةً بخطوة تحتوي على «القيمة المتوقعة + أسباب الفشل الشائعة»، وذلك وفق خمس خطوات: «الاكتشاف المجاني → 402 → الدفع بالتوقيع → الحصول على البيانات → المطابقة على السلسلة».
—
—
| الظاهرة | الجاني الحقيقي | كيفية الإصلاح |
|---|---|---|
| يظهر الرمز 402 في حزمة التتبع، لكن لا يمكن قراءة الرأس في كود JavaScript. | لم يتم التعيين Access-Control-Expose-Headers | أضف الرؤوس المخصصة مثل payment-required إلى القائمة المُعرَّضة |
| يُبلغ المُيسِّر عن "nonce" غير صالح | إعادة استخدام nonce، أو عدم تطابق مجال التوقيع مع معرّف السلسلة (chain ID) | | توليد قيمة nonce عشوائية في كل مرة؛ والتحقق من chainId الخاص بالنطاق (domain). |
| يُبلغ المُيسِّر عن عدم تطابق المبلغ | وحدة المبلغ خاطئة (USDC تستخدم 6 أرقام عشرية) | ٠٫٠١ USDC = ١٠٠٠٠، وليس ١e١٦ | |
| يمكن للمشتري الدفع حتى دون وجود رصيد غاز (وهذا صحيح) | EIP-3009 transferWithAuthorization يدفع facilitator رسوم الغاز بالنيابة عنك | | يحتاج المشتري فقط إلى امتلاك رمز USDC |
| تم استلام الأموال ولكن المطابقة لا تتطابق | استخدم السجلات الخاصة بالمنصة للتسوية، بدلًا من أحداث السلسلة. | يُعترف فقط بأحداث Transfer على السلسلة، مع هامش تحمّل ±٠٫٠٢ دولار أمريكي | |
| الدفع لم يصل أبدًا | لم يتم بلوغ حد البدء في التسوية / لم يحن بعد موعد التسوية | التجميع حسب الشهر الطبيعي، والتسوية في اليوم ١٠ من الشهر التالي، بحد أدنى للتسوية قدره ٥٠ دولارًا أمريكيًا | |
| اختبار التشغيل يُصنِّف النقطة النهائية على أنها معطلة | نقطة النهاية MCP تُرجع SSE، ويُخفق العميل في تحليلها كـ JSON | يتم التقييم فقط حسب رمز حالة HTTP، ويُعتبر كلٌّ من 200 و402 نشطًا |
1 · تم إرسال الرمز 402، لكن المتصفح لا يستطيع قراءته.يمكن رؤية رؤوس الاستجابة في حزم التتبع، لكن لا يمكن الوصول إليها في JavaScript — ويجب إدراج رؤوس الاستجابة المخصصة صراحةً في القائمة Access-Control-Expose-Headers، وإلا فإن المتصفح سيحظرها تلقائيًا وفقًا لسياسات الأمان.
2 · خطأ في تصنيف اختبار التشغيل.استخدام عميل JSON لاختبار نقطة النهاية MCP التي تُرجع SSE يؤدي دائمًا إلى تصنيفها على أنها «معطلة»؛ والإجراء الصحيح هو الاعتماد فقط على رمز الحالة، حيث يُعتبر كلا الرمزين 200 و402 مؤشرين على التشغيل.
3 · وحدة المبلغ.USDC يستخدم 6 أرقام عشرية، لذا يجب كتابة 0.01 على هيئة 10000؛ أما كتابتها على هيئة 1e16 فستؤدي إلى رفض مباشر من قِبل facilitator، ولن تُذكر رسالة الخطأ سبب الخطأ المتعلق بالوحدة.
4 · تُؤكَّد المطابقة فقط على السلسلة.قد تكون السجلات الخاصة بالمنصة غير دقيقة بسبب إعادة تشغيل العمليات أو استبدال القيم القديمة في الذاكرة، لذا يجب أن تكون أحداث Transfer على السلسلة هي المرجع الوحيد للتسوية.