Skip to main content
x402 є платіжним протоколом на основі стандарту HTTP 402 Payment Required, який дозволяє викликачеві завершити ланцюговий розрахунок під час ініціювання API запиту, що робить його ідеальним для автоматизованих програм, AI Agent, мікросервісів у сценаріях оплати за викликом. За допомогою цього посібника ви можете програмно здійснити оплату замовлення AceDataCloud у своїй системі, реалізуючи досвід «запит - оплата». Офіційні матеріали: Цей документ призначений для розробників, які потребують інтеграції платіжних можливостей AceDataCloud x402 у свій бізнес, і описує повний процес від підготовки середовища до завершення виклику оплати, а також надає приклади коду для Axios, Fetch, Python requests та httpx. Основні моменти:
  • Платіжний ланцюг завершується в Base Mainnet, активи використовують USDC;
  • Необхідно використовувати EVM приватний ключ гаманця для генерації заголовка підпису X-PAYMENT;
  • Всі API розташовані на домені https://platform.acedata.cloud, заголовок Authorization повинен містити Platform Token.

I. Підготовчі роботи

1. Перегляд замовлення та запис інформації про отримання

Увійдіть до консолі https://platform.acedata.cloud, у списку замовлень або на сторінці деталей замовлення ви можете побачити замовлення, яке потрібно оплатити. Деталі замовлення покажуть:
  • ID замовлення (наприклад, 7744945e-5e77-4dcc-a9c4-528692d17b34);
  • Адреса отримання pay_to (також буде повернена в 402 відповіді, рекомендується орієнтуватися на інформацію зі сторінки).
Будь ласка, запишіть ID замовлення та підтвердіть адресу pay_to, оскільки під час підписання потрібно буде забезпечити надсилання коштів на цю адресу.

2. Підготовка платіжного гаманця та коштів

  • Підготуйте гаманець EVM, що підтримує Base Mainnet, та експортуйте приватний ключ, який буде використовуватися;
  • Поповніть Base Mainnet достатньою кількістю USDC (сума платежу в одиницях з 6 знаками після коми);
  • x402 Facilitator покриє мережеві витрати, платіжному гаманцю потрібно лише зберігати достатню кількість USDC;
  • Приватний ключ використовується лише для локального підписання, будь ласка, зберігайте його в безпеці, уникаючи його розкриття в браузері або ненадійних середовищах.

3. Створення Platform Token

Platform Token використовується для виклику API платформи, функціонально подібний до токена користувача, що використовується в браузері після входу, але не має терміну дії. Будь ласка, дотримуйтесь наступних кроків для створення:
  1. Відкрийте сторінку консолі https://platform.acedata.cloud/console/platform-tokens;
  2. Натисніть «Створити токен», заповніть інформацію про примітки відповідно до підказок і згенеруйте;
  3. Скопіюйте згенерований токен (наприклад, platform-v1-xxxx), зберігайте його як platform_token.
platform-token Усі подальші виклики API повинні містити в заголовку:

4. Запит базової інформації

  • Базовий домен API: https://platform.acedata.cloud
  • Шлях запиту на оплату: /api/v1/orders/{order_id}/pay/
  • Запити та відповіді використовують JSON, кодування UTF-8.

II. Огляд процесу оплати

  1. Ініціювати запит на оплату: перший POST запит без заголовка X-PAYMENT, що викликає повернення платформи 402 Payment Required;
  2. Зчитати вимоги до оплати: розібрати масив accepts у відповіді 402, підтвердити, що network є base, asset є USDC, payTo відповідає даним на сторінці замовлення;
  3. Генерувати X-PAYMENT: використовуючи приватний ключ платіжного гаманця, вимоги з тіла відповіді, інформацію EIP-712, повернуту Facilitator, згенерувати підпис (зазвичай за допомогою офіційного SDK);
  4. Повторити запит з підписом: додати заголовок X-PAYMENT до запиту того ж шляху, після успішної перевірки платформа повертає 200;
  5. Розібрати результати: зчитати заголовок відповіді X-PAYMENT-RESPONSE, щоб отримати хеш транзакції в ланцюгу, фактичну суму списання та іншу інформацію для звірки.

III. Приклад інтеграції

1. Перший запит (виклик 402)

Типова відповідь 402 (порядок полів може трохи змінюватися):
Опис ключових полів:
  • network: має бути base (Base Mainnet);
  • asset: адреса контракту Base USDC (приклад для офіційного контракту на основній мережі);
  • maxAmountRequired: атомарна одиниця USDC, необхідна для цього платежу (1 USDC = 1,000,000 атомарних одиниць);
  • payTo: адреса отримання платформи, повинна відповідати даним на сторінці деталей замовлення;
  • extra: інформація EIP-712, необхідна для підпису тощо.

