Verificare l’endpoint pubblico
Dichiarazione delle capacità del Facilitator:facilitator, supportedKinds e gli endpoint del protocollo, i metadati delle capacità sono normali. La scoperta delle risorse API è stata ritirata; chiamare direttamente l’API di destinazione e fare riferimento alla risposta 402 in tempo reale.
Capacità supportate dal Facilitator:
kinds, l’endpoint del Facilitator funziona normalmente.
Verificare accepts di 402
Inviare una richiesta non autenticata che non comporterà alcun addebito:
accepts restituito contiene la rete che si desidera utilizzare. network è un identificatore CAIP-2:
eip155:8453+exact(Base)eip155:8453+upto(Base, misurazione post-utilizzo)eip155:1187947933+exact(SKALE)solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp+exact(Solana)
Eseguire gli strumenti di verifica avanzata di X402Client
Il repository X402Client fornisce strumenti di verifica avanzata, utilizzabili per confermare la selezione della risposta 402, la generazione della firma, il paid retry e il settlement on-chain. Richiedono un wallet finanziato, RPC, chiave privata e dipendenze di sviluppo. Per una normale integrazione aziendale si consiglia di utilizzare prioritariamente l’SDK TypeScript o Python; eseguire questi strumenti solo quando è necessario individuare problemi di firma o regolamento on-chain. Indirizzo del repository: https://github.com/AceDataCloud/X402Client- La risposta 402 della prima richiesta.
- Il payment requirement selezionato.
- Il riepilogo del
PAYMENT-SIGNATUREfirmato. - Lo stato HTTP e il corpo della risposta dopo il retry.
- La transaction di settlement on-chain, oppure il motivo dell’errore del Facilitator in caso di fallimento.
PAYMENT-SIGNATURE completi al sistema di log o nei ticket.
Esempio di risultati di verifica dell’API pubblica:
- SKALE
exact, Baseexact, Solanaexacte Baseuptohanno tutti completato il paid retry da HTTP 402 a HTTP 200. - La transazione on-chain di SKALE
exactè consultabile nello SKALE explorer e l’importo del regolamento è0.095215USDC. - La transazione on-chain di Base
exactè consultabile su BaseScan e l’importo del regolamento è95215atomic USDC. - Il limite di firma di Base
uptoè95215atomic USDC, ma il settlement on-chain effettivo è3atomic USDC, il che indica che la misurazione post-utilizzo addebita in base all’utilizzo reale. - Il percorso Solana ha confermato il paid retry e l’output del modello. L’RPC pubblico potrebbe essere soggetto a limitazioni di frequenza; quando è necessaria una rigorosa riconciliazione on-chain, utilizzare il proprio RPC Solana o confermare la firma della transazione tramite i record di settlement lato piattaforma.
SDK smoke test
Gli strumenti di verifica avanzata vengono utilizzati per controllare le firme e il settlement on-chain. Anche il lato applicativo deve eseguire uno SDK smoke test, per confermare che il codice dell’applicazione possa gestire automaticamente 402 tramite il payment handler. Di seguito vengono mostrati solo i frammenti principali; il codice completo deve integrare wallet, provider e import. TypeScript:exact. SKALE attualmente fornisce solo exact, e regola l’importo fisso quotato dal 402, senza ridursi in base al reale utilizzo di token. Il completamento della chat è uno scenario misurato in base ai token; per l’integrazione in produzione si consiglia di usare Base e passare preferScheme: 'upto', regolando in base al reale utilizzo.
Risultati dell’esecuzione del programma dello smoke test SDK:
- TypeScript SDK gestisce automaticamente 402, firma e tentativo ripetuto tramite
createX402PaymentHandler, ottenendo infineADC_TS_SDK_X402_OK. - Python SDK completa lo stesso flusso tramite
create_x402_payment_handler, ottenendo infineADC_PY_SDK_X402_OK. - Entrambi gli smoke test usano il payer SKALE
0xd0479FA9FD8C678303d477433d24C15e3723CC1C. - L’oggetto restituito da Python SDK è un
dict; nell’esempio è possibile usareres["choices"][0]["message"]["content"]per leggere il contenuto.
E2E di pagamento ordine
Il pagamento dell’ordine usa l’API della piattaforma diplatform.acedata.cloud e richiede un token dell’account della piattaforma. Il flusso completo è: creare un ordine Pending, POST /api/v1/orders/{order_id}/pay/ attiva il 402, quindi ritentare con PAYMENT-SIGNATURE.
Esempio di risultato della verifica del pagamento di un ordine di piccolo importo:
I seguenti record di transazione sono campioni storici di test effettivi sotto la vecchia politica; gli importi e gli hash delle transazioni sono mantenuti invariati. I nuovi ordini X402 non applicano più sconti sul metodo di pagamento; usare l’amount nella risposta 402 corrente come base per la firma e il pagamento.
- Dopo la creazione dell’ordine, lo stato dell’ordine è
Pendinge il prezzo è1.26. - La prima richiesta
pay/restituisce HTTP 402; inacceptssono presenti Baseexacte Solanaexact, con importi entrambi di1200000atomic USDC. - Dopo il tentativo ripetuto con Base
PAYMENT-SIGNATURE, restituisce HTTP 200, lo stato dell’ordine diventaFinishedepay_wayèX402. - Dopo la decodifica di
PAYMENT-RESPONSE, mostrasuccess=True,network=basee fornisce lo stesso hash della transazione. - Su BaseScan lo stato della transazione è
1, l’importo del trasferimento è1200000atomic USDC, ossia1.2USDC. - Il prezzo di creazione
1.26è stato pagato durante il periodo della vecchia politica di sconto per pagamenti X402; l’importo finale della firma e del regolamento è1.2USDC.
Authorization: Bearer {platform_token}, oppure l’ordine non appartiene all’account corrente, fallirà al livello delle autorizzazioni della piattaforma; questo è diverso dall’API X402 senza account che chiama direttamente x402.acedata.cloud.
Errori comuni
Checklist Base upto
upto è attualmente fornito solo su Base (eip155:8453). SKALE fornisce solo exact. Poiché la firma upto vincola più parametri EVM typed data, durante l’integrazione è necessario confermare in particolare che i campi in tempo reale nella risposta 402 siano completamente coerenti con la firma del client.
upto restituisce invalid_upto_evm_payload_invalid_signature, verificare con priorità:
extra.chainId(deve essere8453) nella voceeip155:8453+uptorestituita dall’API.extra.facilitatorAddressrestituito dall’API.- L’indirizzo del facilitator Base
uptorestituito dahttps://facilitator.acedata.cloud/supported. - Domain Permit2, spender, contratto USDC e account di firma.
- Se il wallet ha già eseguito approve Permit2 per Base USDC.
upto vincola contemporaneamente domain Permit2, chain ID, spender, indirizzo destinatario, indirizzo facilitator e validAfter. Se uno qualsiasi di essi non è coerente, il Facilitator recupererà un signer errato, restituendo quindi invalid signature. Se tutti questi sono coerenti ma restituisce ancora 402, il passo successivo è verificare la allowance Permit2; in caso di mancata autorizzazione restituisce PERMIT2_ALLOWANCE_REQUIRED.
Salvare le informazioni di verifica
Una verifica completa salva almeno:- il percorso API e il riepilogo del corpo della richiesta;
- la network e lo scheme selezionati;
maxAmountRequired;- l’indirizzo del wallet del payer;
- lo stato HTTP finale;
- l’output del modello o l’ID attività nella risposta;
- il link della settlement transaction;
- il Gateway trace ID o l’ID del record di utilizzo della piattaforma.
PAYMENT-SIGNATURE completo, signature EIP-712 completa o frase mnemonica.
Errori di pagamento strutturati
I fallimenti X402 dopo la firma restituisconocode stabile, parametri di interpolazione sicuri, fase e flag di ripetibilità in extensions.acedatacloud.paymentError. Dai priorità alla risoluzione dei problemi usando questa struttura, non analizzare l’error inglese di primo livello e non chiedere agli utenti di fornire signature del wallet o il testo originale della simulazione on-chain.
charged: false: la verifica è stata esplicitamente rifiutata prima del settlement, e questa volta non è stato avviato alcun addebito.- Senza
charged: il risultato è sconosciuto oppure è già entrato nella fase di settlement; controlla prima l’ordine e lo stato on-chain, ed è vietato ripetere direttamente il pagamento. settlement_pending: non ripetere temporaneamente il pagamento; aggiorna prima l’ordine o contatta il supporto.- code non riconosciuto: trattalo come
payment_failede conserva il codice tecnico pubblico per la ricerca da parte dell’assistenza clienti.

