Metodo de pago CECA-TPV

Estado
Cerrado para nuevas respuestas

simon

Nuevo usuario
ERROR. Falten camps obligatoris

Hola, estoy haciendo pruebas pero en localhost con Wampserver. Al hacer un pedido me devuelve este error en la página de ceca. Al dar al botón "Atrás" intenta redirigir a ceca/standard/redirect y crea un bucle eterno...

No sé si se debe el error a lo del localhost o es otra cosa.

He enviado el formulario del backend a ver si es que metí mal los datos.

Uso un hosting de EEUU aspirationhosting, que debería permitir los exe...

alguna otra idea?
 

jacampos29

Nuevo usuario
Problemas con calculo de Firma

Hola:

Tengo instalado el modulo en mi tienda de pruebas, pero el programa CALCULO no se ejecuta, he hablado con mi proveedor de hosting 1&1 y me dicen que la ejecuccion de programas solo es posible en servidores dedicados, que en hosting compartidos no se puede. Alguien lo tiene instalado en hosting compartido?

Gracias y saludos.
 

ZhenIT Software

Nuevo usuario
Si tienes soporte CGI se puede instalar en un hosting compartido. (lo explicaba en un post que no sé porque llevaba un enlace, creo que es porque llevaba un enlace )

Si no tienes soporte CGI también pero tendrías que generar la firma en otro servidor.

Si quieres te podemos ofrecer el servicio de instalación.
 
Última edición:

ZhenIT Software

Nuevo usuario
Este es el post que no salió publicado:

Cómo solucionar el problema del safe_mode a on

Bueno, la verdad es que no es una solución que funcione en el 100% de los casos, pero sí en la mayoría de hosting que tienen el php configurado con el safe_mode a on o directamente la función exec y similares deshabilitadas .... pero dan soporte a scripts cgi-bin

