PAYMENT-SIGNATURE, а потім повторює той самий запит.
Відмінність полягає в тому, що оплата замовлень належить до API платформи та потребує токена облікового запису; тоді як AI API, що напряму викликається через x402.acedata.cloud, може використовувати лише X402 і не потребує API Token.
Підготовка замовлення
Перейдіть до консолі Ace Data Cloud, виберіть замовлення, яке потрібно оплатити, і запишіть ID замовлення. Якщо у вас ще немає замовлення, ви можете створити неоплачене замовлення на сторінці пакетів. Ціна замовлення визначається відображенням на сторінці, аamount у відповіді X402 402 є остаточною підставою для підпису.
Створення токена облікового запису
Запити на оплату замовлень потребують токена облікового запису. Відкрийте сторінку Token платформи, створіть token у форматіplatform-v1-....
Для наступних запитів використовуйте:
Виклик 402
Спочатку надішліть один запит безPAYMENT-SIGNATURE:
accepts:
x402Version дорівнює 2, network використовує ідентифікатор CAIP-2, а полем суми є amount.
Результат виконання програми для створення замовлення на 10 Credits і виклику 402:
Наведені нижче записи транзакцій є історичними фактичними зразками за старою політикою; суми та хеші транзакцій збережено без змін. Нові замовлення X402 більше не мають знижок за способом оплати; використовуйте amount у цій відповіді 402 як підставу для підпису та оплати.
- Після успішного створення замовлення його статус —
Pending, і на цей момент ще немає ончейн-оплати. - Перший запит
pay/не міститьPAYMENT-SIGNATURE, тому повертається HTTP 402. acceptsодночасно надає Baseexactі Solanaexact; у цьому посібнику далі обирається Base.- Ціна під час створення замовлення становить
1.26; при оплаті протягом періоду старої політики знижок X402 фактична сума підпису та розрахунку становила1.2USDC, що відповідає1200000atomic USDC.
resource тут є полем, яке повертається сервером і бере участь у підписі; клієнт не повинен самостійно змінювати в ньому протокол, шлях або ID замовлення.
Підписання та повторна спроба
Для оплати замовлення можна повторно використати@acedatacloud/x402-client або низькорівневу функцію підписання з acedatacloud-x402. Нижче наведено приклад TypeScript:
exact:
status 200означає, що інтерфейс оплати замовлення платформи прийняв цейPAYMENT-SIGNATURE.has_x_payment_response Trueозначає, що заголовок відповіді містить закодований у Base64 чекPAYMENT-RESPONSE.settle_header.success=Trueтаnetwork=baseозначають, що Facilitator завершив settlement у Base.- Остаточний статус замовлення —
Finished,pay_way—X402, а доpay_idзаписано хеш ончейн-транзакції. - Подія
Transferу BaseScan показує, що адреса платника переказала1200000atomic USDC на адресу отримання коштів платформи, тобто1.2USDC.
Успішна відповідь і чек
Після успішної оплати замовлення тіло відповіді містить інформацію про замовлення. Платформа також передає у заголовку відповідіPAYMENT-RESPONSE закодовану у Base64 settlement response, поширені поля після декодування включають:
Якщо вам потрібна звірка, рекомендується одночасно зберігати ID замовлення, адресу гаманця платника,
transaction та остаточний статус замовлення.
Зауваження
- Для оплати замовлення потрібен токен облікового запису платформи, не можна завершити її лише підписом X402 гаманця.
amountвикористовує USDC atomic units,1200000означає1.2USDC.- Не складайте самостійно адресу отримання коштів або адресу активу, орієнтуйтеся на
acceptsу відповіді 402. - Якщо той самий
PAYMENT-SIGNATUREподається повторно, Facilitator застосує захист від повторного відтворення за nonce.
Відповідь про помилку оплати
Перша HTTP 402 безPAYMENT-SIGNATURE є звичайним платіжним викликом і не означає невдалу оплату. Помилка перевірки або розрахунку після підписання все ще зберігає стандартний рядок error як сумісний резервний варіант, а стабільна структура помилки повертається у extensions.acedatacloud.paymentError:
code, а для невідомого code повертатися до загальної помилки оплати. charged — це тристанове поле: false повертається лише у разі явної відмови до розрахунку; відсутність поля означає, що статус списання невідомий, і не може тлумачитися як «кошти не списано». Після переходу поточного замовлення у Failed повторна спроба для того самого замовлення неможлива, виправте проблему з гаманцем і створіть нове замовлення.
Не записуйте та не надсилайте повний PAYMENT-SIGNATURE, підпис гаманця, payload авторизації, вихідну діагностику Facilitator або відповіді RPC. Для перевірки службою підтримки достатньо ID замовлення та публічного code помилки.
