exact و upto. وهما يحلان مشكلات فوترة مختلفة.
exact
exact تعني أن السعر يمكن تحديده قبل دخول الطلب إلى واجهة برمجة التطبيقات المستهدفة. المبلغ الذي يوقعه العميل هو المبلغ النهائي الذي سيتم خصمه.
مناسب لـ:
- توليد الصور بسعر ثابت؛
- إنشاء مهام الفيديو بسعر ثابت؛
- واجهة برمجة التطبيقات للبحث أو الأدوات بسعر ثابت؛
- دفع الطلبات.
exact USDC EIP-3009 TransferWithAuthorization:
/verify، ويقدم هذا التفويض على السلسلة في مرحلة /settle.
upto
upto تعني أن العميل يمنح تفويضًا بحد أقصى، وتقوم Ace Data Cloud بتسوية الفاتورة بناءً على الاستخدام الفعلي بعد إتمام الطلب، ولا يمكن أن يتجاوز المبلغ الفعلي الحد الأقصى.
مناسب لـ:
- إكمال الدردشة: السعر النهائي يعتمد على prompt tokens و completion tokens؛
- الاستجابة المتدفقة: لا تعرف طول الإخراج الحقيقي إلا بعد الانتهاء؛
- واجهة برمجة التطبيقات للقياس اللاحق في المستقبل.
upto Permit2 PermitWitnessTransferFrom. المبلغ الذي يوقعه العميل ليس تحويلًا ثابتًا، بل هو تفويض بحد أقصى مع شاهد:
permitted.amount هو الحد الأقصى، وليس بالضرورة المبلغ النهائي الذي سيتم خصمه. في مرحلة /record، سيقوم Gateway بتحويل الاستخدام الفعلي إلى amount وإرساله إلى Facilitator. يسمح Facilitator بالتسوية فقط إذا كان amount <= permitted.amount.
نتيجة تشغيل برنامج Base upto:
- الحد الأقصى للتفويض الذي تم إرجاعه في 402 هو
95215atomic USDC، وقد وقع العميل على هذا الحد. - بعد استجابة النموذج، تم تسوية فقط
3atomic USDC، ويمكن التحقق من المعاملة على السلسلة في BaseScan. - يمكن أن توضح هذه النتيجة الفرق الرئيسي في
upto: المبلغ الموقع هو الحد الأقصى، ويمكن أن تكون التسوية على السلسلة أقل من الحد الأقصى. - إذا تجاوز الاستخدام الفعلي الحد الأقصى، يجب على Facilitator رفض التسوية، ويحتاج العميل إلى إعادة التفويض بمبلغ أعلى.
upto فقط على Base. توفر SKALE فقط exact، إذا كنت بحاجة إلى قياس لاحق، يرجى استخدام Base.
لماذا تحتاج إلى Permit2 approve
يتم سحب USDC في النهاية بواسطة x402 proxy عبر Permit2 من محفظة الدفع. قبل الاستخدام الأول، تحتاج محفظة الدفع إلى منح Permit2 تفويض ERC-20 مرة واحدة. Python CLI:upto جديد في كل طلب، لأن nonce و deadline و witness و الحد الأقصى للمبلغ جميعها مختلفة.
تسوية المبلغ الصفري
يدعمupto الحالة التي يكون فيها المبلغ الفعلي 0. على سبيل المثال، إذا لم تنجح واجهة برمجة التطبيقات المستهدفة في إنتاج كمية قابلة للفوترة، يمكن لـ Gateway تمرير amount = "0". سيعود Facilitator بنجاح، لكنه لن ينفذ معاملة على السلسلة.
يمكن أن يتجنب ذلك مشكلة “الطلب لم ينجح ولكن لا يزال يتم خصم الرسوم على السلسلة”.
اقتراحات الاختيار
إذا لم تكن متأكدًا من الخيار الذي يجب اختياره، استخدم سلوك SDK الافتراضي؛ سيختار SDK متطلبات الدفع المتطابقة التي تعيدها الخادم.
قائمة التحقق لـ Base upto
عند الاتصال أو استكشاف الأخطاء، يرجى التأكد من أن المعلمات تأتي من نفس استجابة 402، وأنها متسقة عند توقيع العميل:
الأخطاء الشائعة وطرق المعالجة:

