Si esta instalado el módulo de SEF JOOMSEF en Joomla, es posible que la dirección de respuesta de los pagos no funcione. Yo lo he solucionado modificando el archivo de respuesta ceca_ZhenIT_notify.php quedando en las siguientes dos líneas define('
VM_ENABLE_COOKIE_CHECK','0');
header('Location: http://www.XXXXX.XX/index.php?
option=com_virtuemart&page=checkout.ceca_ZhenIT_result&itemid=1');
Al enviar un header con "location" está enviando un código http 30X en lugar de un 200 OK. El cliente http tendría que ser capaz de interpretarlo y realizar la nueva petición a la nueva URL.
En este caso el cliente sería el servidor de CECA no un navegador web y juraría que antes no era capaz de interpretar códigos 30X... puede que lo hayan mejorado.
Corrigeme si no estoy en lo cierto pero la redirección la hace el navegador del cliente.
Segun lo veo yo es lo siguiente:
1.- CECA llama a la direccion URL on-line tras realizar la operacion en el TPV http://miservidor/
ceca_ZhenIT_notify.php 2.- Mi servidor carga esta página y CECA ya ha terminado pues no se requiere respuesta para confirmar la operacion. 3.- A partir de aquí mi servidor carga la direccion que confirma la operación y actualiza el estado del pedido.
No tengo claro si estoy en lo cierto, el caso es que sí funciona la redireccion al checkout.ceca_ZhenIT_result.ph
p pues crea y escribe en el fichero del log.
El problema ahora es que no me llegan los parametros por POST por lo que el script no hace nada no se si este problema es consecuencia de redireccionar
Primero: El servidor de CECA llama a http://miservidor/
ceca_ZhenIT_notify.php, con tu modificación el servidor le devuelve un código 30X y la cabecera "Location:", si el cliente HTTP del servidor de CECA es capaz de interpretar eso podría funcionar, pero tengo mis dudas.
Ese proceso es independiente del segundo: que por otra parte al cliente se le redireccione de nuevo a la tienda, al detalle del pedido. Hay sí que se está llamando a tu servidor desde el navegador web de tu cliente.
De hecho, aunque por suerte no ocurre a menudo, puede incluso pasar lo segundo antes que lo primero con lo que cuando el cliente vuelve al detalle de su pedido le figura aún como si no estuviese pagado, pero basta con refrescar la página y si le ha dado tiempo al servidor de CECA a llamar a http://miservidor/
ceca_ZhenIT_notify.php ya aparece el pedido como pagado.