/verify و /settle.
عنوان Facilitator الإنتاجي لـ Ace Data Cloud هو:
v2 wire 约定
سلسلة X402 لـ Ace Data Cloud تستخدم بالكامل الإصدار الرسمي x402 v2، ولم تعد تقبل رأس الطلبX-Payment من الإصدار v1. يجب الانتباه إلى ثلاث نقاط عند الاتصال:
- رأس الطلب هو
PAYMENT-SIGNATURE، والقيمة هي JSON envelope مشفرة بـ base64. - يجب أن يكون المستوى الأعلى من envelope هو
x402Version: 2، ويجب استخدام كائنacceptedللإعلان عنschemeوnetworkالمختارين. - يجب استخدام CAIP-2 لتحديد
network(مثلeip155:8453)، ولا يمكن كتابة اختصارات مثلbase.
PAYMENT-REQUIRED، والقيمة هي تشفير base64 لنفس محتوى التحدي، مما يسهل على العميل قراءة متطلبات الدفع دون تحليل الجسم.
核心接口
GET /supported
عرض الشبكات و scheme المدعومة:
- يجب استخدام CAIP-2 لتحديد
network، وليس اختصارات مثلbaseأوskale. /supportedتشير إلى أن Facilitator يمتلك القدرة على التحقق والتسوية المقابلة.- Base و SKALE و Solana جميعها تدعم
exact؛ بينماuptoمتاحة حاليًا فقط على Base. signersهي العناوين التي يستخدمها Facilitator لتقديم معاملات التسوية.- ما إذا كان API معين يسمح بهذه الخيارات يعتمد على
acceptsالخاص بـ API 402.
POST /verify
التحقق مما إذا كان PAYMENT-SIGNATURE المرسل من العميل يلبي متطلبات الدفع.
جسم الطلب:
paymentRequirements في الإصدار 2 هو scheme و network و asset و amount و payTo و maxTimeoutSeconds و extra، وحقل المبلغ هو amount. ستعيد استجابة API 402 أيضًا maxAmountRequired في accepts[] لتمكين العميل من قراءة الحد الأقصى، لكنه لا ينتمي إلى حقول جسم طلب Facilitator.
استجابة ناجحة:
PAYMENT-RESPONSE لطلب الدفع للطلب الإنتاجي بعد فك تشفيرها تحتوي على نتيجة التسوية. نتيجة تشغيل طلب الدفع على Base:
success=Trueتشير إلى أن تسوية Facilitator كانت ناجحة.transactionهو تجزئة المعاملة على السلسلة، وتم كتابةpay_idللطلب بنفس القيمة.- يمكن رؤية تحويل
1200000atomic USDC على Base USDC في explorer. errorReason=Noneتشير إلى أن هذه التسوية لم ترجع أي خطأ تجاري.
isValid يكون false. يجب على الجانب التجاري قراءة invalidReason، وليس فقط النظر إلى رمز الحالة HTTP.
POST /settle
تسوية التفويض الذي تم التحقق منه على السلسلة.
جسم الطلب مشابه بشكل أساسي لـ /verify. الفرق في upto هو: يتم تعديل paymentRequirements.amount إلى المبلغ الفعلي عند التسوية؛ يتم تسجيل حد التوقيع من قبل Facilitator في مرحلة التحقق، وعند التسوية يتم التحقق من أن المبلغ الفعلي لا يتجاوز هذا الحد.
استجابة ناجحة:
upto هو 0، قد يكون transaction سلسلة فارغة، مما يعني أنه لا حاجة لإجراء معاملة على السلسلة.
كيفية استخدام Ace Data Cloud Gateway لـ Facilitator
سلسلة API لـ Ace Data Cloud Gateway هي كما يلي:- يقوم العميل بطلب API للمرة الأولى، دون تضمين
AuthorizationوPAYMENT-SIGNATURE. - يقوم Gateway بحساب السعر التقديري للطلب، ويعيد 402 و
accepts. - بعد توقيع العميل، يعيد المحاولة مع
PAYMENT-SIGNATURE. - يقوم Gateway بفك تشفير
PAYMENT-SIGNATURE، ويختار متطلبات الدفع المطابقة. - يقوم Gateway باستدعاء Facilitator لـ
/verify. - بعد نجاح
/verify، يقوم Gateway بإطلاق الطلب إلى API المستهدف. - بعد استجابة API المستهدفة، يقوم Gateway في مرحلة
/recordباستدعاء Facilitator لـ/settle. - يقوم Gateway بكتابة تجزئة المعاملة على السلسلة في بيانات الاستخدام.
exactفي الخطوة 7 تسوية مبلغ التوقيع؛uptoفي الخطوة 7 بناءً على الاستخدام الفعلي كتابةamount، ثم تسوية المبلغ الفعلي.
كيفية دمج API الخاصة بك
إذا كنت تريد أن تدعم API الخاصة بك X402، يمكنك تنفيذ ذلك وفقًا لهذا الهيكل:- إعداد
paymentRequirementsلكل واجهة دفع، تتضمن الشبكة، المبلغ، عنوان الاستلام، عنوان الأصول ونطاق التوقيع. - إذا لم يكن الطلب يحتوي على
PAYMENT-SIGNATURE، ارجع HTTP 402 وaccepts. - إذا كان الطلب يحتوي على
PAYMENT-SIGNATURE، قم بفك تشفير Base64 للحصول علىpaymentPayload. - استدعاء Facilitator
/verify. - بعد التحقق بنجاح، نفذ منطق العمل.
- بعد نجاح العمل، استدعاء Facilitator
/settle. - حفظ
payer،transaction،amount،networkمن أجل التسوية.
paymentRequirements التي تم إنشاؤها بنفسه لاستدعاء /verify و /settle، ولا تثق في المبلغ، عنوان الاستلام أو عنوان الأصول الذي تم إرجاعه من العميل.
حماية من إعادة التشغيل
سيسجل Facilitator nonce. لا يمكن التحقق من التفويضات أو تسويتها بنفس nonce. هذا يعني:- يجب على العميل توقيع envelope جديدة في كل طلب؛
- إذا تم تقديم
/settleولكن لم يتم تأكيده بعد، يمكن إعادة محاولة/settleبنفس nonce للقيام بتسوية idempotent؛ - لا تقم بتخزين نفس
PAYMENT-SIGNATUREلاستخدامه في عدة استدعاءات API.

