Metodo de pago CECA-TPV

Estado
Cerrado para nuevas respuestas

ima_creste

Nuevo usuario
ceca, compra finalizada

Hola gmb, y muchas gracias por adelantado

Una pregunta:

Un comprador finaliza la compra, y veo que en la pasarela todo sale correcto, que el producto a sido comprado, pero desde el panel de administrador de magento NO se puede poner como completado? y ademas, dentro del pedido sale como pendiente de pagar.

No se supone que una vez que el usuarui a salido del TPV ya ha pagado?¿
no acabo de entender bien la forma de funcionar :sorprendido:

saludos
 

albertoroman

Nuevo usuario
Es lo mismo que ocurre usando con Caja Rural el módulo para Servired. El problema está en que no se ejecuta la acción Success del controller, que es la hace diferentes acciones, como enviar los correos, y poner el pedido en estado "Procesando" por ejemplo.
Hay que adaptar el módulo, de forma que cuando el pago ha sido hecho correctamente, se llame a la acción success. No conozco como responde CECA-TPV pero seguro que lo tienes en la documentación.
Yo he conseguido que funcione todo bien para Ruralvia, partiendo el módulo Servired. Cuando me entere como se crea y se publica un módulo, me gustaría publicarlo como contribución.

Lo que tienes que hacer es los cambios necesarios, en el módulo, en la función que envía los parámetros a la TPV, y en función de eso, y la manera en que responde CECA-TPV, llamar a la función success del controllerr.
Por favor Manuel podrías ser más especifico, te he mandado un privado, y la verdad si me echas una mano me comprometo a documentarlo para que la gente no tenga más problemas con ruralvía.
 
U

ubuntero30

Guest
Hola a Todos,
Veo que todos el mundo tiene líos con este modulo, y cómo aún no lo he puesto en marcha, más vale prevenir que resolver líos...

Mi pregunta, es si alguien ha usado este modulo para pagos recurrentes?
La versión que tengo es la 1.4.2.0-beta, que lleva la nueva función de pagos recurrentes, por defecto ésta funciona solo con el paypal express, y quería implementar el módulo de la Ceca, a ver si cargamos pagos recurrentes...

Alguna experiencia?


Saludos,
 

biomcanic

Nuevo usuario
Ya tengo la solución!!!!!!

Hola a todos!! Llevo varios días intentando hacer funcionar el dichoso plugin y he visto que el problema es que a las urls OK y NOK magento les añade al final "?___SID=S". Os paso el apaño para hacerle al archivo /app/code/local/Mage/Ceca/Model/Standard.php:

- Donde crea las variables $URL_OK y $URL_NOK poner lo siguiente:
$URL_OK = str_replace("?___SID=S","",Mage::getUrl($this->getConfigData('URLOK')));
$URL_NOK = str_replace("?___SID=S","",Mage::getUrl($this->getConfigData('URLNOOK')));

- Quitar toda la parte de cálculo con la firma y añadir esto:
$resultado= sha1($clave.$code.$AcquirerBIN.$TerminalID.$ord.$amount.$currency.$Exponente."SHA1".$URL_OK.$URL_NOK);

- Dentro del array $sArr, modificar donde mete URL_OK y URL_NOK y poner:
'URL_OK' => $URL_OK,
'URL_NOK' => $URL_NOK,

- Y por último, antes de que termine el array, añadir esta línea:
'Cifrado' => 'SHA1'

Un saludo a todos y espero que les sirva!!!!! :D
 

Masta90

Nuevo usuario
Bueno, despues de varios dolores de cabeza tengo implementado y funcionando el módulo.
El problema es que al haber cobrado y pinchar en atras para it a /ceca/standard/success me da este error:
Fatal error: Call to a member function sendEmail() on a non-object in /www/app/code/local/Mage/Ceca/controllers/StandardController.php on line 194
Esa línea corresponde a:
$invoice->sendEmail();
Me da el error tenga o no activado lo de enviar email.
¿alguna idea?
Gracias
 

gmb

Super Moderador
Miembro del equipo
Ese error parece indicar que no hay una instancia de $invoice y por tanto no puedes acceder al metodo. Revisa donde esta
construido el $invoice.

Saludos
 

Ksumiwue

Nuevo usuario
HOla a todos:

Tengo algo parecido en un website, en el que se realiza el pago perfectamente con CECA pero luego no se envía ni el correo al cliente, ni el correo al administrador para notificar el pedido.

Alguna idea de por donde debo empezar a buscar???
Lo digo porque ya he mirado por el StandardController.php y no encuentro donde debo tocar o qué debo modificar.

Cualquier sugerencia será bienvenida.
 

Ksumiwue

Nuevo usuario
Envio de email por CECA

HOla chicos:

No sé vosotros pero yo sigo sin encontrar donde CECA se salta el paso de enviar el mail al cliente y al administrador.

Estoy desesperado.

Alguna idea???
Gracias,
 

Ksumiwue

Nuevo usuario
A mi si.

HOla Masta90:

Puedo asegurar que a mi me funcionó. La versión que tengo es la 1.3.0 y todo fue bien, hasta que por error en el hosting se actualizó la versión del PHP del 5.2.X al 5.3.0

A partir de ahí se jod.... varias funciones que el PHP no admitía y aparecían como "deprecated" y luego el mail también dejó de funcionar. Y ahora estoy como loco, intentando buscar que función se ha jod... o que proceso no termina como debe, o si debo cambiar algo para que esté como antes.

Vamos que no se por donde empezar y eso que llevo leído y buscado en internet un rato, pero nada de resultados.

Alguna idea???
 

Ksumiwue

Nuevo usuario
Ya lo he resuelto

HOla figuras:

Leyendo por internet y tras investigar "un poco más", no me preguntéis como es que funciona pues yo tampoco lo entiendo. El caso es que lo he implementado y funciona, ahora ya reciben correo el cliente y el admin.

He usado esto poniéndolo encima del código del fichero success.phtml. Os dejo el código.

*********************
<?php
$order = new Mage_Sales_Model_Order();
$incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();

$order->loadByIncrementId($incrementId);

try
{
$order->sendNewOrderEmail();
} catch (Exception $ex) { }
//código para el envio de correo una vez se ha hecho el pedido
?>

Saludos y gracias.
Espero que os sirva como a mí.
 

ipronin

Nuevo usuario
Hola, he instalado el módulo CECA-TPV sobre Magento 1.3. El hosting es un servidor dedicado, por lo que no hay problemas (en teoría) para ejecutar el módulo calculo. Sin embargo, cuando realizo una compra mediante CECA, el paso donde debería redirigirme a la web de CECA para pedirme los datos, me devuelve a la url www.miservidor.com/ceca/standard/redirect, sin dar ningún mensaje de error ni nada parecido. En el panel de control del TPV, la compra no aparece registrada. Estoy en pruebas, por otra parte. No me atrevo a activarlo en real hasta saber que está controlado.

Por más que he buscado no encuentro esta configuración en ningún sitio. Hay un fichero config.xml, pero creo que no se debe de tocar ahí. Agradecería cualquier orientación al respecto.
 

martefactory

Nuevo usuario
Hola!! ipronin, estoy intentado configurar el módulo de CECA para magento 1.3 ,con servidor dedicado y tengo el mismo problema....una vez se pulsa en realizar pedido me redirecciona
a .../ceca/standard/redirect, dejando la página en blanco..He revisado si el problema puede venir por la ejecución del fichero cálculo ..pero le he metido una traza y si se genera el código
correctamente...lo que pasa que no hace el enganche con el TPV de CECA.
El pedido , en la parte de Magento , se realiza correctamente ...parece que se salta el paso del TPV y da el proceso de compra por correcto..
Si alguno conocéis porque puede ocurrir esto os lo agradecería enormemente !!!
 

martefactory

Nuevo usuario
Hola Masta90, gracias por contestar.
En mi caso no utilizo el método sha1 , porque veo que si se ejecuta el programa cálculo y devuelve un resultado correcto.
Según he podido ver (dentro de mis pocos conocimientos de Magento), el programa llega hasta hasta /local/Mage/Ceca/Block/Redirect.php:

<?php
class Mage_Ceca_Block_Standard_Redirect extends Mage_Core_Block_Template {

protected function _construct() {
parent::_construct();
$standard = Mage::getModel('ceca/standard');
$form = new Varien_Data_Form();
$form->setAction($standard->getCecaUrl())
->setId('ceca_standard_checkout')
->setName('Ceca')
->setMethod('POST')
->setUseContainer(true);

foreach ($standard->getStandardCheckoutFormFields() as $field=>$value) {
$form->addField($field, 'hidden', array('name'=>$field, 'value'=>$value));
}
$this->setTemplate('ceca/redirect.phtml');
$this->setFormRedirect($form->toHtml());

}
}

Pero aquí no consigue lanzar la carga de redirect.phtml, delante de $this->setFormRedirect($form->toHtml()); he puesto $this->setTemplate('ceca/redirect.phtml'); para forzar
la carga del redirect.phtml.

Ahora ya funciona!!Espero que no me haya cargado otra cosa je,je

Un saludo
 

Sbegagr

Nuevo usuario
Hola, este módulo me esta dejando loco :(

He intentado algunas de las soluciones dadas en el foro pero me sigue dando el error "Datos no Alfa-numéricos". En el campo "Firma", en vez de mandar el resultado de la firma, está llegando el error que da el propio programa de cálculo cuando le falta algún parámetro para calcularla..

Alguien sabe como solucionar esto?
 

danieluis

Nuevo usuario
Quizás ya lo habéis resuelto, pero no hace falta poner todo eso para hacer un re-stock.


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.
Copiando el cancel que hace PayPal...he sustituido el código que trae CECA en su método cancel.

En vez de :

PHP:
		$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);
he puesto :

PHP:
		$order	=	Mage::getModel('sales/order')->loadByIncrementId($session->getLastRealOrderId());
		if ($order->getId()) {
			$order->cancel()->save();
		}
Con esto, el proceso cancel y luego save del propio modelo de Order me subo la cantidad perdida , incluso si se había quedado a 0, pues lo vuelve a poner en Existencia.

Sobre el tema de las Notificaciones IPN con CECA, aun no me he metido a fondo, a pesar de ver que no funciona.

Saludos y gracias por el aporte juan26
 

Deivid

Nuevo usuario
Hola a todos!! Llevo varios días intentando hacer funcionar el dichoso plugin y he visto que el problema es que a las urls OK y NOK magento les añade al final "?___SID=S". Os paso el apaño para hacerle al archivo /app/code/local/Mage/Ceca/Model/Standard.php:

- Donde crea las variables $URL_OK y $URL_NOK poner lo siguiente:
$URL_OK = str_replace("?___SID=S","",Mage::getUrl($this->getConfigData('URLOK')));
$URL_NOK = str_replace("?___SID=S","",Mage::getUrl($this->getConfigData('URLNOOK')));

- Quitar toda la parte de cálculo con la firma y añadir esto:
$resultado= sha1($clave.$code.$AcquirerBIN.$TerminalID.$ord.$a mount.$currency.$Exponente."SHA1".$URL_OK.$URL_NOK);

- Dentro del array $sArr, modificar donde mete URL_OK y URL_NOK y poner:
'URL_OK' => $URL_OK,
'URL_NOK' => $URL_NOK,

- Y por último, antes de que termine el array, añadir esta línea:
'Cifrado' => 'SHA1'

Un saludo a todos y espero que les sirva!!!!! :D

Chapeau!!!!! Funciona a las mil maravillas.

OJO!!!! Con el copiar y pegar, que me ha pasado y casi me desespero.

Cuando he copiado:

$resultado= sha1($clave.$code.$AcquirerBIN.$TerminalID.$ord.$a mount.$currency.$Exponente."SHA1".$URL_OK.$URL_NOK);

· Fijaros que en amount hay un espacio vacio que hay que quitar ;-)

Por lo demás mastercard :-D
 
Estado
Cerrado para nuevas respuestas
Arriba