Recientemente he tenido que configurar un TPV Virtual de BBVA y ha tenido sus más y sus menos, la programación era en PHP y no ha sido dificultad en sí de programación si no de entendimiento del manual para hacerlo correctamente, me explico, para empezar hay que saber que no dan asesoramiento alguno a programadores, se limitan a soltarte un manual y que tú te apañes como puedas, si tienes dudas te buscas la vida, no hay nadie que te ayude, por otra parte, decir que tardan mucho en responder y en activar el sistema, al parecer hay muy pocos trabajadores en esa sección.
Pues bien, básicamente como todos los TPV Virtuales hay una dirección a la que debes pasar unos parámetros por POST, con el número de comercio, importe, … y en este caso firmado y cifrado, hasta aquí sin problemas, el problema venía en la respuesta del TPV lo cual normalmente tú indicas la dirección del fichero que va a recibir dicha respuesta para procesarla y en este caso también sólo que añade la opción de otra dirección a la que ir cuando finalice la transacción que es opcional.
Tras configurarlo y empezar con las pruebas resulta que el fichero que debe recibir la respuesta por GET no lo hace, es decir, no recibe nada, tras hacer diversas pruebas y no obtener resultados volvemos a leer el manual con detenimiento para encontrar la posible solución y ahí estaba en el siguiente párrafo:
La notificación de dicha respuesta se hace de forma ‘directa’ (no a través del navegador), ejecutando la página de notificación del comercio. En dicha ejecución se hace una petición de tipo GET donde se pasa un parámetro denominado petición que contiene el mensaje en formato XML con los datos de la respuesta.
Bien pues la respuesta efectivamente la recibe el caso es que cuando acaba la operación el TPV siempre te manda a la dirección configurada en el parámetro urlredir que aún siendo opcional es necesario ponerla ya que si no al terminar la operación del TPV este cierra la ventana y no me parece una forma correcta de finalizar una operación de pago en una tienda ya que creará inseguridad al usuario en cuestión. De esta forma ¿cuándo se llama a la urlcomercio que es la dirección encargada de recibir la respuesta?, pues cuando se hace el pago y éste se valida se hace esta llamada en segundo plano, por tanto, para poder procesar la respuesta no queda más remedio que almacenar la respuesta que se recibe en alguna parte, bien en base de datos o en un fichero temporal para más tarde cuando se llame a urlredir poder procesarla comprobando así si el pago ha sido válido o no, actualizar el pedido correspondiente y nofiticar al usuario que todo ha ido bien.
Hola Rodrigo, está bien como lo planteas, pero yo casi mejor el id del pedido lo rescataría con el identificador que viene en la url_ok o cancel ya que a veces al cambiar entre la tienda y el tpv la sesión desaparece, de esa forma evitas posibles errores.
Hola.
Es dificil encontrar informacion sobre esta terminal y demas esta decir el pesimo soporte a desarrolladores, no se en que estaban pensando.
Me preocupa que menciones que no llega, para el colmo estos tipos no tienen una cuenta de pruebas, osea tiene que funcionar bien a la primera porque son transacciones reales, que mal.
El punto es que yo estoy confiado sengun el manual que tengo, a que me llega en la merchantUrl (lo que tu llamas urlcomercio) el id de la transaccion, ya que «facilitan» el campo merchanData un campo opcional y libre en donde coloco el id del pedido y con eso se supone que al llegar la respuesta al merchantUrl puedo recibir ese dato y saber si tubo exito o no. El problema es como lo mencionas, si esta respuesta se da en segundo plano, incluso aun antes de que se redireccione al cliente en la url_ok o url_cancel ¿Como saber o darle la certeza al cliente de que concluyo o fallo su compra?
Pues como lo mencionas, parece que no queda mas remedio que validar doblemente, yo lo que pienso hacer es que por medio de una variable de sesion almacenar el pedido que esta siendo procesado en ese momento por el cliente, cuando el cliente salga del sitio y realice el pago en la tpv y finalmente este sea redireccionado ya sea al url_ok o al url_cancel al terminar, entonces al ser reanudada la sesion tomo la variable de sesion (pedido) y leo en la base de datos el estatus del pedido, que previamente sera modificada por la llamada en segundo plano en la merchantUrl a la que le llega el campo merchantData con el id del pedido y ya sea que fallo o tubo exito es como responde al cliente, para el caso de la url_cancel no tiene mucha complejidad solo es mostrar al cliente que la transaccion fallo, aqui se supone que la llamada en la merchantUrl tambien fallo.
Que me recomiendas.
Por cierto felicidades, gracias por hacerme sentir que no estoy solo 🙂
Saludos.
hola otra vez
He encontrado otro articulo muy completo sobre pasarelas de pago con BBVA en esta direccion:
http://siciliangirl.blogspot.com.es/2008/12/crear-una-pasarela-de-pago-con-bbva.html
Hola Javier, el mes pasado monté otro TPV del BBVA y han cambiado bastantes cosas, a parte de en el funcionamiento, la documentación ahora está mucho más clara y sobre todo hay un teléfono de soporte técnico que antes no había y puedo confirmar que te atienden rápido y te solucionan las dudas o problemas sobre la marcha, en este aspecto es lo que más han mejorado porque antes te tenías que buscar la vida y la documentación era de pena.
hola.
Hay un documento de ayuda del propio banco a nuestra disposición en la dirección:
Documento
https://www.bbva.es/estaticos/mult/TPV-Virtual-Guia-de-Comercios.pdf
Hola.
Podías hacer un tutorial con todo lo aprendido sobre este tema del TPV.
Así podíamos ahorrarnos los demás tanto disgusto y trabajo
Gracias.
Saludos, hace poco se me contrato para integrar un sistema de donaciones con el TPV de BBVA, el asunto es que no estoy muy familiarizado con el servicio y no hay mucha documentación exacta. Será que me puedas facilitar la documentación considerando que no tengo acceso directo y los tipos de soporte de BBVA no me han contestado aún y necesito tenerlo listo lo más pronto posible.
Hola Tec_Cet, el manual lo puedes encontrar dentro del TPV, en Documentación, Descarga de manuales, según el tipo de implementación que vayas a realizar te hará falta uno u otro.
Hola Moises Varela, soy de México y enserio que es dificil encontrar información hacerca de la correcta configuracion de la TPV virtual de bancomer. No he encontrado el manual que mencionas, tengo uno pero digamos que no es muy preciso que digamos, (no viene detallada la información).
PASAME EL LINK PARA EL MANUAL!!! PORFAVOR !!!