قائمة التكامل الكامل لنقطة الدخول x402

جميع الاختبارات الفردية ناجحة، لكن الاختبار التكاملي قد يفشل أيضًا. تتمحور أخطاء x402 تقريبًا كلها حول الحواف: تم إرسال رؤوس الاستجابة 402 ولكن لا يمكن للمتصفح قراءتها (غياب رؤوس التعرّض CORS)، والتوقيع صحيح حسابيًّا لكن المُيسِّر يرفضه (تكرار الـ nonce / خطأ في وحدة المبلغ)، والمبلغ يصل لكن الحسابات لا تتطابق (استخدام مصدر مطابقة خاطئ). وتولّد هذه الأداة نصًّا برمجيًّا للتكامل يمكن تشغيله بنجاح دفعة واحدة، وقائمةً خطوةً بخطوة تحتوي على «القيمة المتوقعة + أسباب الفشل الشائعة»، وذلك وفق خمس خطوات: «الاكتشاف المجاني → 402 → الدفع بالتوقيع → الحصول على البيانات → المطابقة على السلسلة».

مجاني · بدون تسجيل دخول توليد محلي · المحتوى غير مُحمَّل الحادث المقابل · تم إرسال رأس 402، لكن المتصفح لا يستطيع قراءته

1نقطة النهاية الخاصة بك

2التسعير والتسوية

النتيجةنظرة عامة على التكامل الاختباري

المخرجاتنص برمجي لاختبار التكامل الكامل (End-to-End)

0 سطر
—
يتم تنفيذ الخمس خطوات دفعة واحدة، ويتم إيقاف التنفيذ فورًا عند أول خطوة لا تُحقّق القيمة المتوقعة مع الإبلاغ عن السبب. |

المخرجاتقائمة خطوات (يمكن تسليمها للزملاء لمتابعة التنفيذ)

0 سطر
—

دليل سريعالأخطاء الشائعة أثناء اختبار التكامل

الظاهرةالجاني الحقيقيكيفية الإصلاح
يظهر الرمز 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 على السلسلة هي المرجع الوحيد للتسوية.