2. Генерація X-PAYMENT

Звичайна практика полягає в використанні офіційного SDK (наприклад, x402-js, x402-fetch, x402.clients тощо):
  1. Перетворити приватний ключ платіжного гаманця на об’єкт рахунку;
  2. Записати дані accepts з відповіді 402, вибрати платіжний варіант з network == "base";
  3. Викликати функцію підпису, надану SDK, для генерації рядка X-PAYMENT у форматі Base64 (не потрібно безпосередньо підключатися до facilitator; бекенд платформи відповідатиме за виклик facilitator для завершення перевірки/розрахунку);
  4. Рекомендується перевірити, чи maxAmountRequired знаходиться в прийнятному діапазоні, якщо перевищує, попередити користувача про поповнення.
Якщо потрібно реалізувати вручну, будь ласка, зверніться до офіційної документації x402, щоб побудувати структуру EIP-712 відповідно до інформації з extra.eip712, а потім підписати.

3. Повторний запит з підписом

Якщо оплата успішна, статус відповіді буде 200, а тіло відповіді поверне оновлену інформацію про замовлення, а також:
X-PAYMENT-RESPONSE можна декодувати за допомогою функції SDK, щоб отримати хеш транзакції в ланцюгу, платіжну мережу, адресу платника та інші дані для бізнес-обліку або відображення.

IV. Приклади коду на різних мовах

Наступні приклади припускають, що змінні середовища або конфігураційні файли впроваджені:
  • ACE_PLATFORM_TOKEN:Токен платформи;
  • ACE_X402_ORDER_ID:ID замовлення;
  • ACE_X402_PRIVATE_KEY:Приватний ключ платіжного гаманця (з префіксом 0x).

1. Axios (TypeScript)

2. Fetch (JavaScript)

3. Python requests

4. Python httpx (асинхронний)

Приклад лише демонструє ключові виклики, у виробничому середовищі будь ласка, додайте обробку винятків, стратегії повторних спроб, журнали та контроль безпеки.

П’ять, перевірка після успішної оплати

  • Перевірка в консолі: відвідайте сторінку деталей замовлення https://platform.acedata.cloud/console/orders/{order_id}. Якщо на сторінці відображається «Оплата успішна» або статус замовлення змінився на оплачений/завершений, це означає, що розрахунок в ланцюгу завершено.
  • Перевірка API: викличте GET https://platform.acedata.cloud/api/v1/orders/{order_id}/ і передайте Authorization: Bearer {platform_token}, перевірте поле state у відповіді (значення PAID або FINISHED означає успішну оплату).
  • Заголовок відповіді: у відповіді на успішну оплату прочитайте X-PAYMENT-RESPONSE, з якого можна розшифрувати хеш транзакції в ланцюгу як остаточний доказ; рекомендується зберігати цю інформацію в системних журналах для звірки.

Шість, усунення поширених проблем

  • Все ще повертає 402: підтвердіть, що платіжна адреса в основній мережі має достатньо USDC, перевірте, чи maxAmountRequired не перевищує баланс гаманця або власний ліміт.
  • Помилка підпису: переконайтеся, що приватний ключ має префікс 0x; під час підпису строго використовуйте extra (EIP-712 поле) та payTo з відповіді, не змінюйте порядок полів.
  • Несумісність мережі: у accepts може бути кілька вимог, виберіть опцію network === "base".
  • Відсутній X-PAYMENT-RESPONSE: це означає, що платіж не був фактично списаний, можна повторно ініціювати на основі помилки в тілі відповіді; якщо виникає затримка в ланцюгу, будь ласка, спробуйте пізніше.
  • Недійсний токен платформи: підтвердіть, що токен не був видалений і починається з префікса platform-v1-; якщо API повертає 401, можна знову згенерувати в консолі.

Сім, більше допомоги

  • Онлайн-документація та поширені питання: верхнє меню консолі платформи «Документація».
  • Подати запит та підтримка клієнтів: https://platform.acedata.cloud/support
  • Спільнота: Discord https://discord.gg/f9GRuKCmRc, X (Twitter) https://x.com/acedatacloud
  • Інші канали: електронна пошта office@acedata.cloud, office@germey.tech; адреса компанії 131 Continental Dr, Suite 305, Newark, DE 19713, USA; для підтримки WeChat, будь ласка, перегляньте останній QR-код на сторінці підтримки.
  • Відгуки та пропозиції: ми будемо раді дізнатися про ваші потреби в покращенні через будь-який з вищезазначених каналів.