/verify y /settle del Facilitador.
La dirección del Facilitador de producción de Ace Data Cloud es:
Convenio v2 wire
El enlace X402 de Ace Data Cloud ha adoptado completamente la versión oficial x402 v2, y ya no acepta el encabezado de solicitudX-Payment de la v1. Al integrarse, se deben tener en cuenta tres puntos:
- El encabezado de solicitud es
PAYMENT-SIGNATURE, y su valor es un envelope JSON codificado en base64. - El nivel superior del envelope debe ser
x402Version: 2, y debe declarar elschemeynetworkseleccionados mediante el objetoaccepted. networkutiliza la identificación CAIP-2 (por ejemplo,eip155:8453), no se pueden usar abreviaturas comobase.
PAYMENT-REQUIRED, cuyo valor es la codificación en base64 del mismo contenido del desafío, facilitando que el cliente lea los requisitos de pago sin necesidad de analizar el cuerpo.
Interfaz principal
GET /supported
Ver redes y schemes soportados:
networkutiliza la identificación CAIP-2, no abreviaturas comobase,skale./supportedindica que el Facilitador tiene la capacidad de verificación y liquidación correspondiente.- Base, SKALE y Solana soportan
exact;uptoactualmente solo está disponible en Base. signersson las direcciones que el Facilitador utiliza para enviar transacciones de liquidación.- Si una API específica permite estas opciones, se regirá por el
acceptsde esa API 402.
POST /verify
Verifica si el PAYMENT-SIGNATURE enviado por el cliente cumple con un requisito de pago determinado.
Cuerpo de la solicitud:
paymentRequirements de la v2 incluye scheme, network, asset, amount, payTo, maxTimeoutSeconds y extra, siendo el campo de monto amount. La respuesta API 402 también devolverá maxAmountRequired en accepts[] para que el cliente lea el límite, pero no es un campo del cuerpo de solicitud del Facilitador.
Respuesta exitosa:
PAYMENT-RESPONSE de un pago de orden de producción, al ser decodificado, contiene el resultado de la liquidación. Resultado de la ejecución del pago de orden en Base:
success=Trueindica que la liquidación del Facilitador fue exitosa.transactiones el hash de la transacción en la cadena, elpay_idde la orden también se escribe con el mismo valor.- En el explorador se puede ver la transferencia de
1200000atomic USDC de Base USDC. errorReason=Noneindica que esta liquidación no devolvió errores de negocio.
isValid será false. El lado de negocio debe leer invalidReason, en lugar de solo mirar el código de estado HTTP.
POST /settle
Realiza la liquidación en la cadena de autorizaciones que ya han sido verificadas.
El cuerpo de la solicitud es básicamente el mismo que el de /verify. La diferencia con upto es que: paymentRequirements.amount se reescribe como el monto real de liquidación; el límite de firma es registrado por el Facilitador en la fase de verificación, y al liquidar se verifica que el monto real no exceda ese límite.
Respuesta exitosa:
upto es 0, transaction puede ser una cadena vacía, lo que indica que no es necesario realizar una transacción en la cadena.
Cómo usar el Facilitador en Ace Data Cloud Gateway
El flujo del API Gateway de Ace Data Cloud es el siguiente:- El cliente realiza la primera solicitud al API, sin incluir
AuthorizationyPAYMENT-SIGNATURE. - El Gateway calcula el precio estimado de la solicitud y devuelve 402 y
accepts. - El cliente firma y vuelve a intentar con
PAYMENT-SIGNATURE. - El Gateway decodifica
PAYMENT-SIGNATUREy selecciona el requisito de pago correspondiente. - El Gateway llama al Facilitador
/verify. - Una vez que
/verifyes exitoso, el Gateway permite la solicitud al API objetivo. - Después de que el API objetivo responde, el Gateway llama al Facilitador
/settleen la fase de/record. - El Gateway escribe el hash de la transacción en la cadena en los metadatos de uso.
exacten el paso 7 liquida el monto de la firma;uptoen el paso 7 escribeamountsegún el uso real, luego liquida el monto real.
Cómo integrar tu propia API
Si deseas que tu propia API soporte X402, puedes implementar la siguiente estructura:- Prepara
paymentRequirementspara cada interfaz de pago, que incluya red, monto, dirección de recepción, dirección de activos y dominio de firma. - Si la solicitud no tiene
PAYMENT-SIGNATURE, devuelve HTTP 402 yaccepts. - Si la solicitud tiene
PAYMENT-SIGNATURE, decodifica en Base64 para obtenerpaymentPayload. - Llama a Facilitator
/verify. - Ejecuta la lógica de negocio después de una verificación exitosa.
- Después de que la operación sea exitosa, llama a Facilitator
/settle. - Guarda
payer,transaction,amount,networkpara conciliación.
paymentRequirements para llamar a /verify y /settle, no confíes en los montos, direcciones de recepción o direcciones de activos devueltas por el cliente.
Protección contra reproducción
Facilitator registrará el nonce. La autorización con el mismo nonce no puede ser verificada y liquidada nuevamente. Esto significa:- El cliente debe firmar un nuevo envelope en cada solicitud;
- Si
/settleha enviado la transacción pero aún no ha sido confirmada, se puede reintentar/settlecon el mismo nonce para hacer una conciliación idempotente; - No caches el mismo
PAYMENT-SIGNATUREpara usarlo en múltiples llamadas a la API.

