Saltar al contenido
Payment Emulator LabDocumentaciónEntrar a la consola
En esta página

Fidelidad y límites

Fidelidad del emulador de PayPal

Fidelidad del emulador de PayPal

3 min de lectura

Índice / Index · English

Original canónico: Fidelity — PayPal. Revisado el 2026-09-06 con llms/paypal/llm.txt y las especificaciones oficiales Orders v2 y Payments v2, importadas en contracts/paypal/ con URL, fecha y SHA-256. El estado implemented corresponde al subconjunto de pagos descrito aquí.

#Fuentes

#Qué se emula

  • OAuth POST /v1/oauth2/token con Basic y grant_type=client_credentials. Crear o rotar una aplicación devuelve una sola vez clientId, clientSecret y accessToken. Se conserva únicamente el resumen del token. Las aplicaciones anteriores deben rotar para obtener el nuevo par OAuth.
  • Crear y consultar /v2/checkout/orders. Sin fuente de pago, la orden empieza en CREATED; con payment_source.paypal, en PAYER_ACTION_REQUIRED.
  • Aprobar en /paypal/checkoutnow?token=...: cambia a APPROVED sin cobrar ni reservar dinero. El comercio captura después mediante /orders/{id}/capture o autoriza mediante /orders/{id}/authorize, según el intent original.
  • Consultar autorizaciones y capturas. Capturar una autorización mediante /v2/payments/authorizations/{id}/capture, o anularla mediante /void con respuesta 204 vacía. Una sola captura final, completa o parcial.
  • Devolver mediante /v2/payments/captures/{id}/refund con HTTP 201, importe individual e identificador propio. Repetir una clave idempotente no contabiliza de nuevo. Se validan moneda, estado, intent y aislamiento por comercio.
  • La orden sigue en COMPLETED después de devolver; la captura refleja PARTIALLY_REFUNDED o REFUNDED.
  • El SDK oficial 2.5.0 prueba OAuth, creación y captura. Su adaptador HTTP se configura para enviar todo al emulador porque el SDK fija los hosts; no se modifican autenticación, serialización ni lectura de respuestas del SDK.
  • Webhooks RSA-SHA256 con manifiesto documentado y CRC32. webhookSecret actúa como identificador local del webhook. /paypal/certs/paypal-test.pem sirve el certificado público de pruebas. Una prueba independiente usa Node crypto y CRC32 de zlib; el SDK no tiene verificador local. El verificador del emulador aplica una ventana configurable de 300 segundos.
  • Pantalla estrecha de revisión con identidad PayPal, tarjeta sintética, importe, aprobación y regreso al comercio. Conserva los parámetros de retorno y añade token y PayerID sintético. Cancelar vuelve sin anular la orden. No pide credenciales reales de PayPal.

#Qué no se emula

  • OAuth tiene tiempos y scopes simplificados. El token dura hasta la caducidad de la aplicación, su desactivación o rotación; no hay caducidad OAuth separada.
  • Una unidad de compra y una captura final. Faltan capturas múltiples, reautorización, marketplace, desglose de artículos, envío y PATCH de órdenes. Las opciones monetarias no soportadas se rechazan explícitamente.
  • No hay GET independiente ni historial de reembolsos como recurso. Se conservan contabilidad e idempotencia; no existen estados asíncronos de devolución.
  • Los webhooks contienen recursos mínimos. Faltan el cuerpo completo, la selección de eventos de devolución parcial, el registro de webhooks y el endpoint remoto de verificación. Certificado y clave privada son fixtures públicos de prueba, nunca material de confianza para producción.
  • El checkout es una simulación local. Sin login real, OTP, popup del SDK, postMessage, tokenización, Pay Later, Venmo, bóveda, suscripciones, facturas ni payouts. No se afirma igualdad visual con todas las variantes regionales.
  • Validación parcial y contabilidad sintética. Importar el OpenAPI no equivale a validar todo su esquema; comisiones y plazos siguen siendo configurables.
Payment Emulator Lab · RonuSoftwareMIT