id-carlosh Posted March 18, 2010 Share Posted March 18, 2010 Hola,usando módulo servired, justo al hacer clic sobre modo de pago servired, accede a esta url:https://sis.sermepa.es/sis/realizarPagoy me dá este error:"Error en datos enviados. Contacte con su comercio."Ahora la información que recibo desde Cajamar, sobre este error, me dicen lo siguiente:"Con relación a su consulta, le informamos de que este error corresponde efectivamente a "error en la firma enviada" Nuestros terminales están configurados con la firma SHA1 Completo y algunos comercios, suponemos que también es el caso de este comercio, nos solicitan el cambio de firma a SHA1 Completo y Ampliado. No obstante la configuración de ambas firmas se realiza de la manera que le explicamos a continuación, si desea que le modifiquemos la firma a SHA1 Completo y ampliado solo debe solicitárnoslo a través de [email protected]Sha 1 completo, la firma la tiene configurada para que la calcule así:"message = amount + order + merchant_code + currency + Clave_encript;"Si la quiere Sha 1 completo ampliado, deberá solicitárnoslo y deberá configurar la firma así:"message = amount + order + merchant_code + currency + transactiontype + merchanturl + Clave_encript;""OK, no entiendo abosultamente NADA que significa todo esto.POR FAVOR, ¿alguno podría ayudarme con esto? ¿POR FAVOR?Os juro que llevo intentando solucionar esto más de un mes, buscando por todo este foro e internet y no he encontrado aún nadie que me aclare esto.Muchas gracias. Link to comment Share on other sites More sharing options...
victorgodoy Posted March 19, 2010 Share Posted March 19, 2010 Hola.Ese mismo problema lo está teniendo un cliente del software de comercio electrónico de Arsys. Tienes que solicitar a Cajamar que cambie la configuración de su codificación para que sea compatible (Sha 1 completo ampliado).Por otro lado, me gustaría saber dónde has conseguido el módulo de TPV para Prestashop, porque estamos detrás de instalarlo.Un saludo,Víctor Link to comment Share on other sites More sharing options...
Tanausú Posted August 5, 2010 Share Posted August 5, 2010 No creo que el error se deba a tener activado la "firma a SHA1 Completo y Ampliado", ya que yo las tengo activadas y NO me funcionan con el PRESTASHOP, en cambio SÍ QUE me funcionan con el Joomla+Virtuemart. Por eso no se a qué se debe el error, NO logro solucionarlo. He probado el módulo de "La Caixa", que muchos dicen que funciona, a mí tampoco; he probado el módulo de servired y nada de nada, siempre me da el mismo error final, donde indica que " Error en datos enviados. Contacte con su comercio". Si alguien conoce la solución agradecería su ayuda. Un saludo. Link to comment Share on other sites More sharing options...
carlymx Posted January 7, 2011 Share Posted January 7, 2011 Hola,usando módulo servired, justo al hacer clic sobre modo de pago servired, accede a esta url:https://sis.sermepa.es/sis/realizarPagoy me dá este error:"Error en datos enviados. Contacte con su comercio."Ahora la información que recibo desde Cajamar, sobre este error, me dicen lo siguiente:"Con relación a su consulta, le informamos de que este error corresponde efectivamente a "error en la firma enviada" Nuestros terminales están configurados con la firma SHA1 Completo y algunos comercios, suponemos que también es el caso de este comercio, nos solicitan el cambio de firma a SHA1 Completo y Ampliado. No obstante la configuración de ambas firmas se realiza de la manera que le explicamos a continuación, si desea que le modifiquemos la firma a SHA1 Completo y ampliado solo debe solicitárnoslo a través de [email protected]Sha 1 completo, la firma la tiene configurada para que la calcule así:"message = amount + order + merchant_code + currency + Clave_encript;"Si la quiere Sha 1 completo ampliado, deberá solicitárnoslo y deberá configurar la firma así:"message = amount + order + merchant_code + currency + transactiontype + merchanturl + Clave_encript;""OK, no entiendo abosultamente NADA que significa todo esto.POR FAVOR, ¿alguno podría ayudarme con esto? ¿POR FAVOR?Os juro que llevo intentando solucionar esto más de un mes, buscando por todo este foro e internet y no he encontrado aún nadie que me aclare esto.Muchas gracias. He encontrado una Solucion:En el Modulo ServiRed 0.7v4 que dejo Adjunto. a partir de la linea 283 se cita el orden que menciona la respuesta que te dio el servicio tecnico, observaras que esta ordenada para SHA1 Completo y Ampliado, solo tienes de borrar la parte de la linea como te muestro en la imagen porque por defecto como bien dicen el sitema el servired lo tiene configurado mediante SHA1 Completo y el Modulo esta configurado para ser Ampliado.Otra forma es que les ordenes activarte el Sistema SHA1 Completo y Ampliado, tu eliges.PD: Les dejo el archivo sservired.php modificado por mi, solo tienen de comentar o no la linea que necesiten según su la configuración de su banco, en este archivo esta activada por defecto la Obcion de ' SHA1 Completo'.Modulo Pago - servired 07 v4.zip servired.php Link to comment Share on other sites More sharing options...
tamu secreto Posted January 8, 2011 Share Posted January 8, 2011 Si al enviar el formulario de pago que ejecuta enremoto (su tienda) a la aplicación TPV Virtual aparece el siguiente mensaje de error: TRANSACCION DENEGADA: ERROR EN DATOS ENVIADOS. CONTACTE CON SU COMERCIO; Implicará que alguno de los parámetros de los campos enviados es erróneo.Como está utilizando la urls https://sis.sermepa.es/sis/realizarPagoEs sencillo localizar el campo erróneo, para ello deberá ver el código fuente de la página de error y buscar, entre el texto HTML, la cadena —SIS . El valor numérico xxxx adjunto a la instrucción Este valor numrico lleva un código de error y una definición establecida por TVP :ejemplos: SIS0008 significa que el campo Ds_Merchant_MerchantCode posee un valor vacio SIS0009 significa que el campo Ds_Merchant_MerchantCode posee un Error de formatoRevise el código HTML resultante de la pagina de error, luego coloque aquí el código saludos!!PD: voy a ver el modulo post por Petaspam y analizar el código rápidamente y ver qué sucede con el mismo. 8-/ Link to comment Share on other sites More sharing options...
tamu secreto Posted January 8, 2011 Share Posted January 8, 2011 Bien el modulo post por Petaspam, no sirve. Es un modulo que anda dando vueltas desde los principios de Pretashop.Esta programado muy de los pelos, además confunde la implementación de las variables y entorno para el envío de información al el tvp, puede que haciendo alguna correcciones se pueda lograr que el TVP genere la pagina de pago, sin embargo no lo recomiendo, acontinuación coloco una breve lista de los errores que vi a la ligera en el modulo en cuestión: 1- La firma SHA-1 está utilizando strtoupper esto lo que hace es pasar toda la cadena a mayúsculas, en principio ese es un error. Mirar archivo servired.phpDebería hacerse así: $mensaje = $cantidad . $numpedido . $codigo .'978'.'0'.$urltienda . $clave;$firma = sha1($mensaje);2- las urls de respuestas estan equivocadas. Ds_Merchant_MerchantURL : Cambiar todo este código en servired.php: $ssl = Tools::getValue('ssl', $this->ssl); if ($ssl=='no') $urltienda = 'http://'.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'modules/servired/respuesta_tpv.php'; elseif($ssl=='si') $urltienda = 'https://'.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'modules/servired/respuesta_tpv.php'; else $urltienda = 'ninguna'; Por esto :$urltienda = 'https://'.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'modules/servired/respuesta_tpv.php'; Tienen que tener cuidado con este tipo de módulos, por qué? Pues las personas mal intencionadas que conozcan el este código pueden hacer mucho daño con el en sus tiendas, el modulo esta recibiendo parámetros vía POST Y GET que no están siendo filtrados y pueden pasar directamente al DB, o insertar remotamente código en sus archivos, bueno mejor no explico mucho sobre esto… Lo peor que les puede pasar es que los clientes sean engañados y llevados a una url distinta al la del tpv pero similar en su diseño, esto se conoce phishing ma información aca http://es.wikipedia.org/wiki/Phishingsi le pasa esto, recuerden que están utilizando un logo visa de verificado y certificado por visa, mastercard, esto no solo le traerá problemas con sus clientes, si estos son estafados, si no que pueden ser demandados por las empresas visa y mastercard. Bueno solo una visión que le presento, pero es mejor prevenir que llorar. Yo en particular les recomendaria comprar los modulos de pagos a la gente que tiene experiencia en la creacion de los mismos (como yo %-P ), es mejor invertir en esto antes de que en diseño u en modulos que hacen estrellistas o lanzan ventanitas.... De todos modos estoy haciendo un modulo para La Caixa Catalunya y CECA, que publicare para su descarga desde mi tienda, el modulo lo tengo que entregar mañana, así que cuando este aprobado y avalado, lo posteo en el foro.saludos!! ;-P Link to comment Share on other sites More sharing options...
carlymx Posted January 9, 2011 Share Posted January 9, 2011 Bien el modulo posto por Petaspam, no sirve. Es un modulo que anda dando vueltas desde los principios de Pretashop. Hola Tamu. buenos días.El modulo que puse es la versión "mas" nueva que encontré en esta pagina:http://todoprestashop.com/foro/viewtopic.php?f=1&t=2488Tube de hacer una modificación para que usara el SHA1 Completo y no el Ampliado pero el modulo esta tal cual lo baje de la web indicada, lo comento por si pueden aver malos entendidos, que si hay algo raro ya venia de base... no se si me explico?Es cierto lo que dices del Phishing siempre hay un desalmado que intenta aprovecharse de los demás, espero que en esta comunidad nunca suceda... estaríamos vendidos y la credibilidad de la misma se iría al traste.Si como bien dices hace tiempo que rula por ahí y existen de mejores y mas nuevas, te agradecería enormemente que las subieras aquí para poder usarlas, dado que no he sido capaz de encontrar nada mejor.Mil Gracias Link to comment Share on other sites More sharing options...
tamu secreto Posted January 9, 2011 Share Posted January 9, 2011 Pues si mira arriba de todos coloque esto Bien el modulo post por Petaspam, no sirve. Es un modulo que anda dando vueltas desde los principios de Pretashop. no recuerdo quien fue el autor, pero se posteo en este foro, el modulo no es que tenga algo malo, lo que tiene es un desorden y una confucion con la recepcion de las veriables. a ver para que sirva para todos, lo que ofrece la caixa, ceca, paypal etc, son unos TPV muy bien pensados son pocas las pasarelas que envian informacion a la tienda, normalmente uno debe ingeniarselas para generar una orden al regresar de la pasarela a la tienda.En este caso el modulo recibe parametros via post, genera un firma con los parametros recibidos esto esta bien, pero habria que aprovechar mas esos parametros para darle mas dinamismo al modulo, aparte de filtralos antes de cualquier accion. En el caso del modulo ahora que lo mirado bien, no esta tan mal, el autor crea una nueva firma con los parametros recibidos y luego compara con la firma local, sin embargo ahi puede quedar un brecha de error, una vez que compara la firmas no genera una orden... por mi parte validaria cada dato antes de hacer cualquier accion en la tienda, lo mejor seria asegurar que si espero recibir un dato numerio que el dato que recibido sea numerico y asi con cada parametro, si todo esta bien recibido recien ahi comparar la firma, dejemos esto de lado, volviendo al modulo en cuestion, para que les genere la orden pueden probar haciendo esto, buscar este codigo em el archivo respuesta_tpv.php : if (!empty($_POST)){ // Recoger datos de respuesta $total = $_POST["Ds_Amount"]; $pedido = $_POST["Ds_Order"]; $codigo = $_POST["Ds_MerchantCode"]; $moneda = $_POST["Ds_Currency"]; $respuesta = $_POST["Ds_Response"]; $firma_remota = $_POST["Ds_Signature"]; // Creamos objeto $servired = new servired(); //Verificamos opciones $error_pago = Configuration::get('SERVIRED_ERROR_PAGO'); // Contrase�a secreta $clave = Configuration::get('SERVIRED_CLAVE'); // C�lculo del SHA1 $mensaje = $total . $pedido . $codigo . $moneda . $respuesta . $clave; $firma_local = strtoupper(sha1($mensaje)); if ($firma_local == $firma_remota){ // Formatear variables // NINO - eliminar el punto de los miles para evitar error en pago // ORIGINAL - $total = number_format($total / 100,4); $total = number_format($total / 100,4,'.', ''); $pedido = substr($pedido,0,8); $pedido = intval($pedido); $respuesta = intval($respuesta); $moneda_tienda = 1; // Euros if ($respuesta < 101){ // Compra v�lida $mailvars=array(); $servired->validateOrder($pedido, _PS_OS_PAYMENT_, $total, $servired->displayName, NULL, $mailvars, $moneda_tienda); }else{ // Compra no v�lida if ($error_pago=="no"){ //se anota el pedido como no pagado $servired->validateOrder($pedido, _PS_OS_ERROR_, 0, $servired->displayName, 'errores:'.$respuesta); } elseif ($error_pago=="si"){ //Se permite al cliente intentar otra vez el pago } } } } ?> cambiar todo eso por esto: if (!empty($_POST)){ // Recoger datos de respuesta $total = $_POST["Ds_Amount"]; $pedido = $_POST["Ds_Order"]; $codigo = $_POST["Ds_MerchantCode"]; $moneda = $_POST["Ds_Currency"]; $respuesta = $_POST["Ds_Response"]; $firma_remota = $_POST["Ds_Signature"]; if ($firma_local == $firma_remota){ $currency = new Currency(intval(isset($_POST['currency_payement']) ? $_POST['currency_payement'] : $cookie->id_currency)); $total = floatval(number_format($cart->getOrderTotal(true, 3), 2, '.', '')); $mailVars = array(/*variables tomadas de la configuracion para los mails */); $servired = new servired); $servired ->validateOrder($cart->id,_PS_OS_PAYMENT_, $total, $servired->displayName, NULL, $mailVars, $currency->id); $order = new Order($servired->currentOrder); Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?id_cart='.$cart->id.'&id;_module='.$servired->id.'&id;_order='.$servired->currentOrder.'&key;='.$order->secure_key); }else{ $servired->validateOrder($pedido, _PS_OS_ERROR_, 0, $servired->displayName, 'errores:'.$respuesta); } } ?> la variable $firma_local debe ser cargada desde la classe llamando a la function que la contiene:$servired = new servired);$firma_local = $servired->aca va y debe estar antes del if ... bueno de todos modos es algo hecho a las apuradas, luego si tengo tiempo veo como les fue, espero terminar el modulo lacaixa hoy :-S saludos!! Link to comment Share on other sites More sharing options...
carlymx Posted January 11, 2011 Share Posted January 11, 2011 Hola buenas tardes Tamu.He estado probando las lineas que has ido indicando y he tenido problemas con las siguientes, al sustituir: $ssl = Tools::getValue('ssl', $this->ssl); if ($ssl=='no') $urltienda = 'http://'.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'modules/servired/respuesta_tpv.php'; elseif($ssl=='si') $urltienda = 'https://'.$_SERVER['HTTP_HOST'].__PS_BASE_URI__.'modules/servired/respuesta_tpv.php'; else $urltienda = 'ninguna'; por $urltienda = ‘https://’.$_SERVER[‘HTTP_HOST’].PS_BASE_URI.‘modules/servired/respuesta_tpv.php’; Me da un error del modulo 'ServiRed' y no me lo carga, supongo porque se le han eliminado las opciones para seleccionar el tipo de pasarela (Normal 'http//' o Segura https//') Yo tambien lo veo absurdo dado que el modulo si seleccionas el tipo de direccion SSL no termina correctamente y el carrito no pasa a pedido... bueno supongo que habría que eliminar la posibilidad de elegir.Los cambios sobre el archivo 'respuesta_tpv.php' los probare esta misma noche ya te contare.Por lo demás esperando con paciencia el modulo que estas terminando.Un Saludo. Link to comment Share on other sites More sharing options...
carlymx Posted January 11, 2011 Share Posted January 11, 2011 Hpla buenas noches.He estado probando el código que paso Tamu: if (!empty($_POST)){ // Recoger datos de respuesta $total = $_POST["Ds_Amount"]; $pedido = $_POST["Ds_Order"]; $codigo = $_POST["Ds_MerchantCode"]; $moneda = $_POST["Ds_Currency"]; $respuesta = $_POST["Ds_Response"]; $firma_remota = $_POST["Ds_Signature"]; if ($firma_local == $firma_remota){ $currency = new Currency(intval(isset($_POST['currency_payement']) ? $_POST['currency_payement'] : $cookie->id_currency)); $total = floatval(number_format($cart->getOrderTotal(true, 3), 2, '.', '')); $mailVars = array(/*variables tomadas de la configuracion para los mails */); $servired = new servired); $servired ->validateOrder($cart->id,_PS_OS_PAYMENT_, $total, $servired->displayName, NULL, $mailVars, $currency->id); $order = new Order($servired->currentOrder); Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?id_cart='.$cart->id.'&id;_module='.$servired->id.'&id;_order='.$servired->currentOrder.'&key;='.$order->secure_key); }else{ $servired->validateOrder($pedido, _PS_OS_ERROR_, 0, $servired->displayName, 'errores:'.$respuesta); } } ?> Al volver con el pago efectuado correctamente a la tienda, nos dice que el pago a sido todo un exito, pero el carrito sigue lleno y por tanto el pedido no se tramita hacia el BackOffice, vamos como si no lo uvieramos pagado, en cambio el Panel de ServiRed, dice que hay un pago efectuado.Un Saludo. Link to comment Share on other sites More sharing options...
tamu secreto Posted January 12, 2011 Share Posted January 12, 2011 Pues seguramente porque el numero de orden que envia el TVP no es el mismo que tiene prestashop, recuerda que en codigo se ha añadido ceros a la izquierda, lo hay que hacer es quitar los ceros de la variable $pedido = $_POST["Ds_Order"]; una forma rapida sin utilizar funciones especiales seria aplicando simple trukillo algo asi: $pedido = $_POST["Ds_Order"]; $pedido=(string)(int)$pedido; claro que ahora $orden debe ser $pedido, petaspam Mira ya tengo casi terminado el modulo la caixa seguramente funcionara tambien para ceca y demas similares, el tema es que estoy esperando que a mi cliente le habiliten la opciones del tvp. ahi te envio un privado por si quieres probar mi modulo, me falta terminar la parte del retorno a la tienda, pero creo que va funcionar, mi idea es registrar todas las activdades y respuestas del tvp, aprovechando IPN (notificacion de pago instantanea) bueno catactame a ver si podemos terminarlo, yo lo programo tu lo pruebas...ahi te mando un privado!Saludos!! Link to comment Share on other sites More sharing options...
torres Posted January 17, 2011 Share Posted January 17, 2011 He estado probando todas las modificaciones que mencionais en este Post y sigo sin conseguir que el pedido se elimine del carritoy pase a formar parte de Pedidos. Es una lástima que el prestashop tenga tantos problemas a la hora de utilizar la pasarela de pagos.Un saludo a todos. Link to comment Share on other sites More sharing options...
tamu secreto Posted January 20, 2011 Share Posted January 20, 2011 He estado probando todas las modificaciones que mencionais en este Post y sigo sin conseguir que el pedido se elimine del carritoy pase a formar parte de Pedidos. Es una lástima que el prestashop tenga tantos problemas a la hora de utilizar la pasarela de pagos.Un saludo a todos. Prestashop no tiene los problemas 8-/ los problemas estan en la mala interprestacion de los usuarios a la hora de crear un modulo, el modulo que ustedes necesitan practicamente es un IPN un notificador de pago instantaneo, pues yo lo que les pido es un poquito de paciencia ya he terminado el modulo que necesitan, solo me falta testearlo en una tienda real, sucede que mi cliente tiene una version de pretashop demasiado antigua asi que no he podido hacerlo funcionar alli, ahora estoy haciendo una intalacion de una tienda nueva dentro del dominio de mi cliente, luego si todo marcha como espero subire el modulo para descargar...Cuando vean el modulo que he realizado se daran cuenta de la gran diferencia que hay entre que hice y este que ustedes quieren usar. saludos!! Link to comment Share on other sites More sharing options...
tamu secreto Posted January 21, 2011 Share Posted January 21, 2011 hecho http://www.prestashop.com/forums/viewthread/88053/discusin_general/modulo_la_caixa_catalunya_red_servired__gratis/saludos!! Link to comment Share on other sites More sharing options...
Recommended Posts