/verify e /settle del Facilitator.
L’indirizzo del Facilitator di produzione di Ace Data Cloud è:
Convenzioni v2 wire
Il link X402 di Ace Data Cloud utilizza completamente la versione ufficiale x402 v2 e non accetta più l’intestazioneX-Payment v1. Durante l’integrazione, è necessario prestare attenzione a tre punti:
- L’intestazione della richiesta è
PAYMENT-SIGNATURE, il cui valore è un envelope JSON codificato in base64. - Il livello superiore dell’envelope deve essere
x402Version: 2e dichiarare l’oggettoacceptedcon loschemee ilnetworkscelti. - Il
networkutilizza l’identificatore CAIP-2 (ad esempioeip155:8453), non è possibile utilizzare abbreviazioni comebase.
PAYMENT-REQUIRED, il cui valore è la stessa sfida codificata in base64, per facilitare al client la lettura dei requisiti di pagamento senza dover analizzare il corpo.
Interfacce principali
GET /supported
Visualizza le reti e gli schemi supportati:
- Il
networkutilizza l’identificatore CAIP-2, non abbreviazioni comebase,skale. /supportedindica che il Facilitator ha le capacità di verifica e regolamento corrispondenti.- Base, SKALE e Solana supportano
exact;uptoè attualmente disponibile solo su Base. signerssono gli indirizzi utilizzati dal Facilitator per inviare le transazioni di regolamento.- Se un’API specifica consente queste opzioni, è comunque soggetta a quanto indicato in
acceptsdella risposta 402 di quell’API.
POST /verify
Verifica se il PAYMENT-SIGNATURE fornito dal client soddisfa un determinato requisito di pagamento.
Corpo della richiesta:
paymentRequirements della v2 include scheme, network, asset, amount, payTo, maxTimeoutSeconds e extra, il campo dell’importo è amount. La risposta API 402 includerà anche maxAmountRequired per consentire al client di leggere il limite, ma non fa parte dei campi del corpo della richiesta del Facilitator.
Risposta di successo:
PAYMENT-RESPONSE per il pagamento degli ordini di produzione decodificata contiene il risultato del regolamento. Risultato dell’esecuzione del pagamento dell’ordine su Base:
success=Trueindica che il regolamento del Facilitator è andato a buon fine.transactionè l’hash della transazione sulla blockchain, l’pay_iddell’ordine è scritto anche con lo stesso valore.- Su explorer è possibile vedere il trasferimento di
1200000atomic USDC. errorReason=Noneindica che non ci sono stati errori di business in questo regolamento.
isValid sarà false. Il lato business dovrebbe leggere invalidReason, piuttosto che limitarsi a controllare il codice di stato HTTP.
POST /settle
Regola l’autorizzazione già verificata sulla blockchain.
Il corpo della richiesta è sostanzialmente identico a quello di /verify. La differenza per upto è che: paymentRequirements.amount viene riscritto come l’importo effettivo del regolamento; il limite di firma è registrato dal Facilitator nella fase di verifica, e durante il regolamento si verifica che l’importo effettivo non superi tale limite.
Risposta di successo:
upto è 0, transaction potrebbe essere una stringa vuota, indicando che non è necessaria alcuna transazione sulla blockchain.
Come utilizzare il Facilitator con Ace Data Cloud Gateway
Il flusso del Gateway API di Ace Data Cloud è il seguente:- Il client effettua la prima richiesta API, senza
AuthorizationePAYMENT-SIGNATURE. - Il Gateway calcola il prezzo stimato della richiesta, restituendo 402 e
accepts. - Dopo la firma, il client riprova con
PAYMENT-SIGNATURE. - Il Gateway decodifica
PAYMENT-SIGNATURE, selezionando il requisito di pagamento corrispondente. - Il Gateway chiama il Facilitator
/verify. - Dopo il successo di
/verify, il Gateway consente la richiesta all’API di destinazione. - Dopo la risposta dell’API di destinazione, il Gateway chiama il Facilitator
/settlenella fase di/record. - Il Gateway scrive l’hash della transazione sulla blockchain nei metadati della registrazione.
exactnella fase 7 per il saldo dell’importo della firma;uptonella fase 7 scriveamountin base all’uso reale, quindi salda l’importo effettivo.
Come integrare la propria API
Se desideri che la tua API supporti X402, puoi implementare questa struttura:- Prepara
paymentRequirementsper ogni interfaccia a pagamento, includendo rete, importo, indirizzo di ricezione, indirizzo dell’asset e dominio di firma. - Se la richiesta non ha
PAYMENT-SIGNATURE, restituisci HTTP 402 eaccepts. - Se la richiesta ha
PAYMENT-SIGNATURE, decodifica in Base64 per ottenerepaymentPayload. - Chiama il Facilitator
/verify. - Dopo una verifica riuscita, esegui la logica di business.
- Dopo il successo dell’attività, chiama il Facilitator
/settle. - Salva
payer,transaction,amount,networkper la riconciliazione.
paymentRequirements per chiamare /verify e /settle, non fidarti degli importi, degli indirizzi di ricezione o degli indirizzi degli asset restituiti dal client.
Protezione contro la ripetizione
Il Facilitator registrerà il nonce. Le autorizzazioni con lo stesso nonce non possono essere verificate e saldate nuovamente. Questo significa:- Il client dovrebbe firmare un nuovo envelope ad ogni richiesta;
- Se
/settleha inviato una transazione ma non è ancora confermata, puoi riprovare/settlecon lo stesso nonce per una riconciliazione idempotente; - Non memorizzare lo stesso
PAYMENT-SIGNATUREper utilizzarlo in più chiamate API.

