Jump to content

[Solucionado]Problema con modulo de tpv ceca 0.62


FranciscoVillen

Recommended Posts

Buenas a todos,
 
Estoy utlizando el modulo para ceca que pusieron en esta entrada del foro en un prestashop 1.5.4:
 
http://www.prestashop.com/forums/topic/14113-modulo-pago-tpvv-ceca-05-beta/page-11
 
La versión subida por "envista cultural visual" en el post #209
 
Lo he configurado correctamente y en el entorno de prueba funciona todo perfectamente.
 
En el entorno real en cambio, al realizar el pago, este queda registrado en la administracion del TPV pero al regresar a prestashop el pedido no queda registrado.
 
He estado echando un vistazo al codigo, y la parte que se encarga de poner el pedido como pagado en prestashop, esta en el archivo validation.php.
 
Pongo en rojo donde me parece que esta la clave, hay un if donde se comprueba que la firma sea la correcta en cuyo caso invoca al metodo validateOrder , que es el que se encarga de poner el pedido como pagado y que se registre en prestashop.

if (!empty($_POST)){	

	$debug_mail_msg = print_r($_POST, true) . "\r\n";

	// Variables

	$MerchantID     = $_POST["MerchantID"];

	$AcquirerBIN    = $_POST["AcquirerBIN"];

	$TerminalID     = $_POST["TerminalID"];

	$Num_operacion  = $_POST["Num_operacion"];

	$Importe        = $_POST["Importe"];

	$Tipo_moneda    = $_POST["TipoMoneda"]; 

	$Exponente      = $_POST["Exponente"];

	$Referencia     = $_POST["Referencia"];

	$Firma          = $_POST["Firma"];

	$Num_aut        = $_POST["Num_aut"];



	$ImporteEUR = round(floatval($Importe/100), 2);



	$moneda_tienda = 1; // Euros



	//Calculo de la firma con SHA1

	$strEXEC=	$MerchantID.$AcquirerBIN.$TerminalID.$Num_operacion.$Importe.$Tipo_moneda.$Exponente.$Referencia;

	$FirmaLocal=$cecatpv->calculaFirma($strEXEC);



	$debug_mail_msg .= "Voy a calcular la firma para $strEXEC desde " . $_SERVER['SCRIPT_FILENAME']. "\r\n";

	$debug_mail_msg .= "Para la IP: ".$_SERVER['REMOTE_ADDR'].' - '.gethostbyaddr($_SERVER['REMOTE_ADDR'])."\r\n";

	$debug_mail_msg .= "Firma calculada: $FirmaLocal\r\n";

	$debug_mail_msg .= "Firma de CECA: $Firma\r\n";

	$debug_mail_msg .= 'Referencia de pago: '.$Referencia.' - Número de Autorización: '.$Num_aut. "\r\n";





	if ($Firma != $FirmaLocal){

		$debug_mail_msg .= "Las firmas NO COINCIDEN.\r\n";

		echo 'Error - Las firmas NO COINCIDEN';

		$debug_mail_msg .= "Cambiado estado a error por firmas no coincidentes.\r\n";

	}else{

		$debug_mail_msg .= "Las firmas son iguales.\r\n";

		$cecatpv->validateOrder($Num_operacion, _PS_OS_PAYMENT_, $ImporteEUR, $cecatpv->displayName, $cecatpv->l('Pago recibido. Núm autorización: ').$Num_aut);

		$debug_mail_msg .= "Cambiado estado a PAGADO.\r\n";

		echo '$*$OKY$*$';

	}

	$cecatpv->enviar_mail_debug('Validacion de pago desde TPV CECA', $debug_mail_msg);

}else{

	echo "Validacion SIN POST de pago desde TPV CECA";

	$cecatpv->enviar_mail_debug('Validacion SIN POST de pago desde TPV CECA', 'La aplicación de TPV Virtual de la CECA no ha adjuntado la información del pago en $_POST. Petición realizada desde la IP: '.$_SERVER['REMOTE_ADDR'].' - '.gethostbyaddr($_SERVER['REMOTE_ADDR']));

}

 

 
¿Ha lidiado algun compañero con este problema?
 
Gracias de antemano.

Edited by FranciscoVillen (see edit history)
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...