- Оглядова документація x402: https://docs.cdp.coinbase.com/x402/docs/overview
- Відкритий приклад x402: https://github.com/coinbase/x402
- Платіжний ланцюг завершується в 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 відповіді, рекомендується орієнтуватися на інформацію зі сторінки).
pay_to, оскільки під час підписання потрібно буде забезпечити надсилання коштів на цю адресу.
2. Підготовка платіжного гаманця та коштів
- Підготуйте гаманець EVM, що підтримує Base Mainnet, та експортуйте приватний ключ, який буде використовуватися;
- Поповніть Base Mainnet достатньою кількістю USDC (сума платежу в одиницях з 6 знаками після коми);
- x402 Facilitator покриє мережеві витрати, платіжному гаманцю потрібно лише зберігати достатню кількість USDC;
- Приватний ключ використовується лише для локального підписання, будь ласка, зберігайте його в безпеці, уникаючи його розкриття в браузері або ненадійних середовищах.
3. Створення Platform Token
Platform Token використовується для виклику API платформи, функціонально подібний до токена користувача, що використовується в браузері після входу, але не має терміну дії. Будь ласка, дотримуйтесь наступних кроків для створення:- Відкрийте сторінку консолі https://platform.acedata.cloud/console/platform-tokens;
- Натисніть «Створити токен», заповніть інформацію про примітки відповідно до підказок і згенеруйте;
- Скопіюйте згенерований токен (наприклад,
platform-v1-xxxx), зберігайте його якplatform_token.
Усі подальші виклики API повинні містити в заголовку:
4. Запит базової інформації
- Базовий домен API:
https://platform.acedata.cloud - Шлях запиту на оплату:
/api/v1/orders/{order_id}/pay/ - Запити та відповіді використовують JSON, кодування UTF-8.
II. Огляд процесу оплати
- Ініціювати запит на оплату: перший
POSTзапит без заголовкаX-PAYMENT, що викликає повернення платформи 402 Payment Required; - Зчитати вимоги до оплати: розібрати масив
acceptsу відповіді 402, підтвердити, щоnetworkєbase,assetє USDC,payToвідповідає даним на сторінці замовлення; - Генерувати
X-PAYMENT: використовуючи приватний ключ платіжного гаманця, вимоги з тіла відповіді, інформацію EIP-712, повернуту Facilitator, згенерувати підпис (зазвичай за допомогою офіційного SDK); - Повторити запит з підписом: додати заголовок
X-PAYMENTдо запиту того ж шляху, після успішної перевірки платформа повертає 200; - Розібрати результати: зчитати заголовок відповіді
X-PAYMENT-RESPONSE, щоб отримати хеш транзакції в ланцюгу, фактичну суму списання та іншу інформацію для звірки.
III. Приклад інтеграції
1. Перший запит (виклик 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 тощо):
- Перетворити приватний ключ платіжного гаманця на об’єкт рахунку;
- Записати дані
acceptsз відповіді 402, вибрати платіжний варіант зnetwork == "base"; - Викликати функцію підпису, надану SDK, для генерації рядка
X-PAYMENTу форматі Base64 (не потрібно безпосередньо підключатися до facilitator; бекенд платформи відповідатиме за виклик facilitator для завершення перевірки/розрахунку); - Рекомендується перевірити, чи
maxAmountRequiredзнаходиться в прийнятному діапазоні, якщо перевищує, попередити користувача про поповнення.
extra.eip712, а потім підписати.
3. Повторний запит з підписом
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; адреса компанії 651 N Broad St, Suite 201, Middletown, Delaware, USA; для підтримки WeChat, будь ласка, перегляньте останній QR-код на сторінці підтримки. - Відгуки та пропозиції: ми будемо раді дізнатися про ваші потреби в покращенні через будь-який з вищезазначених каналів.