Teniendo soporte para cgi-bin tal y como los de Magento me descubrieron (http://www.magentocommerce.com/knowledge-base/entry/installing-magento-on-a-php4-server) podemos usarlo para ejecutar los php con el motor de php que queramos. Esto no sólo sirve para ejecutra php5 aunque el servidor esté en php4 sino también para ejecutar php con la configuración que nos de la gana.

Aún teniendo php5, si instalamos el php cómo módulo CGI, tal y como se explica en el artículo de magento tendremos habilitada la función exec o podremos configurar php con nuestro propio php.ini .


Una segunda opción es poner el fichero calculo en la carpeta cgi-bin y usar el código de ejemplo.pl que dan los de CECA para generar la firma usando cgi (en cgi no hay restricciones para la ejecución de comando), luego tendríamaos que modificar el módulo de CECA para que en lugar de generar la firma con exec haga una llamada http ( podemos usar las librerías CURL ) al script CGI que hemos creado (basado en ejemplo.pl) y que devuelve la firma ya calculada.

La primera opción es mucho más sencilla aunque las dos son válidas.
 
Última edición por un moderador:

Ksumiwue

Nuevo usuario
Modulo CECA

HOla jacampos29:

Nosotros tenemos varios clientes con Magento en nuestros servidores y no hay problema alguno con el Módulo de CECA, de hecho el último de ellos www.mistercebra.com, lo tiene integrado y funcionando perfectamente con su Magento.

Los planes de hosting los tienes en: http://www.ipv6-informatica.es/dyp/hosting.html.

Perdona que no estén todavía publicados y enlazados con el resto de la web, pero no lo hemos podido actualizar todavía.

Un saludo,
 

vertical

Nuevo usuario
Hola,

Tengo pensado instalar el método de pago TPV-CECA.

Por lo que he leído, entiendo lo siguiente:

1.- El módulo/extensión no instala el programa de cálculo 'calculo'. Siendo necesario la compilación del fuente 'calculo.c' en el directorio raíz de la instalación de Magento.
2.- Si se trata de un hosting compartido, se deberá compilar el fuente 'calculo.c' en una máquina a parte donde se pueda realizar dicha operación y posteriormente subir/instalar el ejecutable 'calculo' en el directorio raíz de la instalación de Magento.
3.- Si se trata de un hosting compratido, la opción safe_mode de php deberá estar a off, en caso contrario, habrá que utilizar algunas de las alternativas propuestas por ZhenIT Software: (Cómo solucionar el problema del safe_mode a on

En la documentación/ficheros que me han enviado desde CECA no está el fichero programa 'calculo.c'. Está la librería contra la que hay que compilar y luego un ejemplo básico escrito en la documentación de como ha de ser el programa 'calculo.c'. Entiendo que cada uno se ha de crear su programa 'calculo.c' a partir de ese ejemplo.

Os agradecería que me indicaseis si voy desencaminado.

Un saludo y gracias.
 

juan26

Nuevo usuario
Hola,

Después de varios dias con el tema de la firma que al fín he conseguido hacer funcionar he conseguido entrar al CECA sin quejarse, me pide el número de tarjeta, la fecha..., el problema que tengo y que ha hecho que me vuelva a dar un buen dolor de cabeza es que si hago clic en VOLVER para cancelar un pedido realiza esto:

1. Muestra al usuario correctamente la URL /ceca/standard/cancel indicando que la transacción ha sido cancelada.
2. Poner estado de pedido a CANCELADO.
3. Avisar al usuario de que el pedido ha sido cancelado (Si se ha colocado así esta opoción en las opciones), es decir que envía correo.

¡Y LA QUE NO HACE!

4. ¡Recuperar la cantidad al inventario!

No recupera la cantidad cancelada (en mi caso 1) al inventario, ufff sudores...

He mirado el StandarController.php pero no se ni donde ni cómo debería el código llamar o controlar esto.

¿Alguien más ha tenido este problema?

Gracias.

Adjunto código del StandarController.php, concretamente la función

PHP:
/**
	 * When a customer cancel payment from ceca.
	 */
	public function cancelAction() {
		$params	=	$this->getRequest()->getParams();
		$session	=	Mage::getSingleton('checkout/session');
		$state	=	Mage::getModel('ceca/standard')->getConfigData('error_status');
		if(count($params) > 0){
			switch($params['Ds_Response']){
				case '101':		$message	=	'Tarjeta caducada'; break;
				case '102':		$message	=	'Tarjeta en excepción transitoria o bajo sospecha de fraude'; break;
				case '104':		$message	=	'Operación no permitida para esa tarjeta o terminal'; break;
				case '116':		$message	=	'Disponible insuficiente'; break;
				case '118':		$message	=	'Tarjeta no registrada'; break;
				case '129':		$message	=	'Código de seguridad (CVV2/CVC2) incorrecto'; break;
				case '180':		$message	=	'Tarjeta ajena al servicio'; break;
				case '184':		$message	=	'Error en la autenticación del titular'; break;
				case '190':		$message	=	'Denegación sin especificar Motivo'; break;
				case '191':		$message	=	'Fecha de caducidad errónea'; break;
				case '202':		$message	=	'Tarjeta en excepción transitoria o bajo sospecha de fraude con retirada de tarjeta'; break;
				case '0930':
					if($params['Ds_PayMethod'] == 'R'){
						$message	=	'Realizado por Transferencia bancaria'; 
					} else {
						$message	=	'Realizado por Domiciliacion bancaria'; 
					}
					$state	=	Mage::getModel('ceca/standard')->getConfigData('order_status');
					break;
				case '912':
				case '9912':	$message	=	'Emisor no disponible'; break;
				default:
					$message	=	'Transacción denegada';
					break;
			}
			$message	=	Mage::helper('ceca')->__($message);
			$comment	=	Mage::helper('ceca')->__('Pedido cancelado desde ceca con error #%s - %s',$params['Ds_Response'],$message);
		} else {
			$message	=	Mage::helper('ceca')->__('Transacción denegada');
			$comment	=	Mage::helper('ceca')->__('Pedido cancelado desde ceca');
		}

		$order	=	Mage::getModel('sales/order')->load($session->getLastOrderId());

		$order->setState($state,$state,$comment,true);
		$order->save();
		if (((int)Mage::getModel('ceca/standard')->getConfigData('sendmailorderconfirmation')) == 1) {
			$order->sendOrderUpdateEmail(true,$message);
		}
		$session->addError($message);
		$this->_redirect('checkout/cart');
	 }
 

gmb

Super Moderador
Miembro del equipo
Después del $order->save(); podrías poner algo parecido a esto. Este sirve para quitar el stock, sumarlo no debería ser mas complicado :D

PHP:
      $items = $order->getAllItems(); // Get all items from the order
                if ($items) {
                    foreach($items as $item) {
                        if ($item->getParentItem()) { // If product is a parent of a configured product (protected function getFormattedCart ())
                        
                                $quantity = $item->getQtyOrdered(); // get Qty ordered
                                $product_id = $item->getProductId(); // get it's ID
                                
                                $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id); // Load the stock for this product
                                $stock->setQty($stock->getQty()-$quantity); // Set to new Qty            
                                $stock->save(); // Save
                        }
                        continue;                        
                    }
               }
               
               /* end stock deduction */
Sacado de: http://www.magentocommerce.com/wiki/groups/132/protx_form_-_subtracting_stock_on_successful_payment


Saludos.
 

juan26

Nuevo usuario
Muchas gracias por responder gmb, es de agradecer que te tomes la molestia.

He estado mirando lo que me indicas, en el enlace puedo leer que esa solución lo que hace es esperar a tener la confirmación del pago realizado correctamente y después restar la cantidad al stock. Hacerlo a la inversa tiene su sentido cambiando el -$quantity por +$quantity. Lo he probado tal cual despues del $order->save(); cómo me has indicado pero no me ha funcionado pero ¿debería de funcionar?

He estado mirando el StandarController.php del pago por Paypal Standar que lo tengo configurado y si suma el stock cuando se cancela:

PHP:
    /**
     * When a customer cancel payment from paypal.
     */public function cancelAction()
    {
        $session = Mage::getSingleton('checkout/session');
        $session->setQuoteId($session->getPaypalStandardQuoteId(true));

        // cancel order
        if ($session->getLastRealOrderId()) {
            $order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
            if ($order->getId()) {
                $order->cancel()->save();
            }
        }

        /*we are calling getPaypalStandardQuoteId with true parameter, the session object will reset the session if parameter is true.
        so we don't need to manually unset the session*/
        //$session->unsPaypalStandardQuoteId();

        //need to save quote as active again if the user click on cacanl payment from paypal
        //Mage::getSingleton('checkout/session')->getQuote()->setIsActive(true)->save();
        //and then redirect to checkout one page
        $this->_redirect('checkout/cart');
    }
Y no entiendo cómo funciona siendo tan sencillo.

He probado a cambiar en el del CECA las lineas del de Paypal:

$order = Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
$order->cancel()->save();

Pero no he conseguido nada.

Esto me tiene reventado además de que he generado un montón de ordenes.

¿Alguna idea más?
 

juan26

Nuevo usuario
Una pregunta,

¿Lo de que este método de pago no haga decremento de stock es así de serie, es decir la extensión no está preparada ¿o esto sólo me ocurre a mí?

Un saludo.
 

gmb

Super Moderador
Miembro del equipo
Va de serie, creo. No he usado este modulo.

Has probado a poner lo que te he dicho. y cambiar solo la linea
PHP:
$stock->setQty($stock->getQty()+$quantity); // Set to new Qty
Fijate en:
$stock->getQty()+$quantity)

Saludos.
 

juan26

Nuevo usuario
Bueno al final me he apañado para gestionar el stock con esto (después del $order->save(); de la función cancelAction() )

PHP:
/**
		 * Gestión de stock. Su añaden nuevamente a existencias las unidades
		 * de los productos de la orden. En mi caso coloco el producto nuevamente en existencias
		 * ya que al llegar a 0 había pasado a Fuera de existencias.
		 */


	$items = $order->getAllItems(); // Get all items from the order
                if ($items) {
                    foreach($items as $item) {
                        if ($item->getParentItem()) { // If product is a parent of a configured product (protected function getFormattedCart ())
                        	
                                $quantity = $item->getQtyOrdered(); // get Qty ordered
                                $product_id = $item->getProductId(); // get it's ID
                                $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id); // Load the stock for this product
                                $stock->setQty($stock->getQty()+$quantity); // Set to new Qty    
								$stock->setIsInStock(true);
								$stock->save(); // Save
                        }
						else {

								$quantity = $item->getQtyOrdered(); // get Qty ordered
                                $product_id = $item->getProductId(); // get it's ID
                                $stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($product_id); // Load the stock for this product
                                $stock->setQty($stock->getQty()+$quantity); // Set to new Qty    
								$stock->setIsInStock(true);
								$stock->save(); // Save
						
						}
                                                
                    }
               }
               
               /* Final de gestión de stock */

Después de comprender más o menos el funcionamiento de esta extensión queda claro que la extensión no controla la COMUNICACIÓN ON-LINE que ofrece CECA que es el equivalente del IPN en Paypal.

En mi caso, en Paypal al tener IPN activado desde Paypal, en el mismo instante que el usuario hace clic en el últimpo botón de pagar, Paypal envía una notificación IPN (notificación instantanea) al comercio aunque el usuario no regrese a la página o cierre el navegador. Bueno esto todo el que tenga Paypal activado cómo forma de pago lo sabe ya que está realizado por el equipo de Magento.

Ahora bien, ¿alguien de este hilo ha desarrollado alguna función para controlar la COMUNICACIÓN ON-LINE de CECA que es el equivalente al IPN de Paypal?

Si alguien tiene esto hecho y quiero vendermelo que se ponga en contacto conmigo.

Si alguien quiere desarrollar esto pues yo pongo en antecedentes lo siguiente que es lo que hace Paypal:

http://www.magentocommerce.com/wiki/how_to/paypal_standard_payments_setup_with_ipn

1. Paypal envía una notificación instantane a la siguiente URL:
http://www.storename.com/index.php/paypal/standard/ipn/

2. Esto es recibido por el standarcontroller.php de paypal que dice que hace lo siguiente:

PHP:
   /**
     * Cuando Paypal retorna
     * La información de la orden se encuentra en variables pasadas por método POST
     * Pero no queremos pasar la orden a "PROCESANDO" hasta recibir la validación por IPN
     */
    public function  successAction()
    {
        $session = Mage::getSingleton('checkout/session');
        $session->setQuoteId($session->getPaypalStandardQuoteId(true));
        /**
         * set the quote as inactive after back from paypal
         */
        Mage::getSingleton('checkout/session')->getQuote()->setIsActive(false)->save();

        //Mage::getSingleton('checkout/session')->unsQuoteId();

        $this->_redirect('checkout/onepage/success', array('_secure'=>true));
    }

    /**
     * Cuando Paypal llama por IPN con el resultado
     * no hay salida por pantalla
     * se valida la información del IPN
     * y si los datos son correctos se actualiza la información del pedido y base de datos según la *respuesta
     */
    public function ipnAction()
    {
        if (!$this->getRequest()->isPost()) {
            $this->_redirect('');
            return;
        }

        if($this->getStandard()->getDebug()){
            $debug = Mage::getModel('paypal/api_debug')
                ->setApiEndpoint($this->getStandard()->getPaypalUrl())
                ->setRequestBody(print_r($this->getRequest()->getPost(),1))
                ->save();
        }

        $this->getStandard()->setIpnFormData($this->getRequest()->getPost());
        $this->getStandard()->ipnPostSubmit();
    }
Es decir que el módulo Paypal no modifica la orden cuando regresa el usuario sino cuando recibe notificación IPN

CECA realiza la comunicación on-line enviando una llamada a una URL pasando las variables (firma, pedido, etc etc..) por POST, nosotros debemos de validar estos datos y hacer las modificaciones oportunas en el estado del pedido. Las comprobaciones serán las siguientes:

1. Si el Pago es OK, pasar el pedido a PROCESANDO y actualizar las notificaciones
2. Si el Pago es NO OK, devolver las unidades del carrito a stock y pasar a CANCELADO

Por ejemplo, podríamos decirle a CECA que la URL de la notificación online es:

http://dominio.com/ceca/standard/comunicacion

CECA haria la llamada a esa URL, entonces yo supongo que en el standardcontroller.php del CECA habría que controlar esto mediante una función que validaría los datos recibidos por POST

Ejemplo de datos recibidos por POST:

PHP:
+++++ENVIO+++++

MerchantID=999999999&AcquirerBIN=8888888888&TerminalID=00000003&Num_operacion=000000159&Importe=000000001&TipoMoneda=978&Exponente=2&Referencia=120039046310021009856406007000&Firma=4EED22F2E7DA6412A11DD33B8A0E5BF937B069F8D87D37F301B7DCAE20C03A59558596FDB87F862B9FFBE43A70FA747359E20522A7909977010FFA3B0C706D1D80815ECBFC107F51E0CEB146CAB85ED7298DC019D233B03C7587F749D3775579ED805CBB5810FCF4390BBA992C769A97E257DB7F06AB7151BBB2649638ADB247&Codigo_pedido=&Codigo_cliente=&Codigo_comercio=&Num_aut=606303&BIN=554050&Cambio_moneda=1.000000&Idioma=1&Pais=724&Descripcion=demostracion
Si esto se hace bien, entonces se puede activar también la RESPUESTA REQUERIDA que nos ofrece CECA en su TPV para responder con un "$*$OKY$*$" cuando nuestra aplicación termine de actualizar los datos de nuestra tienda (dan 25 segundos).


Conclusión. Que la extensión actualiza los datos solamente si el usuario hace clic intencionadamente en los botones que le van apareciendo en el TPV (cómo pueden ser, volver, cancelar, pago correcto->volver...) y no aprobecha la COMUNICACIÓN ON-LINE de CECA que sería lo ideal ya que de la otra manera hay que estar cerrando ordenes y comprobando pagos cuando esto se podría automatizar

¿Alguien arroja algo de luz al asunto?
¿Nadie conoce a nadie que reailze la instalación de esta extensión de forma comercial y que tenga la comunicación on-line implementada?

Yo estoy limitado por el desconocimiento de la arquitectura de Magento pero si alguien quiere intentarlo pues que se ponga en contacto conmigo.

Saludos y disculpar por el tocho.
 
Última edición:

juan26

Nuevo usuario
Estoy viendo en el standarcontroller.php que es posible que ya se esté tratanto esto del IPN (Comunicación requerida) y se muestra el OK (por el final)

PHP:
	/**
	 * when ceca returns
	 * The order information at this point is in POST
	 * variables.  However, you don't want to "process" the order until you
	 * get validation from the IPN.
	 */
	public function  successAction() {
		$orderStatus = Mage::getModel('ceca/standard')->getConfigData('order_status');
		//$orderStatus = Mage_Sales_Model_Order::STATE_PROCESSING;
		$comment=null;

		$session = Mage::getSingleton('checkout/session');

		$order = Mage::getModel('sales/order');

		// Load the order number
		$order->load(Mage::getSingleton('checkout/session')->getLastOrderId());
		$params	=	$this->getRequest()->getParams();

		if(count($params) > 0){
			if($order->getId()){
				if (((int)Mage::getModel('ceca/standard')->getConfigData('sendmailorderconfirmation')) == 1) {
					$order->sendNewOrderEmail();
					$order->save();
					$order->setEmailSent(true);

				}
			} else {
				$comment	.=	$this->__("<h1>Ha ocurrido un error!</h1>");
				$comment	.=	$this->__("El Id de la orden no fue reconocido por el sistema.");
			}

			if ((int)$params["Ds_Amount"] != (int)($order->getTotalDue() * 100)) {
				$comment	.=	$this->__("<h1>Ha ocurrido un error!</h1>");
				$comment	.=	$this->__("La cantidad recibida desde Ceca no coincide con la cantidad pedida!");
			}

			if (((int)Mage::getModel('ceca/standard')->convertToCecaCurrency($order->getOrderCurrency())) != (int)$params["Ds_Currency"]) {
				$comment	.=	"<h1>Ha ocurrido un error!</h1>";
				$comment	.=	"La moneda recibida desde Ceca no coincide con la moneda de la orden!";
			}

			if($comment == null){
				$comment	=	'';
				if(($params['Ds_Response'] == '0930')){
					if($params['Ds_PayMethod'] == 'R'){
						$comment	=	'Realizado por Transferencia bancaria'; 
					} else {
						$comment	=	'Realizado por Domiciliacion bancaria'; 
					}
				} elseif(($params['Ds_Response'] >= '0000') && ($params['Ds_Response'] <= '0099')){
					$comment	=	'Transacci&oacute;n autorizada para pagos y preautorizaciones #%s';
				} elseif($params['Ds_Response'] >= '0900'){
					$comment	=	'Transacci&oacute;n autorizada para devoluciones y confirmaciones #%s';
				}
				$comment	=	Mage::helper('ceca')->__($comment,$params['Ds_AuthorisationCode']);
			}
		} else {
			if($order->getId()){
				if (((int)Mage::getModel('ceca/standard')->getConfigData('sendmailorderconfirmation')) == 1) {
					$order->sendNewOrderEmail();
					$order->save();
					$order->setEmailSent(true);

				}
			}
			$comment	=	'Transacci&oacute;n autorizada';
		}
		if((bool)Mage::getModel('ceca/standard')->getConfigData('autoinvoice')){
			$invoice = $order->prepareInvoice();
			$invoice->register()->capture();
			Mage::getModel('core/resource_transaction')
				->addObject($invoice)
				->addObject($invoice->setEmailSent(true))
				->addObject($invoice->getOrder()->setIsInProcess(true))
				->save();
			$comment	.=	Mage::helper('ceca')->__('<br />Factura #%s creada', $invoice->getIncrementId());
		}
		$order->setState($orderStatus,$orderStatus,$comment,true);
		$order->save();
		$invoice->sendEmail();		
		// If not callback - redirect the user to the success page
		if (!$this->_callbackAction) {
			$this->_redirect('checkout/onepage/success');
		} else {
			//
			// Callback - just responsd ok
			echo "OK";
		}
	}
	
	//
	// When callback is called from ceca
	// just reflect to the success action
	//
	public function callbackAction() {
		$this->_callbackAction = true;
		$this->successAction();
	}
Si esto es así, ¿Que URL le debo indicar a los de CECA para que hagan la comunicación?

COMUNICACIÓN ON-LINE: ??? Tiene que ser que si.
RESPUESTA REQUERIDA: NO?
URL ONLINE (para la comunicación on-line): ????

¿Alguien que tenga la extensión en uso podría indicar algo al respecto?
 
Última edición:

VicHaunter

Nuevo usuario
hola juan26,

+1 a lo del control ipn aunque yo utilizo servired de la caixa, pero al ser la misma base y tener también la posibilidad de configurar en la caixa las url ok y ko que creo que es eso de lo que estamos hablando, si no es muy caro me apunto a pagar a medias contigo juan26, un saludo.

Otra cosa que te quiero comentar, por que ahora me has hecho pensar.

De forma alternativa podríamos hacer una cosa para reponer esos stocks que se queden colgando por que cierran la ventana.

Se trata de hacer un pequeño script, que son unas cuantas líneas de código que haga lo siguiente:
1. miro los pedidos de hoy.
2. busco los que se han pagado con tarjeta sermepa (osea el tipo de pago en concreto)
3. miro la hora y el total adeudado de dichos pedidos
4. si hace más de 10 minutos que están hechos y el total adeudado es mayor que 0 (que solo pasa si no se completa el pago por que sino es 0), entonces cogermos ese pedido y reponemos su stock y lo cancelamos.

Esto lo cogemos y lo metemos por ejemplo en el header (por que no se crear módulos para que se carguen con la página), así el siguiente cliente que entre, en caso de que haya un pedido ahí colgado, ese stock lo verá por que se va a restaurar (estas consultas no tardan prácticamente nada).

También podemos en lugar de mirar los de hoy mirar los pedidos de la última hora.

Dime que opinas.

Por cierto, me ha funcionado lo del tema de volver habiendo cancelado desde sermepa, me repone el stock... el mío tenía alguna función que no iva y por cierto, lo he probado en la 1.4
 
Última edición:

pedrolas

Nuevo usuario
Hola Juan26. Tengo tu mismo problema en relación a la Comunicación ONLINE con el TPV de CECA. Me gustaría pedir a Soporte de CECA que la activen para que se cambie el estados de los pedidos y no tenga que comprobar los pagos en el TPV todos los días. ¿Has averiguado los valores siguientes que hay indicar a CECA?

COMUNICACIÓN ON-LINE: SI?
RESPUESTA REQUERIDA: NO?
URL ONLINE (para la comunicación on-line): ????

GRACIAS
 

OsO

Nuevo usuario
Hola, tengo un problema con esta extensión. CECA me dice:
Informarle que su TPV Virtual está configurado con "Respuesta por parte del comercio". Por tanto, es necesario que nos facilite la URL de su comercio que se encargará del proceso de confirmación de sus operaciones.
¿Alguien puede decirme cual es esa URL? www.MITIENDA.com/LO_QUE_SEA_
Si no le doy esta direccion para que maneje el IPN (como ya se comentó antes) la pasarela siempre me devuelve "comunicacion on-line incorrecta".
 

eurohobbies

Nuevo usuario
Problema con el módulo

Hola, tengo un problema que no me dan resuelto, resulta que me instalaron el módulo para CECA y después de muchos problemas se solucionaron y funcionaba perfectamente, pero después de 2 meses, dejó de funcionar sin haber tocado nada.Los de CECA dicen que ellos no han cambiado nada y nosotros en el módulo tampoco.
La cuestión es que lleva 3 meses sin funcionar.
El problema está que cuando uno le da a pagar y salta a la pantalla de visa secury,
donde sale el número de operacion sale la palabra operación y donde sale el total sale la palabra NAN.
¿sabe alguien porqué pasa eso? ¿le ha ocurrido a alguien? agradecería mucho que me dierais una pista de como solucionarlo.:guiño:
 

gmb

Super Moderador
Miembro del equipo
Como me está tocando trabajar con CECA, para aclarar el tema:

Si no quereis usar el fichero calculo se puede hacer lo mismo con sha1. Es decir, cambiar el código y poner en el /Model/Standard.php:
$cifrado = 'SHA1';
$referencia ='';
$resultado = sha1($clave.$code.$AcquirerBIN.$TerminalID.$ord.$amount.$currency.$Exponente.$referencia.$cifrado.$URL_OK.$URL_NOK);
Y al final del array añadir:
'TerminalID' => $this->getConfigData('TerminalID'),
'Cifrado' => $cifrado, // he cambiado esto.
Con eso os generará la firma correctamente.

Por otro lado: La url de comunicación online es la callback.
Intentaré comentar como me va con este tema.

Saludos.
 
Última edición:

ima_creste

Nuevo usuario
Problemas con el estado

Hola buenas

tengo instalado el mudulo de CECA, y todo funciona bien, menos el redirecionamiento y el cambio de estado

me explico

para empezar si dejo tal como viene el standarController.php, no me redirije a la pagina de confirmacion de compra, me envia el mail pero no me redirije a ningun sitio me da error 500, para ello debo comentar la linea 200 -->$invoice->sendEmail();

y el otro error es que no me cambia el estado del pedido, si cuando cancela y cuando entra en el TPV pero nunca me pone el pedido como completa, ni pagado... si trato desde el area de administracion de decirle que pase a estado completa me sale la pantalla azul con error que dice -->
a:5:{i:0;s:52:"The Order State "complete" must not be set manually.";i:1;s:1408:"#0 /var/www/vhosts/sofiled.com/httpdocs/bombillas2/app/code/core/Mage/Sales/Model/Order.php(621): Mage::throwException('The Order State...')

alguien puede ayudarme???

Versión de Magento 1.4.1.0.
 

gmb

Super Moderador
Miembro del equipo
No se puede pasar un estado a completo manualmente. Lo único que puedes poner es cancelado, pendiente o procesado en principio. Para estar "completado"
magento obliga a que se genere la factura. Tal vez poniendo que se genere la factura te funcione.

Saludos.
 
Estado
Cerrado para nuevas respuestas
Arriba