No sé con qué tpv habrás trabajado pero, normalmente, éstos tiene un método de notificación de pago asíncrono. Tú les pasas una url y ellos envían la notificación a esa url.
Por otro lado, deberías guardar el pedido antes de pasar el tpv virtual para evitar eso que comentas (que cierren el navegador antes de volver a tu página).
Un saludo