Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Procesar un pago
Para procesar un pago, necesita dos recursos:
-
Instrumento de pago: un monedero criptográfico integrado con Coinbase o Stripe. Consulta Crear un instrumento de pago.
-
Sesión de pago: sesión con un límite de tiempo que, de manera opcional, impone un presupuesto de gastos. Consulte Crear una sesión de pago.
Cuando ambos existan, llama ProcessPayment con el identificador de la sesión de pago, el identificador del instrumento de pago y la carga útil del pago. El servicio valida la solicitud, comprueba el presupuesto, firma la transacción en la cadena de bloques correspondiente y devuelve un resultado de pago firmado. Para ver el esquema completo de solicitud y respuesta, consulta la referencia ProcessPayment de la API.
AgentCore payments admite dos protocolos de pago, que puedes seleccionar con el paymentType parámetro:
-
CRYPTO_X402— El protocolo x402. Introduce la carga útil del pago x402 del vendedor y el agente volverá a intentar la solicitud con el comprobante firmado en el encabezado.paymentInput.cryptoX402X-PAYMENT -
MPP— El protocolo de pagos automáticos (MPP). Reenvía laWWW-Authenticate: Paymentimpugnación del vendedor y el agente vuelve a intentar la solicitud con la credencial devuelta en el encabezado.paymentInput.mppAuthorization
Elige el paymentType que coincida con el protocolo que el comerciante usó en su 402 Payment Required respuesta. Para obtener más información sobre la solicitud y la respuesta x402, consulta Cómo pagar una solicitud de pago x402. Para obtener más información sobre la solicitud y la respuesta del MPP, consulta el desafío Pagar un MPP.
sugerencia
Puedes automatizar los pasos de esta página con la habilidad AgentCore Pagos del kit de herramientas para AWS agentes. Esta habilidad forma parte del complemento aws-agents y permite a un agente de codificación basada en inteligencia artificial crear tu gestor de pagos, conector, proveedor de credenciales, instrumento de pago y sesión mediante la agentcore CLI, y añadir una herramienta de procesamiento de pagos a tu agente. Para obtener más información, consulte la guía de inicio rápido y el kit de herramientas para agentes en AWS . GitHub
Hay cinco formas de invocar la API: ProcessPayment
ejemplo
Pague una solicitud de pago x402
Cuando un vendedor responde con una carga de pago x402 en su 402 Payment Required respuesta, tú reenvías esa carga a Payments y AgentCore AgentCore Payments devuelve un comprobante firmado. Copias la carga útil del comerciante y AgentCore Payments comprueba el presupuestopaymentInput.cryptoX402, firma la transacción con el monedero y devuelve el comprobante firmado. Adjuntas la prueba al X-PAYMENT encabezado y vuelves a intentar la solicitud original.
Solicitud y respuesta
Introduzca los siguientes campos enpaymentInput.cryptoX402:
-
version— La versión del protocolo x402 (por ejemplo,1o2). Obligatorio. -
payload— Los requisitos de pago x402 del vendedor, transmitidos como un objeto JSON. Aquí se especifican los camposschemenetworkmaxAmountRequired,asset,payTo, y otros campos de la402respuesta del vendedor. Obligatorio. -
permit2AllowanceLimit— La cantidad máxima que Permit2 puede conceder en la cadena, en la denominación más pequeña del activo. Opcional. Configúralo solo para el sistemaupto(medido), que se liquida mediante el contrato Permit2; suministrarlo para elexactsistema es un error de validación. Consulte la asignación de Permit2 para ver los pagos totales.
La respuesta devuelve los siguientes campos en: paymentOutput.cryptoX402
-
version— La versión del protocolo x402. -
payload— La prueba de transacción firmada, como objeto JSON. Adjúntelo alX-PAYMENTencabezado y vuelva a intentar la solicitud original.
Un status de PROOF_GENERATED indica que la transacción se firmó y que se incluye el comprobante de pago. paymentOutput
Esquemas
Una carga útil x402 se denomina a. scheme AgentCore payments admite los siguientes esquemas:
-
exact— Paga una cantidad fija especificada en la carga útil del comerciante. Este es el esquema predeterminado y no requiere la gestión de las asignaciones. -
upto— Paga una cantidad medida hasta un límite máximo. Este plan se liquida mediante el contrato de Permit2, por lo que el monedero del pagador debe haber otorgado una asignación a Permit2. Consulta la asignación de Permit2 para ver los pagos totales.
Asignación Permit2 para hasta pagos
El upto plan se liquida mediante el contrato Permit2, que transfiere fondos con. transferFrom El monedero del pagador debe conceder primero una ERC-20 asignación a Permit2, o la liquidación no se realizará por un error de precondición. Permit2-allowance Esta subvención sigue el mismo modelo de aprobación en cadena que cualquier aprobación directa de Permit2. Para obtener más información, consulte Uniswap Permit2
Para solucionar este problema, establezca permit2AllowanceLimit la asignación máxima en la denominación más pequeña del activo (por ejemplo, 1000000 = 1 USDC con 6 decimales). Para conceder una asignación ilimitada, pasa el uint256 valor máximo en forma de cadena:. 115792089237316195423570985008687907853269984665640564039457584007913129639935 Cuando configuras este campo, AgentCore Payments envía una approve transacción en cadena antes de firmarla. Esta transacción implica comisiones de red de cadena de bloques (gas) que se pagan con el saldo de fichas nativo del monedero.
Porque approve establece la asignación del monedero, en lugar de aumentarla, y permit2AllowanceLimit solo se establece cuando el monedero necesita ser aprobado (por ejemplo, su primer upto pago) para evitar una transacción redundante en cadena. Omite este campo para omitir por completo la gestión de las asignaciones. Este campo solo se aplica al upto esquema; introducirlo para el exact esquema constituye un error de validación.
El siguiente ejemplo procesa un upto pago y otorga una asignación de 1 USDC a Permit2. Puesupto, maxAmountRequired lleva el límite máximo que el comerciante anuncia en su 402 respuesta y extra.facilitatorAddress es el facilitador de la liquidación a partir de esa misma respuesta.
ejemplo
Limitaciones
-
El
permit2AllowanceLimitcampo solo es válido para eluptoesquema. Al suministrarlo para elexactesquema, se devuelve unValidationException.
Para ver los errores de validación de solicitudes de pago x402 y sus soluciones, consulte Errores de solicitudes de pago x402. Para ver los errores de procesamiento de pagos y sus soluciones, consulta Errores de procesamiento de pagos.
Paga un desafío de MPP
Cuando un comerciante devuelva una WWW-Authenticate: Payment impugnación en su 402 Payment Required respuesta, reenvíela textualmente. paymentInput.mpp AgentCore payments analiza la impugnación, comprueba el presupuesto, la firma con el monedero y devuelve un valor de encabezado listo para Authorization enviar. AgentCore payments se encarga del análisis de los encabezados, la decodificación de base64url y la firma, por lo que no es necesario que realices estas operaciones.
Solicitud y respuesta
Introduzca los siguientes campos en: paymentInput.mpp
-
version— La versión del protocolo MPP (por ejemplo,1). Obligatorio. -
wwwAuthenticateHeaders— El valor sin procesar delWWW-Authenticate: Paymentencabezado de la402respuesta del vendedor, aprobado textualmente. Proporciona exactamente un encabezado. Obligatorio. -
buyerPaysGasFees— Si se autoriza el pago de las tarifas de la red blockchain (gas) con cargo al monedero del comprador cuando el vendedor no las patrocine. Opcional. Se omite ofalsesignifica que el comprador se niega. Consulta la sección Consentimiento sobre las tarifas de red.
La respuesta devuelve los siguientes campos enpaymentOutput.mpp:
-
version— La versión del protocolo MPP. -
selectedPaymentId— Eliddesafío que suponía pagar AgentCore los pagos se repitió con el desafío de introducir datos para poder correlacionar el resultado sin necesidad de decodificar la credencial. -
paymentCredential— El valor delAuthorizationencabezado listo para enviar, en el formulario.Payment <base64url-token>Adjúntelo comoAuthorizationencabezado y vuelva a intentar la solicitud original.
importante
No decodifique ni modifique. paymentCredential Incluye el desafío original y la carga útil firmada, y el HMAC del vendedor se vincula a esos bytes exactos. Adjunte el valor devuelto.
El siguiente ejemplo procesa un desafío de MPP. Configura --payment-type "MPP" y reenvía el WWW-Authenticate: Payment desafío del comerciante literalmente en paymentInput.mpp.wwwAuthenticateHeaders (exactamente un encabezado).
ejemplo
Métodos y fichas
Un desafío del MPP nombra un pagomethod. AgentCore Para ello, Payments admite los siguientes métodoscharge:
-
evm— Solo el USDC canónico. El desafío debe incluir y.methodDetails.chainIdrealm -
tempo— Cualquier cadena de Tempo, seleccionada pormethodDetails.chainId, utilizando el USDC-equivalent token reconocido de la red. -
solana— Lasdevnetredesmainnety, solo con tarifas patrocinadas por el servidor.
La red blockchain del instrumento de pago debe coincidir con el método de verificación. La asistencia del proveedor depende del tipo de conector:
| Método | Coinbase CDP | Stripe (privado) |
|---|---|---|
|
|
Soportado |
Soportado |
|
|
Soportado |
compatible |
|
|
No compatible |
compatible |
Consentimiento sobre la tarifa de red
Las tarifas de la red blockchain (gas) son independientes del importe del desafío. Un desafío anuncia quién lo patrocina a través de su methodDetails.feePayer bandera:
-
methodDetails.feePayer=true— El vendedor patrocina las tarifas de la red.buyerPaysGasFeesno tiene ningún efecto. -
methodDetails.feePayer=falseo ausente: el comprador paga las tarifas de la red con el monedero de pago, además del importe del pago. Como ese coste no aparece en el importe del desafío, AgentCore los pagos solo firman si tú lo configurasbuyerPaysGasFees=true; de lo contrario, devuelve unValidationException. En el caso deltempométodo, este consentimiento es necesario siempre que el vendedor no patrocine las tarifas.
El evm método no necesita el consentimiento de los honorarios, ya que el facilitador difunde la transacción y paga el gas. En la actualidad, el solana método solo admite tarifas patrocinadas por el servidor.
Limitaciones
-
AgentCore Los pagos cumplen exactamente un desafío por llamada.
ProcessPaymentProporcione un solo encabezado enwwwAuthenticateHeaders. -
Solo se admiten los modos de
chargeintención y extracción. -
Los desafíos del MPP son efímeros. Si el desafío ha caducado, AgentCore los pagos se devuelven
ValidationExceptiony no consumen ningún presupuesto. Vuelve a solicitar el recurso pagado para obtener un desafío nuevo y vuelve a intentarlo.
Para ver los errores de validación de desafíos de MPP y sus soluciones, consulte Errores de desafío de MPP.
Integraciones con marcos
Para obtener la documentación de referencia completa, que incluye la gestión de errores, las opciones de configuración y las herramientas integradas, consulte Framework Integrations.
| Marcos | Tipo de integración | Referencia |
|---|---|---|
|
Plugin (basado en ganchos) |
Gestión de interrupciones, opciones de configuración, herramientas integradas |
|
|
Middleware (resume las llamadas a las herramientas) |
Reversiones de llamadas de error, listas permitidas, soporte asincrónico, opciones de configuración |