Bueno dias,
he leido bastante en este y en otros foros pero no consigo encontrar el porque de mi fallo. Les cuento por si alguno supiera ayudarme.
Estoy creando un TPV con el BBVA. Todo esta desarrollado correctamente. Me hace perfectamente los cobros cuando tiene que hacerlos y los evita cuando la tarjeta introducida es erronea. Una vez realizada o no la compra me manda a la url que le indico sin problemas, sin mostrandome ningun error por pantalla. Ahora viene mi problema.
Una vez que ya se ha realizado con o sin exito la operacion mi aplicacion deberia de modificar la base de datos. Para ello queria utilizar $coderror que viene definido en la variable 'peticion' que nos devuelve el banco codificada en XML. Pero esto es lo que no consigo rescatar y por tanto no puedo saber si la operacion se realizo con o sin exito.
En el archivo que hace la llamada al TPV es pago_redir_f.php y el trozo del codigo donde defino la variable peticion
function enviaPeticion(){
var peticion;
document.envio.idterminal.value="<?= $idterminal ?>";
document.envio.idcomercio.value="<?= $idcomercio ?>";
document.envio.moneda.value="<?= $moneda ?>";
document.envio.urlcomercio.value="<?= $urlcomercio ?>/registro/notificacion_centro_f.php";
document.envio.localizador.value="<?= $localizador ?>";
document.envio.firma.value="<? echo sha1($idterminal.$idcomercio.$idtransaccion.$impor te_formateado.$moneda.$localizador.$palabra_sec) ?>";
peticion="<tpv><oppago>";
peticion+="<idterminal>"+document.envio.idterminal .value+"</idterminal>";
peticion+="<idcomercio>"+document.envio.idcomercio .value+"</idcomercio>";
peticion+="<idtransaccion>"+document.envio.idtrans accion.value+"</idtransaccion>";
peticion+="<moneda>"+document.envio.moneda.value+" </moneda>";
peticion+="<importe>"+document.envio.importe.value +"</importe>";
peticion+="<urlcomercio>"+document.envio.urlcomerc io.value+"</urlcomercio>";
peticion+="<idioma>"+document.envio.idioma.value+" </idioma>";
peticion+="<pais>"+document.envio.pais.value+"</pais>";
peticion+="<urlredir>"+document.envio.urlredir.val ue+"</urlredir>";
if (document.envio.localizador.value != "")
{
peticion+="<localizador>"+document.envio.localizad or.value+"</localizador>";
}
peticion+="<firma>"+ document.envio.firma.value +"</firma>";
peticion+="</oppago></tpv>";
document.envio.peticion.value = peticion;
document.envio.action="<?= $urltpvmodserv ?>";
document.envio.method="post";
document.envio.submit();
}
</script>
He probado rescatar la variable tanto por GET como por POST en la url de respuesta que le indico al TPV. Intentar guardarla en un fichero. El caso es que no recibo nada.
Tambien hice una modificacion en 'peticion' para forzar el fallo, y si que me mostro que no se estaba enviando correctamente. Por lo que creo descartar que este enviandole mal 'peticion' ( o me equivoco??)
Cuando la operacion es correcta o denegada, en la pagina del TPV, el link que aparece solo muestra los parametros idtransacc y idcomercio mediante GET tal que ....<a href="resultado_pago_f.php?idtrans..... >. No se aprecia nada que pueda indicar que se envian otros parametros.
Estoy siguiendo los nombres de archivos que utiliza el BBVA en sus ejemplos (notificacion_pago_f.php, pago_redir_f.php, resultado_pago_f.php etc) No entiendo muy bien cuando se usa 'resultado_pago_f.php' y cuando 'notificacion_pago_f.php'
AYUDAAA!!
MUCHAS GRACIAS FORO!!
PD: Lamentable el servicio/informacion que da BBVA.