accepts e como o PAYMENT-SIGNATURE transforma a mesma solicitação de API em uma solicitação paga.
Preparativos
Você precisa preparar:
A chamada X402 para a API Ace Data Cloud não requer Token de API. A primeira solicitação do SDK não inclui
Authorization, o Gateway retornará 402 Payment Required e a exigência de pagamento; o SDK tentará automaticamente novamente após a assinatura.
Instalação do SDK
Endereços do código-fonte e pacotes:- Repositório do SDK: https://github.com/AceDataCloud/SDK
- Repositório do Cliente X402: https://github.com/AceDataCloud/X402Client
- npm:
@acedatacloud/sdk,@acedatacloud/x402-client - PyPI:
acedatacloud,acedatacloud-x402
acedatacloud-x402.
Instalação e verificação de importação em um ambiente temporário limpo:
- Os pacotes npm e PyPI são pacotes reais publicados, não são nomes de espaço reservado na documentação.
acedatacloud-x402[cli]instalará o CLI, o subcomandoapprove-permit2pode ser usado para autorização Permit2 no cenárioupto.
A primeira solicitação retornará 402
Você pode usarcurl para ver o que uma solicitação não paga retorna. O exemplo abaixo não gerará cobrança, pois não inclui PAYMENT-SIGNATURE:
accepts, cuja estrutura comum é a seguinte:
PAYMENT-REQUIRED, facilitando a leitura da exigência de pagamento pelo cliente sem precisar analisar o corpo.
O resumo da saída do programa de solicitação não paga da API de produção é o seguinte:
- A primeira solicitação não incluiu
AuthorizationouPAYMENT-SIGNATURE, portanto retornou HTTP 402 e não gerou cobrança. acceptsé a única base de assinatura confiável para esta solicitação, contendo redes opcionais, esquema, limite de valor, endereço de recebimento e endereço de ativo.networké a identificação CAIP-2, o cliente deve corresponder a string CAIP-2 ao escolher a rede.- O limite de valor para esta solicitação mínima de chat
gpt-4o-minié95215USDC atômico, ou seja,0.095215USDC. - Cada solicitação deve ler a resposta 402 atual, não deve codificar valores de exemplo no código de negócios.
Completar a tentativa de pagamento com o SDK
Aqui está um exemplo mínimo em TypeScript. Ele especificanetwork: 'skale', o manipulador escolherá a exigência de pagamento SKALE da resposta 402 atual; o valor real e o endereço de recebimento ainda devem ser determinados por accepts.
content ADC_TS_SDK_X402_OKé a string fixa retornada pelo modelo conforme a palavra-chave, indicando que o pagamento foi refeito e a solicitação realmente entrou na API do modelo.payeré o endereço da carteira assinada localmente, a chave privada não foi enviada para a Ace Data Cloud.- O SDK completou a análise do 402, a assinatura do
PAYMENT-SIGNATUREe a reexecução da solicitação original; o código de negócios ainda é escrito de acordo com a forma normal de chamada do SDK.
- O SDK envia uma solicitação API normal, sem
Authorization. - O Gateway retorna
402 Payment Requiredeaccepts. createX402PaymentHandlerescolhe o requisito de pagamentonetwork = 'skale'e assina oPAYMENT-SIGNATURE.- O SDK tenta novamente com o mesmo corpo da solicitação, o Gateway chama o Facilitator para verificar e liquidar antes de liberar para a API de destino.
Verificar as capacidades de suporte do Facilitator
A API X402 não depende de diretórios de recursos. O cliente chama diretamente APIs conhecidas e usa o402 Payment Required e accepts retornados em tempo real como a única base de preço e assinatura.
A declaração de capacidade do Facilitator está localizada em:
/supported, /verify, /settle e as redes de pagamento atualmente habilitadas, sem listar recursos da API.
O endereço do Facilitator de produção da Ace Data Cloud é:
kinds retornados listarão as redes e esquemas suportados pelo Facilitator. Durante a chamada real, ainda se deve considerar o accepts retornado pela API.
A saída do Facilitator /supported:
/supportedindica que o Facilitator possui a capacidade de validação e liquidação para essas redes e esquemas.- Base, SKALE e Solana suportam
exact;uptoatualmente está disponível apenas na Base. - Se uma API específica permite uma determinada rede, ainda deve ser verificado com base no
acceptsdo 402 dessa API.

