As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Processar um pagamento
Para processar um pagamento, você precisa de dois recursos:
-
Instrumento de pagamento — Uma carteira criptográfica incorporada com Coinbase ou Stripe. Consulte Criar um instrumento de pagamento.
-
Sessão de pagamento — Uma sessão com limite de tempo que, opcionalmente, impõe um orçamento de gastos. Consulte Criar uma sessão de pagamento.
Depois que ambos existirem, ligue ProcessPayment com o ID da sessão de pagamento, o ID do instrumento de pagamento e uma carga de pagamento. O serviço valida a solicitação, verifica o orçamento, assina a transação no blockchain apropriado e retorna um resultado de pagamento assinado. Para ver o esquema completo de solicitação e resposta, consulte ProcessPayment a Referência da API.
AgentCore pagamentos suportam dois protocolos de pagamento, que você seleciona com o paymentType parâmetro:
-
CRYPTO_X402— O protocolo x402. Forneça a carga de pagamento x402 do lojista e o agente repetirá a solicitação com o comprovante assinado no cabeçalho.paymentInput.cryptoX402X-PAYMENT -
MPP— O Protocolo de Pagamentos por Máquina (MPP). Encaminhe oWWW-Authenticate: Paymentdesafio do lojista e o agente repetirá a solicitação com a credencial devolvida no cabeçalho.paymentInput.mppAuthorization
Escolha o paymentType que corresponda ao protocolo que o lojista usou em sua 402 Payment Required resposta. Para obter detalhes sobre solicitações e respostas x402, consulte Pagar uma solicitação de pagamento x402. Para obter detalhes sobre solicitações e respostas de MPP, consulte Pagar um desafio de MPP.
dica
Você pode automatizar as etapas nesta página com a habilidade AgentCore Pagamentos no kit de ferramentas do AWS agente. A habilidade faz parte do plug-in aws-agents e permite que um agente de codificação de IA crie seu gerenciador de pagamentos, conector, provedor de credenciais, instrumento de pagamento e sessão usando a agentcore CLI e adicione uma ferramenta de pagamento por processo ao seu agente. Para obter detalhes, consulte o guia de início rápido e o kit de ferramentas do AWS agente em. GitHub
Há cinco maneiras de invocar a ProcessPayment API:
exemplo
Pague uma solicitação de pagamento x402
Quando um lojista responde com uma carga de pagamento x402 em sua 402 Payment Required resposta, você encaminha essa carga para pagamentos e AgentCore os AgentCore pagamentos devolvem um comprovante assinado. Você copia a carga útil do comerciante e AgentCore os pagamentos verificam o orçamento, assinam a transação com a carteira e devolvem o comprovante assinado. paymentInput.cryptoX402 Você anexa a prova ao X-PAYMENT cabeçalho e repete a solicitação original.
Solicitação e reposta
Forneça os seguintes campos empaymentInput.cryptoX402:
-
version— A versão do protocolo x402 (por exemplo,1ou2). Obrigatório. -
payload— Os requisitos de pagamento x402 do lojista, passados como um objeto JSON. Isso especifica oscheme,network,maxAmountRequired,assetpayTo, e outros campos da resposta do lojista.402Obrigatório. -
permit2AllowanceLimit— O subsídio máximo de Permit2 em cadeia a ser concedido, na menor denominação do ativo. Opcional. Defina isso somente para o esquemaupto(medido), que é liquidado por meio do contrato Permit2; fornecê-lo para oexactesquema é um erro de validação. Consulte o subsídio Permission 2 para até pagamentos.
A resposta retorna os seguintes campos empaymentOutput.cryptoX402:
-
version— A versão do protocolo x402. -
payload— A prova de transação assinada, como um objeto JSON. Anexe-o aoX-PAYMENTcabeçalho e repita a solicitação original.
Um status de PROOF_GENERATED indica que a transação foi assinada e o comprovante de pagamento está incluídopaymentOutput.
Esquemas
Uma carga útil x402 nomeia a. scheme AgentCore os pagamentos suportam os seguintes esquemas:
-
exact— Paga um valor fixo especificado na carga útil do lojista. Esse é o esquema padrão e não requer tratamento de subsídios. -
upto— Paga uma quantia medida até um teto. Esse esquema é estabelecido por meio do contrato Permit2, portanto, a carteira do pagador deve ter concedido um subsídio Permit2. Consulte o subsídio Permission 2 para até pagamentos.
Subsídio Permission 2 para até pagamentos
O upto esquema é liquidado por meio do contrato Permit2, que movimenta fundos com. transferFrom A carteira do pagador deve primeiro conceder uma ERC-20 mesada à Permit2, ou a liquidação falhará com um Permit2-allowance erro de pré-condição. Essa concessão segue o mesmo modelo de aprovação em cadeia de qualquer aprovação direta da Permit2. Para obter mais informações, consulte Uniswap Permit2
Para lidar com isso, permit2AllowanceLimit defina a margem máxima na menor denominação do ativo (por exemplo, 1000000 = 1 USDC com 6 casas decimais). Para conceder um subsídio ilimitado, passe o uint256 valor máximo como uma string:115792089237316195423570985008687907853269984665640564039457584007913129639935. Quando você define esse campo, o AgentCore Payments envia uma approve transação em cadeia antes de assinar. Essa transação incorre em taxas de rede blockchain (gás) pagas a partir do saldo do token nativo da carteira.
Porque approve define, em vez de aumentar, a franquia da carteira, definida permit2AllowanceLimit somente quando a carteira precisa ser aprovada (por exemplo, seu primeiro upto pagamento) para evitar uma transação redundante na cadeia. Omita o campo para ignorar totalmente o tratamento da mesada. Esse campo se aplica somente ao upto esquema; fornecê-lo para o exact esquema é um erro de validação.
O exemplo a seguir processa um upto pagamento e concede uma mesada de 1 USDC à Permit2. Poisupto, maxAmountRequired carrega o teto que o comerciante anuncia em sua 402 resposta e extra.facilitatorAddress é o facilitador da liquidação dessa mesma resposta.
exemplo
Limitações
-
O
permit2AllowanceLimitcampo é válido somente para ouptoesquema. Fornecê-lo para oexactesquema retorna umValidationException.
Para erros de validação de solicitação de pagamento x402 e suas resoluções, consulte Erros de solicitação de pagamento x402. Para erros de processamento de pagamentos e suas soluções, consulte Erros Erros no processamento de pagamentos de processamento de pagamentos.
Pague um desafio de MPP
Quando um lojista devolver um WWW-Authenticate: Payment desafio em sua 402 Payment Required resposta, encaminhe o desafio na íntegra. paymentInput.mpp AgentCore payments analisa o desafio, verifica o orçamento, assina com a carteira e retorna um valor de cabeçalho pronto para envioAuthorization. AgentCore payments manipula a análise do cabeçalho, a decodificação base64url e a assinatura, portanto, você não precisa realizar essas operações.
Solicitação e reposta
Forneça os seguintes campos empaymentInput.mpp:
-
version— A versão do protocolo MPP (por exemplo,1). Obrigatório. -
wwwAuthenticateHeaders— O valor bruto doWWW-Authenticate: Paymentcabeçalho da402resposta do lojista, passado literalmente. Forneça exatamente um cabeçalho. Obrigatório. -
buyerPaysGasFees— Se deve autorizar o pagamento de taxas de rede blockchain (gás) da carteira do comprador quando o vendedor não as patrocina. Opcional. Omitido oufalsesignifica que o comprador recusa. Consulte Consentimento de taxa de rede.
A resposta retorna os seguintes campos empaymentOutput.mpp:
-
version— A versão do protocolo MPP. -
selectedPaymentId— O desafioidde que os AgentCore pagamentos pagaram surgiu do desafio de entrada, para que você possa correlacionar o resultado sem decodificar a credencial. -
paymentCredential— O valor doAuthorizationcabeçalho pronto para envio, no formulário.Payment <base64url-token>Anexe-o comoAuthorizationcabeçalho e repita a solicitação original.
Importante
Não decodifique nem modifiquepaymentCredential. Ele incorpora o desafio original e a carga assinada, e o HMAC do comerciante se vincula a esses bytes exatos. Anexe o valor conforme retornado.
O exemplo a seguir processa um desafio de MPP. Defina --payment-type "MPP" e encaminhe o WWW-Authenticate: Payment desafio do lojista literalmente em paymentInput.mpp.wwwAuthenticateHeaders (exatamente um cabeçalho).
exemplo
Métodos e tokens
Um desafio de MPP nomeia um pagamentomethod. AgentCore os pagamentos suportam os seguintes métodos para a charge intenção:
-
evm— Somente USDC canônico. O desafio deve incluirmethodDetails.chainIdrealme. -
tempo— Qualquer cadeia de Tempo, selecionada pormethodDetails.chainId, usando o USDC-equivalent token reconhecido da rede. -
solana— Asdevnetredesmainnete, somente com taxas patrocinadas pelo servidor.
A rede blockchain do instrumento de pagamento deve corresponder ao método de desafio. O suporte do provedor depende do tipo de conector:
| Método | CDP da Coinbase | Stripe (Privado) |
|---|---|---|
|
|
Compatível |
Compatível |
|
|
Compatível |
Compatível |
|
|
Não compatível |
Compatível |
Consentimento de taxa de rede
As taxas da rede Blockchain (gás) são separadas do valor do desafio. Um desafio anuncia quem os patrocina por meio de sua methodDetails.feePayer bandeira:
-
methodDetails.feePayer=true— O vendedor patrocina as taxas da rede.buyerPaysGasFeesnão tem efeito. -
methodDetails.feePayer=falseou ausente — O comprador paga as taxas de rede da carteira pagadora, além do valor do pagamento. Como esse custo não está visível no valor do desafio, os AgentCore pagamentos são assinados somente se você definirbuyerPaysGasFees=true; caso contrário, ele retornará umValidationException. Para otempométodo, esse consentimento é necessário sempre que o vendedor não patrocina taxas.
O evm método não precisa de consentimento de taxa, porque o facilitador transmite a transação e paga o gás. Atualmente, o solana método suporta apenas taxas patrocinadas pelo servidor.
Limitações
-
AgentCore os pagamentos cumprem exatamente um desafio por
ProcessPaymentchamada. Forneça um único cabeçalho emwwwAuthenticateHeaders. -
Somente os modos
chargeintent e pull são suportados. -
Os desafios do MPP duram pouco. Se o desafio expirar, AgentCore os pagamentos retornam
ValidationExceptione não consomem nenhum orçamento. Solicite o recurso pago novamente para obter um novo desafio e tente novamente.
Para erros de validação de desafio de MPP e suas resoluções, consulte Erros de desafio de MPP.
Integrações do framework
Para obter a documentação de referência completa, incluindo tratamento de erros, opções de configuração e ferramentas integradas, consulte Integrações do Framework.
| Framework | Tipo de integração | Referência |
|---|---|---|
|
Plugin (baseado em gancho) |
Tratamento de interrupções, opções de configuração, ferramentas integradas |
|
|
Middleware (envolve chamadas de ferramentas) |
Retornos de chamada de erro, listas de permissões, suporte assíncrono, opções de configuração |