Comprobar la entrada pública
Declaración de capacidades del Facilitator:facilitator, supportedKinds y los endpoints del protocolo, indica que los metadatos de capacidades funcionan correctamente. El descubrimiento de recursos de API ha sido retirado; llama directamente a la API de destino y toma como referencia la respuesta 402 en tiempo real.
Capacidades compatibles con el Facilitator:
kinds, indica que la entrada del Facilitator funciona correctamente.
Comprobar accepts de 402
Envía una solicitud no autenticada que no genere cargos:
accepts devuelto contiene la red que deseas utilizar. network es un identificador CAIP-2:
eip155:8453+exact(Base)eip155:8453+upto(Base, medición posterior)eip155:1187947933+exact(SKALE)solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp+exact(Solana)
Ejecutar las herramientas avanzadas de validación de X402Client
El repositorio X402Client proporciona herramientas avanzadas de validación que pueden utilizarse para confirmar la selección de respuestas 402, la generación de firmas, el paid retry y el settlement on-chain. Requieren una wallet con fondos, RPC, clave privada y dependencias de desarrollo. Para la integración habitual de negocio, se recomienda priorizar el uso del SDK de TypeScript o Python; ejecuta estas herramientas solo cuando necesites localizar problemas de firma o liquidación on-chain. Dirección del repositorio: https://github.com/AceDataCloud/X402Client- La respuesta 402 de la primera solicitud.
- El payment requirement seleccionado.
- El resumen de
PAYMENT-SIGNATUREdespués de la firma. - El estado HTTP y el cuerpo de la respuesta después del reintento.
- La transacción de settlement on-chain o, en caso de fallo, la causa del error del Facilitator.
PAYMENT-SIGNATURE completos a sistemas de logs o tickets.
Ejemplo de resultados de validación de API pública:
- SKALE
exact, Baseexact, Solanaexacty Baseuptocompletaron todos el paid retry de HTTP 402 a HTTP 200. - La transacción on-chain de SKALE
exactya puede consultarse en el explorer de SKALE, y el importe de liquidación es0.095215USDC. - La transacción on-chain de Base
exactya puede consultarse en BaseScan, y el importe de liquidación es95215atomic USDC. - El límite de firma de Base
uptoes95215atomic USDC, pero el settlement on-chain real es3atomic USDC, lo que indica que la medición posterior cobra según el uso real. - La ruta de Solana ha confirmado el paid retry y la salida del modelo. El RPC público puede tener limitación de tasa; cuando se requiera una conciliación on-chain estricta, utiliza tu propio RPC de Solana o confirma la firma de la transacción mediante los registros de liquidación de la plataforma.
SDK smoke test
Las herramientas avanzadas de validación se utilizan para comprobar firmas y liquidación on-chain. El lado de negocio también debe ejecutar un SDK smoke test para confirmar que el código de la aplicación puede manejar automáticamente 402 mediante el payment handler. A continuación solo se muestran los fragmentos principales; el código completo debe completar la wallet, el provider y los import. TypeScript:exact. Actualmente SKALE solo proporciona exact, que se liquida por el importe fijo cotizado en 402 y no se reduce según el uso real de tokens. La finalización de chat pertenece a un escenario medido por tokens; para la integración formal se recomienda usar Base y pasar preferScheme: 'upto', liquidando según el uso real.
Resultado de ejecución del programa del smoke test del SDK:
- El SDK de TypeScript procesa automáticamente 402, la firma y el reintento mediante
createX402PaymentHandler, y finalmente obtieneADC_TS_SDK_X402_OK. - El SDK de Python completa el mismo flujo mediante
create_x402_payment_handler, y finalmente obtieneADC_PY_SDK_X402_OK. - Ambos smoke tests usan el payer de SKALE
0xd0479FA9FD8C678303d477433d24C15e3723CC1C. - El objeto devuelto por el SDK de Python es un
dict; en el ejemplo se puede usarres["choices"][0]["message"]["content"]para leer el contenido.
E2E de pago de pedidos
El pago de pedidos utiliza la API de plataforma deplatform.acedata.cloud y requiere un token de cuenta de plataforma. El flujo completo es: crear un pedido Pending, POST /api/v1/orders/{order_id}/pay/ activa 402 y luego reintentar con PAYMENT-SIGNATURE.
Ejemplo de resultado de verificación de pago de pedido de importe pequeño:
Los siguientes registros de transacciones son muestras históricas verificadas bajo la política anterior; los importes y hashes de transacción se conservan sin cambios. Los nuevos pedidos X402 ya no tienen descuentos por método de pago; use el amount de la respuesta 402 actual como base para la firma y el pago.
- Después de crear el pedido, el estado del pedido es
Pendingy el precio es1.26. - La primera solicitud
pay/devuelve HTTP 402; enacceptsestán Baseexacty Solanaexact, ambos con un importe de1200000atomic USDC. - Después de reintentar con Base
PAYMENT-SIGNATURE, devuelve HTTP 200, el estado del pedido cambia aFinishedypay_wayesX402. - Después de decodificar
PAYMENT-RESPONSE, muestrasuccess=True,network=basey proporciona el mismo hash de transacción. - En BaseScan, el estado de la transacción es
1, el importe de transferencia es1200000atomic USDC, es decir,1.2USDC. - El precio de creación
1.26se pagó durante la política anterior de descuento de pagos X402, y el importe final firmado y liquidado fue1.2USDC.
Authorization: Bearer {platform_token}, o el pedido no pertenece a la cuenta actual, fallará en la capa de permisos de la plataforma; esto es diferente de llamar directamente a la API X402 sin cuenta de x402.acedata.cloud.
Errores comunes
Lista de verificación de Base upto
Actualmente upto solo se proporciona en Base (eip155:8453). SKALE solo proporciona exact. Dado que la firma de upto vincula más parámetros de EVM typed data, durante la integración se debe confirmar especialmente que los campos en tiempo real de la respuesta 402 y la firma del cliente sean completamente coherentes.
upto devuelve invalid_upto_evm_payload_invalid_signature, compruebe primero:
- El
extra.chainId(debe ser8453) en la entradaeip155:8453+uptodevuelta por la API. - El
extra.facilitatorAddressdevuelto por la API. - La dirección del facilitator Base
uptodevuelta porhttps://facilitator.acedata.cloud/supported. - El dominio Permit2, spender, contrato USDC y cuenta de firma.
- Si el monedero ya hizo approve de Base USDC para Permit2.
upto vincula simultáneamente el dominio Permit2, chain ID, spender, dirección de cobro, dirección del facilitator y validAfter. Si cualquier elemento no coincide, el Facilitator recuperará un signer incorrecto y devolverá una firma inválida. Si todos estos elementos coinciden pero aún devuelve 402, el siguiente paso es comprobar el allowance de Permit2; si no está autorizado, devuelve PERMIT2_ALLOWANCE_REQUIRED.
Guardar información de verificación
Una validación completa debe guardar al menos:- la ruta de la API y el resumen del cuerpo de la solicitud;
- la
networky elschemeseleccionados; maxAmountRequired;- la dirección de la billetera del pagador;
- el estado final de HTTP;
- la salida del modelo o el ID de tarea en la respuesta;
- el enlace de la transacción de liquidación;
- el ID de rastreo del Gateway o el ID de registro de uso de la plataforma.
PAYMENT-SIGNATURE completo, firmas EIP-712 completas ni frases mnemotécnicas.
Errores de pago estructurados
Los fallos X402 después de firmar devolverán uncode estable, parámetros de interpolación seguros, fase e indicador de reintento en extensions.acedatacloud.paymentError. Priorice el uso de esta estructura para investigar, no analice el error en inglés de nivel superior, ni solicite al usuario que proporcione firmas de billetera o el texto original de simulaciones en cadena.
charged: false: la validación rechazó explícitamente antes de la liquidación; no se inició ningún cobro esta vez.- Sin
charged: el resultado es desconocido o ya ha entrado en la fase de liquidación; primero consulte el pedido y el estado en cadena, está prohibido repetir directamente el pago. settlement_pending: no repita el pago por ahora; primero actualice el pedido o contacte con soporte.- Código no reconocido: trátelo como
payment_failed, y conserve el código técnico público para que el servicio de atención al cliente pueda buscarlo.

