Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Elaborare un pagamento
Per elaborare un pagamento, hai bisogno di due risorse:
-
Strumento di pagamento: un portafoglio crittografico integrato con Coinbase o Stripe. Vedi Creare uno strumento di pagamento.
-
Sessione di pagamento: una sessione limitata nel tempo che, facoltativamente, impone un budget di spesa. Vedi Creare una sessione di pagamento.
Dopo che entrambi esistono, chiama ProcessPayment con l'ID della sessione di pagamento, l'ID dello strumento di pagamento e un payload di pagamento. Il servizio convalida la richiesta, controlla il budget, firma la transazione sulla blockchain appropriata e restituisce un risultato di pagamento firmato. Per lo schema completo di richiesta e risposta, consulta ProcessPayment l'API Reference.
AgentCore payments supporta due protocolli di pagamento, che puoi selezionare con il paymentType parametro:
-
CRYPTO_X402— Il protocollo x402. Fornisci il payload di pagamento x402 del commerciante e l'agente riprova la richiesta con la prova firmata nell'intestazione.paymentInput.cryptoX402X-PAYMENT -
MPP— Il Machine Payments Protocol (MPP). Inoltra la richiesta del commerciante epaymentInput.mppl'agenteWWW-Authenticate: Paymentriprova la richiesta con le credenziali restituite nell'intestazione.Authorization
Scegli paymentType quello che corrisponde al protocollo utilizzato dal commerciante nella risposta. 402 Payment Required Per i dettagli della richiesta e della risposta x402, vedi Pagare una richiesta di pagamento x402. Per i dettagli su richieste e risposte MPP, vedi Pay an MPP challenge.
Suggerimento
Puoi automatizzare i passaggi in questa pagina con l'abilità AgentCore Pagamenti nel toolkit per agenti. AWS L'abilità fa parte del plug-in aws-agents e consente a un agente di codifica AI di creare il Payment Manager, il connettore, il fornitore di credenziali, lo strumento di pagamento e la sessione utilizzando la agentcore CLI e aggiungere uno strumento di elaborazione dei pagamenti all'agente. Per i dettagli, consulta il quickstart e il toolkit per gli agenti attivi. AWS GitHub
Esistono cinque modi per richiamare l'API: ProcessPayment
Esempio
Paga una richiesta di pagamento x402
Quando un commerciante risponde inserendo nella sua 402 Payment Required risposta un payload x402, tu inoltri tale payload ai AgentCore pagamenti, e Payments restituisce una prova firmata. AgentCore Copi il payload del commerciante in e AgentCore Payments controlla il budgetpaymentInput.cryptoX402, firma la transazione con il portafoglio e restituisce la ricevuta firmata. Alleghi la bozza all'X-PAYMENTintestazione e ritenti la richiesta originale.
Richiesta e risposta
Fornisci i seguenti campi in: paymentInput.cryptoX402
-
version— La versione del protocollo x402 (ad esempio,1o2). Obbligatorio. -
payload— I requisiti di pagamento x402 del commerciante, trasmessi come oggetto JSON. Specifica i campischeme,,networkmaxAmountRequiredassetpayTo, e altri campi della risposta del commerciante.402Obbligatorio. -
permit2AllowanceLimit— L'indennità Permit2 massima concessa in catena, nella denominazione più piccola dell'asset. Opzionale. Impostatela solo per lo schemaupto(a pagamento), che viene regolato tramite il contratto Permit2; fornirla per lo schema è un errore di convalida.exactVedi l'indennità Permit2 per un massimo di pagamenti.
La risposta restituisce i seguenti campi in: paymentOutput.cryptoX402
-
version— La versione del protocollo x402. -
payload— La prova della transazione firmata, come oggetto JSON. Allegalo all'X-PAYMENTintestazione e riprova con la richiesta originale.
Un status segno o PROOF_GENERATED indica che la transazione è stata firmata e che la prova di pagamento è inclusa. paymentOutput
Schemi
Un payload x402 nomina a. scheme AgentCore i pagamenti supportano i seguenti schemi:
-
exact— Paga un importo fisso specificato nel payload del commerciante. Questo è lo schema predefinito e non richiede la gestione delle indennità. -
upto— Paga un importo misurato fino a un massimale. Questo schema si risolve tramite il contratto Permit2, quindi il portafoglio del pagatore deve aver concesso un'indennità Permit2. Vedi l'indennità Permit2 per un massimo di pagamenti. Indennità del permesso 2 per un massimo di pagamenti
Indennità del permesso 2 per un massimo di pagamenti
Lo upto schema si risolve tramite il contratto Permit2, che trasferisce i fondi con. transferFrom Il portafoglio del pagatore deve prima concedere a Permit2 un' ERC-20 indennità, altrimenti il regolamento fallisce e si verifica un errore di precondizione. Permit2-allowance Questa concessione segue lo stesso modello di approvazione on-chain di qualsiasi approvazione diretta di Permit2. Per ulteriori informazioni, vedere Uniswap Permit2
Per gestire questa situazione, impostate la quota massima nella denominazione più piccola dell'asset (permit2AllowanceLimitad esempio, = 1 USDC a 6 decimali). 1000000 Per concedere un'indennità illimitata, passate il uint256 valore massimo come stringa:. 115792089237316195423570985008687907853269984665640564039457584007913129639935 Quando imposti questo campo, AgentCore i pagamenti inviano una approve transazione on-chain prima della firma. Questa transazione comporta commissioni sulla rete blockchain (gas) pagate sul saldo dei token nativi del portafoglio.
Perché approve imposta, anziché aumentare, la quantità consentita dal portafoglio, impostata permit2AllowanceLimit solo quando il portafoglio deve essere approvato (ad esempio, il primo upto pagamento) per evitare una transazione on-chain ridondante. Ometti il campo per saltare completamente la gestione delle quote. Questo campo si applica solo allo upto schema; fornirlo per lo exact schema è un errore di convalida.
L'esempio seguente elabora un upto pagamento e concede un'indennità di 1 USDC a Permit2. Forupto, maxAmountRequired prevede il massimale indicato dal merchant nella sua 402 risposta e funge da facilitatore della transazione in base alla extra.facilitatorAddress stessa risposta.
Esempio
Limitazioni
-
Il
permit2AllowanceLimitcampo è valido solo per lo schema.uptoSe lo si fornisce per loexactschema si restituisce unValidationException.
Per gli errori di convalida delle richieste di pagamento x402 e le relative risoluzioni, vedi errori delle richieste di pagamento x402. Per gli errori di elaborazione dei pagamenti e le relative risoluzioni, vedi Errori di elaborazione dei pagamenti. Errori di elaborazione dei pagamenti
Paga una sfida MPP
Quando un commerciante 402 Payment Required risponde a una WWW-Authenticate: Payment sfida, inoltrala alla lettera. paymentInput.mpp AgentCore payments analizza la sfida, controlla il budget, firma con il portafoglio e restituisce un valore di intestazione pronto per l'invio. Authorization AgentCore payments gestisce l'analisi dell'intestazione, la decodifica base64url e la firma, quindi non è necessario eseguire queste operazioni.
Richiesta e risposta
Fornisci i seguenti campi in: paymentInput.mpp
-
version— La versione del protocollo MPP (ad esempio,1). Obbligatorio. -
wwwAuthenticateHeaders— Il valore grezzo dell'WWW-Authenticate: Paymentintestazione della402risposta del venditore, passato alla lettera. Fornisci esattamente un'intestazione. Obbligatorio. -
buyerPaysGasFees— Se autorizzare il pagamento delle commissioni sulla rete blockchain (gas) dal portafoglio dell'acquirente quando il venditore non le sponsorizza. Opzionale. Omesso ofalsesignifica che l'acquirente rifiuta. Vedi Consenso alle commissioni di rete.
La risposta restituisce i seguenti campi inpaymentOutput.mpp:
-
version— La versione del protocollo MPP. -
selectedPaymentId— Laidsfida che AgentCore Payments ha pagato, riecheggia nella sfida di input in modo da poter correlare il risultato senza decodificare la credenziale. -
paymentCredential— Il valore dell'Authorizationintestazione pronto per l'invio, nel modulo.Payment <base64url-token>Allegalo comeAuthorizationintestazione e riprova con la richiesta originale.
Importante
Non decodificare o modificare. paymentCredential Incorpora la sfida originale e il payload firmato e l'HMAC del commerciante si lega a quei byte esatti. Allega il valore restituito.
L'esempio seguente elabora una sfida MPP. Imposta --payment-type "MPP" e inoltra la WWW-Authenticate: Payment sfida del commerciante alla lettera paymentInput.mpp.wwwAuthenticateHeaders (esattamente un'intestazione).
Esempio
Metodi e token
Una sfida MPP nomina un pagamento. method AgentCore payments supporta i seguenti metodi a tale charge scopo:
-
evm— Solo USDC canonico. La sfida deve includere e.methodDetails.chainIdrealm -
tempo— Qualsiasi catena Tempo, selezionata damethodDetails.chainId, utilizzando il USDC-equivalent token riconosciuto dalla rete. -
solana— Themainnetanddevnetnetworks, solo con tariffe sponsorizzate dal server.
La rete blockchain dello strumento di pagamento deve corrispondere al metodo di sfida. Il supporto del provider dipende dal tipo di connettore:
| Metodo | Coinbase CDP | Stripe (Privy) |
|---|---|---|
|
|
Supportata |
Supportato |
|
|
Supportato |
Supportata |
|
|
Non supportata |
Supportata |
Consenso alla tariffa di rete
Le commissioni relative alla rete blockchain (gas) sono separate dall'importo della sfida. Una sfida pubblicizza chi li sponsorizza attraverso la sua bandiera: methodDetails.feePayer
-
methodDetails.feePayer=true— Il venditore sponsorizza le commissioni di rete.buyerPaysGasFeesnon ha alcun effetto. -
methodDetails.feePayer=falseo assente: l'acquirente paga le commissioni di rete dal portafoglio pagante, oltre all'importo del pagamento. Poiché tale costo non è visibile nell'importo della sfida, AgentCore i pagamenti vengono effettuati solo se impostatibuyerPaysGasFees=true; in caso contrario restituiscono unValidationExceptionimporto. Per quanto riguarda iltempometodo, questo consenso è richiesto ogni volta che il venditore non sponsorizza le commissioni.
Il evm metodo non richiede il consenso delle commissioni, poiché il facilitatore trasmette la transazione e paga il gas. Oggi il solana metodo supporta solo commissioni sponsorizzate dal server.
Limitazioni
-
AgentCore i pagamenti soddisfano esattamente una sfida per chiamata.
ProcessPaymentFornisci un'unica intestazione.wwwAuthenticateHeaders -
Sono supportate solo le modalità
chargeintent e pull. -
Le sfide MPP sono di breve durata. Se la sfida è scaduta, AgentCore Payments restituisce
ValidationExceptione non consuma alcun budget. Richiedi nuovamente la risorsa a pagamento per ottenere una nuova sfida, quindi riprova.
Per gli errori di convalida delle sfide MPP e le relative risoluzioni, vedi Errori di verifica MPP.
Integrazioni con il framework
Per una documentazione di riferimento completa che include la gestione degli errori, le opzioni di configurazione e gli strumenti integrati, vedi Integrazioni con Framework.
| Framework | Tipo di integrazione | Documentazione di riferimento |
|---|---|---|
|
Plugin (basato su hook) |
Gestione delle interruzioni, opzioni di configurazione, strumenti integrati |
|
|
Middleware (chiude le chiamate agli strumenti) |
Richiamate di errore, elenchi consentiti, supporto asincrono, opzioni di configurazione |