/verify e /settle.
O endereço do Facilitador de produção da Ace Data Cloud é:
Convenções do wire v2
A rede X402 da Ace Data Cloud agora utiliza completamente a versão oficial x402 v2 e não aceita mais o cabeçalho de requisiçãoX-Payment da v1. Ao integrar, é necessário observar três pontos:
- O cabeçalho da requisição é
PAYMENT-SIGNATURE, e o valor é um envelope JSON codificado em base64. - O nível superior do envelope deve ser
x402Version: 2, e deve declarar oschemeenetworkescolhidos com o objetoaccepted. - O
networkdeve usar a identificação CAIP-2 (comoeip155:8453), não podendo usar abreviações comobase.
PAYMENT-REQUIRED, cujo valor é a codificação em base64 do mesmo conteúdo de desafio, facilitando a leitura da exigência de pagamento pelo cliente sem a necessidade de analisar o corpo.
Interfaces principais
GET /supported
Verifique as redes e esquemas suportados:
- O
networkusa a identificação CAIP-2, não abreviações comobase,skale. /supportedindica que o Facilitador possui a capacidade de validação e liquidação correspondente.- Base, SKALE e Solana suportam
exact;uptoestá disponível apenas na Base atualmente. signerssão os endereços que o Facilitador usa para enviar transações de liquidação.- Se um API específico permite essas opções, isso ainda deve ser verificado com o
acceptsda API 402.
POST /verify
Verifica se o PAYMENT-SIGNATURE enviado pelo cliente atende a um determinado requisito de pagamento.
Corpo da requisição:
paymentRequirements da v2 é composto por scheme, network, asset, amount, payTo, maxTimeoutSeconds e extra, sendo que o campo de valor é amount. A resposta da API 402 incluirá também maxAmountRequired no accepts[] para que o cliente possa ler o limite, mas isso não faz parte dos campos do corpo da requisição do Facilitador.
Resposta de sucesso:
PAYMENT-RESPONSE do pagamento do pedido de produção, após decodificação, contém o resultado da liquidação. O resultado da execução do pagamento do pedido na Base:
success=Trueindica que a liquidação do Facilitador foi bem-sucedida.transactioné o hash da transação na blockchain, opay_iddo pedido também é registrado com o mesmo valor.- No explorer, pode-se ver a transferência de
1200000atomic USDC. errorReason=Noneindica que não houve erro de negócio nesta liquidação.
isValid será false. O lado do negócio deve ler invalidReason, em vez de apenas observar o código de status HTTP.
POST /settle
Realiza a liquidação na blockchain da autorização já verificada.
O corpo da requisição é basicamente o mesmo que o de /verify. A diferença do upto é que: o paymentRequirements.amount é reescrito para o valor real da liquidação; o limite de assinatura é registrado pelo Facilitador na fase de verificação, e na liquidação, o valor real não pode exceder esse limite.
Resposta de sucesso:
upto for 0, o transaction pode ser uma string vazia, indicando que não é necessário enviar uma transação na blockchain.
Como a Ace Data Cloud Gateway usa o Facilitador
O fluxo da API Gateway da Ace Data Cloud é o seguinte:- O cliente faz a primeira requisição à API, sem incluir
AuthorizationePAYMENT-SIGNATURE. - O Gateway calcula o preço estimado da requisição e retorna 402 e
accepts. - Após assinar, o cliente tenta novamente com
PAYMENT-SIGNATURE. - O Gateway decodifica o
PAYMENT-SIGNATUREe seleciona o requisito de pagamento correspondente. - O Gateway chama o Facilitador
/verify. - Após o sucesso do
/verify, o Gateway libera a requisição para a API de destino. - Após a resposta da API de destino, o Gateway chama o Facilitador
/settlena fase de/record. - O Gateway registra o hash da transação na blockchain nos metadados de uso.
exactna etapa 7 liquida o valor da assinatura;uptona etapa 7 escreve oamountcom base no uso real e, em seguida, liquida o valor real.
Como integrar sua própria API
Se você deseja que sua própria API suporte X402, pode implementar essa estrutura:- Prepare
paymentRequirementspara cada interface de pagamento, incluindo rede, valor, endereço de recebimento, endereço de ativo e domínio de assinatura. - Se a solicitação não tiver
PAYMENT-SIGNATURE, retorne HTTP 402 eaccepts. - Se a solicitação tiver
PAYMENT-SIGNATURE, decodifique em Base64 para obterpaymentPayload. - Chame o Facilitator
/verify. - Após a verificação bem-sucedida, execute a lógica de negócios.
- Após o sucesso do negócio, chame o Facilitator
/settle. - Salve
payer,transaction,amount,networkpara conciliação.
paymentRequirements para chamar /verify e /settle, não confie nos valores, endereços de recebimento ou endereços de ativos retornados pelo cliente.
Proteção contra reprodução
O Facilitator registrará nonce. A autorização com o mesmo nonce não pode ser verificada e liquidada novamente. Isso significa:- O cliente deve assinar um novo envelope a cada solicitação;
- Se
/settlejá tiver enviado a transação, mas ainda não tiver confirmação, você pode tentar/settlenovamente com o mesmo nonce para conciliação idempotente; - Não armazene o mesmo
PAYMENT-SIGNATUREem cache para múltiplas chamadas de API.

