Metodo de pago CECA-TPV

Estado
Cerrado para nuevas respuestas

riahc3

Nuevo usuario
Nada, he hecho las modificaciones dichas en estas paginas y nada de nada: ERROR. Faltan campos obligatorios
 

txuko

Nuevo usuario
Nada, he hecho las modificaciones dichas en estas paginas y nada de nada: ERROR. Faltan campos obligatorios

Fijate que le pasas a la pasarela todos los campos obligatorios a mi me pasaba lo mismo y me faltaba el tipo de moneda y lo solucione así:

En mi caso utilizo modulo CECA gratuito con magento 1.4.2.0 y el problema que tenía al principio era que me daba error de “faltan datos obligatorios”, y no había manera me di cuenta que con ese modulo no me pasaba el tipo de moneda así que agregue una variable:

Insertar CODE, HTML o PHP:
$tipomoneda = “978”

Y añadí seguidamente en el último elemento del array "$sArr" lo siguiente:

Insertar CODE, HTML o PHP:
'TipoMoneda' => $tipomoneda,

Volví a probar y entonce el siguiente error era el calculo de la firma así que utilice SHA1 como explicaban en otro hilo, modificando el código añadiendo lo siguiente:

Insertar CODE, HTML o PHP:
$cifrado = 'SHA1';

//$string = "$calculo $clave $code $AcquirerBIN $TerminalID $ord $amount $currency $Exponente \"\"  ";
//$resultado = exec($string);

$resultado= sha1($clave.$code.$AcquirerBIN.$TerminalID.$ord.$amount.$tipomoneda.$Exponente.$cifrado.$URL_OK.$URL_NOK);

*Ojo hay que cambiar la variable $currency por $tipomoneda.

Siguiente error es que no calculaba bien la firma aunque parece estar todo correcto, las url_ok y url_nok generan una cadena la cual parece no valida, también explicado en el otro hilo del tpv ceca.

Yo añadí en el panel de control de métodos de pago en “Url del comercio si la transacción es ok” -> “ceca/standard/success” tal cual y en “ceca/standard/success” -> “ceca/standard/cancel” tal cual.

Luego en el codigo hay que modificar lo siguiente:

Insertar CODE, HTML o PHP:
//$URL_OK = Mage::getUrl($this->getConfigData('URLOK'));
//$URL_NOK = Mage::getUrl($this->getConfigData('URLNOOK'));
$URL_OK = str_replace("?___SID=U","",Mage::getUrl($this->getConfigData('URLOK')));
$URL_NOK = str_replace("?___SID=U","",Mage::getUrl($this->getConfigData('URLNOOK')));

Y modificando el array "$sArr":

Insertar CODE, HTML o PHP:
$sArr = array(
			'Importe'				=>	$amount,	// convert to minor units
			'TipoMoneda'				=>	$currency,
			'Num_operacion'					=> $ord,
			'MerchantID'			=>	$this->getConfigData('merchantnumber'),
			'AcquirerBIN'  => $this->getConfigData('AdquirerBIN'),
            		'Idioma'      =>  $this->calcLanguage(Mage::app()->getLocale()->getLocaleCode()),						
			'Exponente'   =>  $this->getConfigData('Exponente'),
			'Firma'  => $resultado,
			'Pago_soportado'  => $this->getConfigData('PagoSoportado'),
			//'URL_OK'					=>	Mage::getUrl($this->getConfigData('URLOK')),
			//'URL_NOK'					=>	Mage::getUrl($this->getConfigData('URLNOOK')),
			'URL_OK' => $URL_OK,
			'URL_NOK' => $URL_NOK,
			'TerminalID'				=>	$this->getConfigData('TerminalID'),
			'Cifrado' => $cifrado,
			'TipoMoneda' => $tipomoneda,
		);

Así todo me funciona ok.

Un saludo.
 

txuko

Nuevo usuario
Ahora me da error cuando redirecciona para dar como ok la transacción, con el siguiente error :

Fatal error: Call to a member function sendEmail() on a non-object in app/code/local/Mage/Ceca/controllers/StandardController.php on line 231

Añadí el código que indicaban en el hilo para que enviase la factura, según he podido comprobar es porque la instancia no existe, alguien con el mismo error lo ha solucionado, yo tengo la version de magento 1.4.2.0.

Gracias. ;)
 
Estado
Cerrado para nuevas respuestas
Arriba