Conseguí avanzar en este proceso. Estas son las dificultades que encontré y las soluciones que adopté.
Averigüé que la url de notificación de pago no debe tener parámetros. A mi no me funcionaba porque ponía una url como esta:
Código:
http://dominio.com/web/dispatcher.php?x=tpv
Moví el script que realizaba el procesado de esa notificación a la raíz de la web y solventé ese problema.
Otro problema que encontré fue a la hora de calcular la firma del xml de la notificación.
Utilicé la función
simplexml-load-string tal que así:
Código PHP:
$xml = simplexml_load_string($peticion);
$idterminal = $xml->respago->idterminal;
$idcomercio = $xml->respago->idcomercio;
...
Utilizando la función
var_dump en $idterminal, $idcomercio, etc. pude ver que no se trataba de strings sino de objetos. Utilizando un
typecast de string solventé el problema:
Código PHP:
$xml = simplexml_load_string($peticion);
$idterminal = (string)$xml->respago->idterminal;
$idcomercio = (string)$xml->respago->idcomercio;
...