Ir al contenido
DocuGraph

ecommerce-angular-spring

US-05 Realizar checkout y pago

Como cliente, quiero pagar mi carrito con tarjeta o Yape, para completar la compra.

  • Dado un carrito con ítems válidos y sesión activa, cuando inicio checkout, entonces se crea una preferencia Checkout Pro (createPaymentIntent), se devuelve el init_point en clientSecret, y la orden queda en PENDING_PAYMENT (BE-05).
  • Dado un pago aprobado en Mercado Pago sandbox (tarjeta de prueba o Yape), cuando llega mercadoPagoWebhook, entonces la orden pasa a PAID (BE-07 consume checkout.PaymentSucceeded).
  • Dado un pago rechazado, cuando llega el webhook de fallo, entonces la orden pasa a CANCELLED y las reservas de stock se liberan (BE-06 / BE-07).
  • Dado un webhook repetido con el mismo event_id, cuando se procesa, entonces no se duplica la orden ni el pago.
  • Dado un checkout sin stock, cuando se intenta, entonces recibe 409 ProblemDetail antes de crear el pago.
  • Credenciales live / producción y múltiples divisas.
  • Yape viaja dentro de Checkout Pro, no como integración aparte.
  • Módulos checkout, orders, inventory; operationIds createPaymentIntent, mercadoPagoWebhook; puerto PaymentGateway (DS-02, DS-03, ADR-05).