PAYMENT-SIGNATURE, quindi riprova con la stessa richiesta.
La differenza è che il pagamento degli ordini appartiene alle API della piattaforma e richiede un token dell’account; mentre la chiamata diretta dell’API AI di x402.acedata.cloud può usare solo X402, senza richiedere un API Token.
Preparare l’ordine
Accedi alla console Ace Data Cloud, seleziona l’ordine da pagare e annota l’ID dell’ordine. Se non hai ancora un ordine, puoi creare un ordine in attesa di pagamento nella pagina dei piani. Il prezzo dell’ordine fa fede a quanto mostrato nella pagina, mentreamount nella risposta X402 402 è la base finale per la firma.
Creare un token dell’account
Le richieste di pagamento degli ordini richiedono un token dell’account. Apri la pagina Token della piattaforma e crea un token nel formatoplatform-v1-....
Usa nelle richieste successive:
Attivare 402
Invia prima una richiesta senzaPAYMENT-SIGNATURE:
accepts:
x402Version è 2, network usa l’identificatore CAIP-2 e il campo dell’importo è amount.
Risultato dell’esecuzione del programma che crea un ordine da 10 Credits e attiva 402:
I seguenti record di transazione sono campioni storici verificati in base alla vecchia politica; gli importi e gli hash delle transazioni sono mantenuti invariati. I nuovi ordini X402 non applicano più sconti sul metodo di pagamento; usa amount nella risposta 402 corrente come base per la firma e il pagamento.
- Dopo la creazione dell’ordine, lo stato è
Pendinge non è ancora stato effettuato alcun pagamento on-chain. - La prima richiesta
pay/non includePAYMENT-SIGNATURE, quindi restituisce HTTP 402. acceptsfornisce contemporaneamente Baseexacte Solanaexact; questo tutorial seleziona Base nelle sezioni successive.- Il prezzo al momento della creazione dell’ordine era
1.26; durante il periodo della vecchia politica di sconto per i pagamenti X402, l’importo effettivo firmato e regolato era1.2USDC, corrispondente a1200000atomic USDC.
resource qui è un campo restituito dal server e partecipa alla firma; il client non deve riscrivere autonomamente il protocollo, il percorso o l’ID dell’ordine al suo interno.
Firmare e riprovare
Il pagamento degli ordini può riutilizzare la funzione di firma di basso livello di@acedatacloud/x402-client o acedatacloud-x402. Di seguito è riportato un esempio TypeScript:
exact:
status 200indica che l’interfaccia di pagamento degli ordini della piattaforma ha accettato questaPAYMENT-SIGNATURE.has_x_payment_response Trueindica che l’intestazione della risposta contiene una ricevutaPAYMENT-RESPONSEcodificata in Base64.settle_header.success=Trueenetwork=baseindicano che il Facilitator ha completato il settlement su Base.- Lo stato finale dell’ordine è
Finished,pay_wayèX402epay_idcontiene l’hash della transazione on-chain. - L’evento
Transfersu BaseScan mostra che l’indirizzo di pagamento ha trasferito1200000USDC atomic all’indirizzo di incasso della piattaforma, ovvero1.2USDC.
Risposta di successo e ricevuta
Dopo che il pagamento dell’ordine è andato a buon fine, il corpo della risposta contiene le informazioni dell’ordine. La piattaforma includerà inoltre nell’intestazione della rispostaPAYMENT-RESPONSE una settlement response codificata in Base64; dopo la decodifica, i campi comuni includono:
Se è necessario effettuare una riconciliazione, si consiglia di salvare contemporaneamente l’ID dell’ordine, l’indirizzo del wallet pagatore,
transaction e lo stato finale dell’ordine.
Note
- Il pagamento dell’ordine richiede il token dell’account della piattaforma e non può essere completato soltanto con la firma del wallet X402.
amountutilizza USDC atomic units;1200000indica1.2USDC.- Non comporre autonomamente l’indirizzo di incasso o l’indirizzo dell’asset; fare riferimento a
acceptsnella risposta 402. - Se la stessa
PAYMENT-SIGNATUREviene inviata ripetutamente, il Facilitator applicherà la protezione dal replay in base al nonce.
Risposta di pagamento non riuscito
Il primo HTTP 402 senzaPAYMENT-SIGNATURE è una normale richiesta di pagamento e non indica un pagamento non riuscito. Gli errori di verifica o settlement dopo la firma mantengono comunque la stringa standard error come fallback di compatibilità e restituiscono una struttura di errore stabile in extensions.acedatacloud.paymentError:
code, mentre per code sconosciuti dovrebbe ripiegare sull’errore generico di pagamento non riuscito. charged è un campo a tre stati: false viene restituito solo quando il rifiuto avviene esplicitamente prima del settlement; l’assenza del campo indica che lo stato dell’addebito è sconosciuto e non può essere interpretata come “nessun addebito”. Dopo che l’ordine corrente entra in Failed, non è possibile riprovare lo stesso ordine; creare un nuovo ordine dopo aver corretto il problema del wallet.
Non registrare né inviare la PAYMENT-SIGNATURE completa, la firma del wallet, il payload di autorizzazione, la diagnostica originale del Facilitator o le risposte RPC. Per l’analisi da parte dell’assistenza clienti sono necessari solo l’ID dell’ordine e il code di errore pubblico.
