فحص المدخل العام
إعلان قدرات Facilitator:facilitator وsupportedKinds ونقاط نهاية البروتوكول، فهذا يعني أن بيانات تعريف القدرات طبيعية. تم إيقاف اكتشاف موارد API؛ يُرجى استدعاء API الهدف مباشرةً، والاعتماد على استجابة 402 الفورية.
القدرات التي يدعمها Facilitator:
kinds، فهذا يعني أن مدخل Facilitator يعمل بشكل طبيعي.
فحص accepts في 402
أرسل طلبًا غير موثّق لن يترتب عليه أي خصم:
accepts المُعادة تتضمن الشبكة التي تريد استخدامها. network هو معرّف CAIP-2:
eip155:8453+exact(Base)eip155:8453+upto(Base، القياس اللاحق)eip155:1187947933+exact(SKALE)solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp+exact(Solana)
تشغيل أدوات التحقق المتقدمة لـ X402Client
يوفر مستودع X402Client أدوات تحقق متقدمة، يمكن استخدامها لتأكيد اختيار استجابة 402، وإنشاء التوقيع، وpaid retry، والتسوية على السلسلة. تتطلب هذه الأدوات محفظة ممولة، وRPC، ومفتاحًا خاصًا، واعتمادات التطوير. يُنصح في تكاملات الأعمال العادية بإعطاء الأولوية لاستخدام TypeScript أو Python SDK؛ ولا تُشغّل هذه الأدوات إلا عند الحاجة إلى تحديد مشكلات التوقيع أو التسوية على السلسلة. عنوان المستودع: https://github.com/AceDataCloud/X402Client- استجابة 402 للطلب الأول.
- متطلب الدفع المحدد.
- ملخص
PAYMENT-SIGNATUREبعد التوقيع. - حالة HTTP ونص الاستجابة بعد إعادة المحاولة.
- معاملة settlement على السلسلة، أو سبب خطأ Facilitator عند الفشل.
PAYMENT-SIGNATURE الكامل إلى نظام السجلات أو التذاكر.
مثال على نتائج التحقق من API العام:
- أكملت SKALE
exactوBaseexactوSolanaexactوBaseuptoجميعها paid retry من HTTP 402 إلى HTTP 200. - يمكن البحث عن المعاملة على السلسلة لـ SKALE
exactفي مستكشف SKALE، ومبلغ التسوية هو0.095215USDC. - يمكن البحث عن المعاملة على السلسلة لـ Base
exactفي BaseScan، ومبلغ التسوية هو95215atomic USDC. - الحد الأعلى للتوقيع في Base
uptoهو95215atomic USDC، لكن settlement الفعلي على السلسلة هو3atomic USDC، مما يوضح أن القياس اللاحق يخصم وفق الاستخدام الفعلي. - أكد مسار Solana paid retry ومخرجات النموذج. قد يخضع RPC العام لتقييد المعدل؛ عند الحاجة إلى مطابقة صارمة على السلسلة، يُرجى استخدام Solana RPC خاص بك أو سجلات التسوية من جانب المنصة لتأكيد توقيع المعاملة.
اختبار SDK smoke test
تُستخدم أدوات التحقق المتقدمة لفحص التوقيعات والتسوية على السلسلة. يجب على جانب الأعمال أيضًا تنفيذ SDK smoke test للتأكد من أن كود التطبيق يمكنه معالجة 402 تلقائيًا عبر معالج الدفع. لا تعرض الأمثلة التالية سوى المقاطع الأساسية؛ ويجب استكمال الكود الكامل بالمحفظة وprovider وimport. TypeScript:exact. توفر SKALE حاليًا exact فقط، والذي تتم تسويته بالمبلغ الثابت المسعّر في 402، ولن ينخفض مع الاستخدام الفعلي للـ token. تندرج إكمالات الدردشة ضمن السيناريوهات التي تُقاس بالـ token، ويُوصى بالتبديل إلى Base وتمرير preferScheme: 'upto' عند التكامل الرسمي، للتسوية وفق الاستخدام الفعلي.
نتيجة تشغيل برنامج اختبار SDK smoke:
- يعالج TypeScript SDK تلقائيًا 402 والتوقيع وإعادة المحاولة عبر
createX402PaymentHandler، ويحصل في النهاية علىADC_TS_SDK_X402_OK. - يُكمل Python SDK المسار نفسه عبر
create_x402_payment_handler، ويحصل في النهاية علىADC_PY_SDK_X402_OK. - يستخدم اختبارا smoke كلاهما دافع SKALE
0xd0479FA9FD8C678303d477433d24C15e3723CC1C. - كائن الإرجاع في Python SDK هو
dict، ويمكن في المثال استخدامres["choices"][0]["message"]["content"]لقراءة المحتوى.
الدفع E2E للطلب
يستخدم دفع الطلب واجهة برمجة التطبيقات الخاصة بالمنصة فيplatform.acedata.cloud، ويتطلب رمز حساب المنصة. المسار الكامل هو: إنشاء طلب Pending، ثم تشغيل 402 عبر POST /api/v1/orders/{order_id}/pay/، ثم إعادة المحاولة مع PAYMENT-SIGNATURE.
مثال على نتائج التحقق من دفع طلب صغير:
سجلات المعاملات التالية هي عينات اختبار تاريخية فعلية ضمن السياسة القديمة، وقد تم الاحتفاظ بالمبالغ وهاشات المعاملات كما هي. لم تعد طلبات X402 الجديدة تتضمن خصومات لطريقة الدفع؛ يرجى الاعتماد على amount في استجابة 402 الحالية للتوقيع والدفع.
- بعد إنشاء الطلب، تكون حالة الطلب
Pending، والسعر هو1.26. - يعيد أول طلب
pay/HTTP 402، وتوجد BaseexactوSolanaexactضمنaccepts، والمبلغ في كليهما هو1200000atomic USDC. - بعد إعادة المحاولة مع Base
PAYMENT-SIGNATURE، يعيد الطلب HTTP 200، وتتغير حالة الطلب إلىFinished، ويكونpay_wayهوX402. - بعد فك ترميز
PAYMENT-RESPONSE، يظهرsuccess=Trueوnetwork=base، ويعطي هاش المعاملة نفسه. - حالة المعاملة على BaseScan هي
1، ومبلغ التحويل هو1200000atomic USDC، أي1.2USDC. - تم دفع سعر الإنشاء
1.26خلال فترة سياسة خصم الدفع القديمة لـ X402، وكان مبلغ التوقيع والتسوية النهائي1.2USDC.
Authorization: Bearer {platform_token}، أو لم يكن الطلب تابعًا للحساب الحالي، فسيفشل في طبقة صلاحيات المنصة؛ وهذا يختلف عن واجهة X402 API دون حساب عند استدعاء x402.acedata.cloud مباشرة.
الأخطاء الشائعة
قائمة التحقق لـ Base upto
يتوفر upto حاليًا على Base فقط (eip155:8453). توفر SKALE exact فقط. نظرًا لأن توقيع upto يرتبط بمزيد من معاملات EVM typed data، يجب التأكد بشكل خاص عند التكامل من التطابق التام بين الحقول الفورية في استجابة 402 وتوقيع العميل.
upto القيمة invalid_upto_evm_payload_invalid_signature، فتحقق أولًا من:
extra.chainIdفي عنصرeip155:8453+uptoالذي تعيده API (يجب أن يكون8453).extra.facilitatorAddressالذي تعيده API.- عنوان facilitator الخاص بـ Base
uptoالذي يعيدهhttps://facilitator.acedata.cloud/supported. - Permit2 domain، وspender، وعقد USDC، وحساب التوقيع.
- ما إذا كانت المحفظة قد نفذت بالفعل approve لـ Permit2 على Base USDC.
upto في الوقت نفسه بـ Permit2 domain، وchain ID، وspender، وعنوان المستلم، وعنوان facilitator، وvalidAfter. إذا لم يتطابق أي منها، فسيستعيد Facilitator signer خاطئًا، وبالتالي يعيد invalid signature. إذا كانت هذه كلها متسقة لكنه لا يزال يعيد 402، فتحقق في الخطوة التالية من Permit2 allowance؛ وعند عدم وجود تفويض يعيد PERMIT2_ALLOWANCE_REQUIRED.
حفظ معلومات التحقق
يجب أن تحفظ عملية تحقق كاملة واحدة على الأقل:- مسار API وملخص جسم الطلب؛
networkوschemeالمختاران؛maxAmountRequired؛- عنوان محفظة الدافع؛
- حالة HTTP النهائية؛
- مخرجات النموذج أو معرّف المهمة في الاستجابة؛
- رابط معاملة التسوية؛
- معرّف تتبع Gateway أو معرّف سجل استخدام المنصة.
PAYMENT-SIGNATURE الكامل أو توقيع EIP-712 الكامل أو العبارة الاستذكارية.
أخطاء الدفع المنظمة
ستُرجع حالات فشل X402 الموقعةcode ثابتًا، ومعلمات إدراج آمنة، ومرحلة، وعلامة قابلية إعادة المحاولة في extensions.acedatacloud.paymentError. أعطِ الأولوية لاستخدام هذه البنية لاستكشاف الأخطاء، ولا تحلل error الإنجليزي ذي المستوى الأعلى، ولا تطلب من المستخدم تقديم توقيع المحفظة أو النص الأصلي للمحاكاة على السلسلة.
charged: false:تم رفض التحقق بوضوح قبل التسوية، ولم يتم بدء أي خصم هذه المرة.- عدم احتواء
charged:النتيجة غير معروفة أو أنها دخلت بالفعل مرحلة التسوية، تحقق أولًا من الطلب وحالة السلسلة، ويُحظر تكرار الدفع مباشرة. settlement_pending:لا تكرر الدفع في الوقت الحالي، حدّث الطلب أولًا أو اتصل بالدعم.codeغير معروف:تعامل معه باعتبارهpayment_failed، واحتفظ بالرمز التقني العام ليتمكن دعم العملاء من البحث عنه.

