Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

111
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda