Skip to main content
Этот учебник описывает полный процесс работы с Ace Data Cloud X402 с помощью минимального API-запроса. Цель состоит не в том, чтобы сразу писать сложный код, а в том, чтобы понять: почему первый запрос возвращает 402, что содержится в accepts, и как PAYMENT-SIGNATURE превращает один и тот же API-запрос в запрос с оплатой.

Подготовительные работы

Вам нужно подготовить: При вызове X402 API Ace Data Cloud не требуется API Token. Первый запрос SDK не содержит Authorization, Gateway вернет 402 Payment Required и требования к оплате; после подписи SDK автоматически повторит запрос.

Установка SDK

Исходный код и адреса пакетов: TypeScript:
Python:
Если вы хотите использовать Solana, вам также нужно установить соответствующие зависимости:
Зависимость Solana signer для Python уже включена в acedatacloud-x402. Установка и проверка импорта в чистой временной среде:
Результат объясняет:
  • npm пакеты и PyPI пакеты являются реальными выпущенными пакетами, а не заполнительными именами в документации.
  • acedatacloud-x402[cli] установит CLI, подкоманда approve-permit2 может использоваться для авторизации Permit2 в сценариях upto.

Первый запрос вернет 402

Вы можете сначала использовать curl, чтобы посмотреть, что возвращает неоплаченный запрос. Пример ниже не приведет к списанию средств, так как он не содержит PAYMENT-SIGNATURE:
Ответ будет содержать массив accepts, типичная структура выглядит следующим образом:
Та же самая информация о вызове будет также представлена в виде base64 в заголовке PAYMENT-REQUIRED, чтобы клиент мог прочитать требования к оплате, не разбирая тело. Вывод программы для неоплаченного запроса к производственному API выглядит следующим образом:
Результат объясняет:
  • Первый запрос не содержал Authorization или PAYMENT-SIGNATURE, поэтому вернулся HTTP 402, и списание средств не произошло.
  • accepts является единственным надежным основанием для подписи этого запроса, содержит доступные сети, схему, максимальную сумму, адрес получения и адрес актива.
  • network является идентификатором CAIP-2, клиент должен соответствовать строке CAIP-2 при выборе сети.
  • Максимальная сумма для минимального запроса чата gpt-4o-mini составляет 95215 атомных USDC, что соответствует 0.095215 USDC.
  • Каждый запрос должен считывать ответ 402, не следует жестко кодировать примерные суммы в бизнес-код.
Значение полей:

Завершение оплаты с помощью SDK

Ниже приведен минимальный пример на TypeScript. Он указывает network: 'skale', обработчик выберет требование к оплате SKALE из текущего ответа 402; фактическая сумма и адрес получения будут определяться по accepts.
Результат выполнения программы с использованием TypeScript SDK:
Описание результата:
  • content ADC_TS_SDK_X402_OK — это фиксированная строка, возвращаемая моделью по запросу, что указывает на то, что после повторной попытки оплаты запрос действительно попал в API модели.
  • payer — это адрес локального подписанного кошелька, приватный ключ не был отправлен в Ace Data Cloud.
  • SDK выполнил 402 парсинг, подписал PAYMENT-SIGNATURE и повторил исходный запрос; бизнес-код по-прежнему написан в обычном стиле вызова SDK.
В этой части кода происходят четыре шага:
  1. SDK отправляет обычный API запрос без Authorization.
  2. Шлюз возвращает 402 Payment Required и accepts.
  3. createX402PaymentHandler выбирает требование оплаты network = 'skale' и подписывает PAYMENT-SIGNATURE.
  4. SDK повторяет тот же запрос, шлюз вызывает Facilitator для проверки и расчета, после чего пропускает запрос к целевому API.

Просмотр возможностей Facilitator

X402 API не зависит от каталога ресурсов. Клиент напрямую вызывает известный API и использует 402 Payment Required и accepts, возвращаемые в реальном времени, как единственные основания для цены и подписи. Заявление о возможностях Facilitator находится по адресу:
Он описывает только /supported, /verify, /settle и текущие активные платежные сети, не перечисляя ресурсы API. Производственный адрес Facilitator Ace Data Cloud:
Можно посмотреть, какие сети и схемы он поддерживает:
Возвращаемые kinds перечисляют сети и схемы, поддерживаемые Facilitator. При фактическом вызове все еще следует ориентироваться на accepts, возвращаемые API. Вывод Facilitator /supported:
Описание результата:
  • /supported указывает, что Facilitator обладает возможностями проверки и расчета для этих сетей и схем.
  • Base, SKALE и Solana поддерживают exact; upto в настоящее время доступен только на Base.
  • Конкретный API, разрешающий определенную сеть, все еще зависит от 402 accepts этого API.