Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

106
Vistas
Cómo evitar alteraciones del carrito de compras en otra pestaña cuando ya se ha creado la intención de pago

¿Alguien ha encontrado una solución a esto ? Parece que he llegado a la misma conclusión sin solución.

Si tuviera que ir a la página de pago de mi aplicación, la intención de pago se crea en el backend (se explica el proceso a continuación). Entonces, no después de que se crea payIntent, si abro una nueva pestaña y voy al menú y agrego un nuevo elemento de menú, firestore mostrará el nuevo total (correcto), pero dado que se crea la intención de pago, stripe cobra el total anterior (incorrecto) .

lo que estoy haciendo es

  1. Cada vez que se carga la página, envío una solicitud GET a mi backend que verifica la identidad del usuario (usando firestore/firebase).

  2. Comprueba si hay un intento de pago (los intentos de pago se almacenan en firestore correspondientes al usuario)

  • A. si payintent no existe en el usuario, cree uno
  • B. si payintent existe, recupere payintent de stripe y verifique si .status===tuvo éxito. SI ha tenido éxito, cree uno nuevo y, si no ha tenido éxito, actualice el anterior. El monto de todos los intentos de pago se calcula usando el total en firestore

(y ofc si el carrito de los usuarios está vacío, no se crea una intención de pago)

  1. Envíe de vuelta a la interfaz payInent.clienSecret y artículos del carrito para completar la página

  2. Desde el front-end usando elementos de rayas y confirmPayment confirme el pago

(usando ngrok, la página se carga en aproximadamente 800-1200 ms, así que no está tan mal, creo)

Las posibles soluciones son el uso de webhooks, cuando payintent está procesando, verifique y actualice el precio, pero parece una solución con cinta adhesiva (si es que funciona). O usar webhooks cuando el pago se ha realizado correctamente, actualizar el pago, de nuevo parece una solución de cinta adhesiva (si es que funciona).

EDITAR: posible solución 3 cofirmPayment en el back-end pero de acuerdo con la documentación que elimina la autenticación 3ds, que es la razón por la que estoy haciendo confirmPayment en el front-end de todos modos

SOLUCIÓN: la pieza que falta es que debe actualizar el monto de la intención de pago cuando se agrega algo a su carrito. Una vez que agregue eso, creo que eso resolverá su problema.

Entonces, una función para crear la intención de pago y actualizar la intención de pago (cuando ya hay una intención de pago creada) al agregar al carrito. Y luego una última actualización de PaymentIntent en la página de pago cada vez que eliminen un artículo o si editan el artículo.

gracias justin miguel

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No estoy seguro de entender completamente tu pregunta. Si confirma una Intención de pago del lado del cliente utilizando su secreto de cliente, la Intención de pago intentará cobrar el amount actual establecido en él. Stripe nunca utilizará una cantidad anterior o "antigua".

En cuanto a una solución, le recomiendo que recupere la Intención de pago del lado del cliente usando Stripe.js cuando su cliente haga clic en su botón "pagar" y vea si el amount establecido actualmente en la Intención de pago coincide con lo que está mostrando actualmente. a ellos. Si no coincide, cancele el proceso de pago, actualice su estado del lado del cliente en función de la última versión de la Intención de pago que acaba de recuperar, solicite al cliente que confirme el nuevo monto y pídale que haga clic en "pagar" nuevamente.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda