extjs - sencha framework
¿Cómo integrar la puerta de enlace de pago en aplicaciones creadas utilizando frameworks de JavaScript como ExtJs? (1)
Nuestra aplicación es una aplicación de una página creada utilizando ExtJs. Para cualquier acción del usuario, la pestaña del navegador nunca se recarga y todas las acciones se realizan usando ajax. Un usuario puede abrir / cerrar múltiples ventanas / paneles ExtJs dentro de la misma pestaña del navegador, y de esta manera todo permanece confinado a la misma pestaña del navegador.
Ahora, debemos integrar la pasarela de pago en la aplicación, lo que implica redirigir al usuario al sitio web del banco y hacer que vuelva a nuestra aplicación.
El problema es que cuando el navegador redirige al usuario, se destruyen todos los códigos de JavaScript de la aplicación junto con los paneles y las ventanas, y cuando el usuario vuelve a la aplicación, descubre que es diferente de la que dejó.
Como solución a esto, pensamos utilizar los siguientes dos appraoches:
Opción 1. Mantener el estado de la aplicación : cuando el usuario se va al sitio web del banco, de alguna manera mantenemos el estado de la aplicación, como qué ventanas se abren con qué datos, qué variables tienen qué valores, etc. y cuando el usuario regresa, generamos el mismo estado de aplicación para ella.
Opción 2. Tener una ventana emergente del navegador para la puerta de enlace de pago : pretendemos proporcionar un botón que abrirá una pequeña ventana emergente con los detalles de la transacción, y en esta ventana emergente todo el proceso de la pasarela de pago se realizará tomando cuidado de la redirección y todo.
La opción 1 está demostrando ser muy engorrosa y complicada ya que mantener el estado exacto no es factible.
Para la Opción 2, no estamos seguros de si esto es seguro y posible.
¿Alguien ha implementado dicho enfoque antes? De lo contrario, ¿cuáles son las otras opciones que podemos elegir?
Gracias por cualquier ayuda de antemano.
Enfrenté el problema y lo implementé usando websocket / polling en la aplicación principal, mientras que aparece una nueva ventana para el pago.
Después de que el pago sea exitoso, la aplicación principal será notificada.
De esta forma, cada pago se ejecuta en su propio entorno totalmente independiente de la aplicación principal, lo que hace que el mantenimiento sea bastante sencillo. Tenga en cuenta que nuestro back-end crea una nueva sesión para cada pago utilizando la existente.
Creo que no es raro abrir nuevas ventanas para el pago, por eso decidí hacer esto.