PAYMENT-SIGNATURE, y luego reintenta con la misma solicitud.
La diferencia es que el pago de pedidos pertenece a la API de la plataforma y requiere un token de cuenta; mientras que la llamada directa a la API de IA de x402.acedata.cloud puede usar solo X402, sin necesidad de un API Token.
Preparar el pedido
Accede a la consola de Ace Data Cloud, selecciona el pedido que necesitas pagar y registra el ID del pedido. Si aún no tienes un pedido, puedes crear un pedido pendiente de pago en la página de planes. El precio del pedido se basa en lo que muestra la página, y elamount de la respuesta X402 402 es la base final para la firma.
Crear un token de cuenta
Las solicitudes de pago de pedidos requieren un token de cuenta. Abre la página de Token de la plataforma y crea un token con formatoplatform-v1-....
Las solicitudes posteriores usan:
Activar 402
Primero envía una solicitud sinPAYMENT-SIGNATURE:
accepts:
x402Version es 2, network usa el identificador CAIP-2 y el campo de importe es amount.
Resultado de ejecución del programa al crear un pedido de 10 Credits y activar 402:
Los siguientes registros de transacciones son muestras históricas probadas bajo la política anterior; el importe y el hash de transacción se conservan tal cual. Los nuevos pedidos X402 ya no tienen descuentos por método de pago; usa el amount de la respuesta 402 actual como base para la firma y el pago.
- Después de crear correctamente el pedido, el estado es
Pending; en este momento aún no hay pago en cadena. - La primera solicitud
pay/no llevaPAYMENT-SIGNATURE, por lo que devuelve HTTP 402. acceptsproporciona simultáneamente Baseexacty Solanaexact; este tutorial elige Base posteriormente.- El precio al crear el pedido es
1.26; al pagar durante la antigua política de descuentos de pago X402, el importe real de firma y liquidación fue1.2USDC, correspondiente a1200000atomic USDC.
resource es un campo devuelto por el servidor y que participa en la firma; el cliente no debe reescribir por sí mismo el protocolo, la ruta ni el ID del pedido incluidos en él.
Firmar y reintentar
El pago de pedidos puede reutilizar las funciones de firma de bajo nivel de@acedatacloud/x402-client o acedatacloud-x402. A continuación se muestra un ejemplo de TypeScript:
exact:
status 200indica que la interfaz de pago de pedidos de la plataforma aceptó estaPAYMENT-SIGNATURE.has_x_payment_response Trueindica que el encabezado de respuesta contiene un reciboPAYMENT-RESPONSEcodificado en Base64.settle_header.success=Trueynetwork=baseindican que el Facilitator ha completado la liquidación de Base.- El estado final del pedido es
Finished,pay_wayesX402, ypay_idescribe el hash de la transacción en cadena. - El evento
Transferen BaseScan muestra que la dirección pagadora transfirió1200000USDC atómicos a la dirección receptora de la plataforma, es decir,1.2USDC.
Respuesta exitosa y recibo
Después de que el pago del pedido se realiza correctamente, el cuerpo de la respuesta contiene la información del pedido. La plataforma también llevará en el encabezado de respuestaPAYMENT-RESPONSE una respuesta de liquidación codificada en Base64; después de decodificarla, los campos comunes incluyen:
Si necesitas realizar conciliación, se recomienda guardar simultáneamente el ID del pedido, la dirección de la billetera pagadora,
transaction y el estado final del pedido.
Consideraciones
- El pago del pedido requiere el token de cuenta de la plataforma, no puede completarse solo con la firma de la billetera X402.
amountusa unidades atómicas de USDC,1200000representa1.2USDC.- No construyas por tu cuenta la dirección receptora ni la dirección del activo; prevalece
acceptsen la respuesta 402. - Si la misma
PAYMENT-SIGNATUREse envía repetidamente, el Facilitator realizará protección contra repeticiones según el nonce.
Respuesta de fallo de pago
El primer HTTP 402 sinPAYMENT-SIGNATURE es un desafío de pago normal y no representa un fallo de pago. El fallo de verificación o liquidación después de la firma aún conserva la cadena estándar error como respaldo de compatibilidad, y devuelve una estructura de error estable en extensions.acedatacloud.paymentError:
code; los códigos desconocidos deben volver al fallo de pago genérico. charged es un campo de tres estados: solo devolverá explícitamente false cuando se rechace antes de la liquidación; la ausencia del campo indica que el estado del cobro es desconocido y no puede interpretarse como “no cobrado”. Después de que el pedido actual entra en Failed, no se puede reintentar el pedido original; crea un nuevo pedido después de corregir el problema de la billetera.
No registres ni envíes la PAYMENT-SIGNATURE completa, la firma de la billetera, el payload de autorización, los diagnósticos originales del Facilitator ni las respuestas RPC. Para la investigación del servicio de atención al cliente solo se necesitan el ID del pedido y el code de error público.
