Bueno llevo ya unos días dándole vueltas al tema y no consigo algo que a priori contaba que iban a ser un par de horas.
El objetivo es la implantación de una pasarela de pago en mi sitio. Ya me he puesto en contacto con el banco que me proporciona el servicio y en principio la comunicación con el software de éste está muy clara.
Mayormente, desde mi aplicación (en adelante "http") he de llamar a una url que me proporcionan (TPV) pasándole unos parametros por POST. Una vez ellos reciben estos parámetros, llaman a una url (https, pero del mismo domino que http) que les he de proporcionar para verificar que es mi sitio el que está realizando la petición. Desde mi url https les he de responder enviándoles la info que falta para realizar el pago (como por ejemplo el importe).
Es la primera vez que me veo en esto y he tenido que darle un par de vueltas antes de empezar con la comunicación. He encontrado la herramienta curl de php con lo que la llamada a la url del TPV ha sido relativamente fácil. En realidad, dado que todavía ando en testeo, TPV en realidad es un domino mio diferente del de la aplicación principal, que llama a https via curl.
La dificultad ha sido como recuperar información (disponible en http) desde mi url https. He realizado las siguientes pruebas, sin éxito:
1.- Desde https intentar recuperar por POST los valores que previamente he preparado para el TPV desde http. No están disponibles
1.1.-Desde https he realizado una llamada (via curl) a una php en http para ver si ésta sí tenía acceso a POST y me podía devolver los valores (via echo p.ej.). Al ejecutar esta nueva php, tampoco podía acceder a los valores guardados en POST previo a la llamada a TPV.
1.2.- Si desde http hago una llamada vía curl a https pasándole POST sí que recupera la info que le mande. Una vez se llama a la url externa (tpv) cuando ésta llama a la misma https ya no está disponible.
2.- Desde http guardar la info necesaria en una cookie y recuperarla desde https. No la puede leer. He jugado con los parámetros del método setcookie, para ver si encontraba la manera de que https accediera a la cookie (parámetros PATH="/", DOMAIN=".midominio.com", secure=false, httponly=false.....) y tampoco ha habido manera.
2.1.-Desde https he realizado una llamada (via curl) a una php en http para ver si ésta sí tenía acceso a la cookie y me podía devolver los valores (via echo p.ej.). Al ejecutar esta nueva php, tampoco podía acceder a la cookie.
Barajo la opción de, desde http, meter el valor en bd y recuperarlo desde https, pero me encuentro en la dificultad de que, dado el caso de que se produjeran dos peticiones simultaneas (cosa muy improbable, pero que no quiero dejar sin comprobar) no tengo manera desde https, de hacer una mínima distinción del registro de bd que me interesa.
Agradezco cualquier comentario al respecto, sea referente a las pruebas que ya he hecho o proponiendo cualquier otra solución, aunque no tenga nada que ver con las que ya he intentado. Lo único que no puedo modificar es el flujo de la comunicación http->tpv->https->tpv.
Muchas gracias por adelantado!