Hola,
Estoy utilizando la pasarela de pago SERMEPA (VISA) para realizar los pagos de mi tienda virtual ( http://www.consumodirecto.es) y me encuentro que se realiza correctamente el pago (desde la entidad financiera aparece como transacción aceptada) pero en cambio recibo un email con un error:
Hello,
Se ha recibido una transacción de SERVIRED con una firma erronea.
----------------------------------
Order ID: 17
Order Status Code:0000
Cantidad recibida= 1082.
Cantidad pedido: 1082.
order_servired=00017
Firma recibida=xxxxxxx
Firma generada=yyyyyyyyyyyyyyyyyyyyyyyyyyy
Queda claro que el problema se encuentra en que las firmas generadas no son iguales, no?
Yo he introducido la clave de encriptación correcta en la configuración de la lista de pago de Sermepa y en el fichero notificacion_sermepa.php
Pero lo que no hace es modificarme el estado del pedido de PENDIENTE a CONFIRMADO.
¿Dónde puede estar el problema?
Saludos,
Josep
Hola,
Te recomiendo que revises de nuevo el vídeo de configuración de SERMEPA para asegurarte que todo es correcto:
https://www.webempresa.com/blog/configuracion-de-la-pasarela-de-pago-sermepa-en-virtuemart.html
Una prueba que puedes realizar para descartar que hayas tocado algo más que no localices es instalar un nuevo pack de Joomla con tienda y configurar SERMEPA de nuevo en ese nuevo joomla y ver si en ese te funciona.
Hola Lucas,
Ya he revisado el vídeo y creo que no he cometido errores.
Una pregunta: ¿Si la entidad bancaria ha modificado la clave de encriptación, podría ser una causa razonable? Hace unos días me cambiaron la clave de acceso al panel de control y, en principio, la clave de encriptación no la han tocado.
Si es una causa, ¿como puede ser que la transacción se haya aceptado pero me comente que la firma es errónea?
Saludos,
Josep
Hola,
Si SERMEPA acepta el pedido y el pago los datos de comercio que usas son correctos.
Realiza la prueba que te comento instalando otro joomla con tienda y configurando ahí SERMEPA porque no deberías de tener el problema que comentas si lo has configurado todo bien.
Podría ser un problema de firma SHA1 o SHA_1 pero antes hay que descartar lo que te comento probando en un joomla+vm limpio.
Hola Lucas,
Ok. El próximo lunes intento realizar una instalación nueva y te comento...
Gracias por tu atención...
Saludos,
Josep
Hola Lucas,
He hecho lo que me has pedido y me da el mismo error:
Se ha recibido una transacción de SERVIRED con una firma erronea.
----------------------------------
Order ID: 1
Order Status Code:0000
Cantidad recibida= 2.
Cantidad pedido: 2.
order_servired=0001
En concreto:
¿Qué puede ser? ¿Qué es eso de la función sha1 y sha_1?
Necesito solucionar esto para poder activar la tienda.
Gracias,
Josep
Hola Josep,
Las pruebas las tienes que realizar en entorno de prueba de la pasarela (una vez funciona correctamente en pruebas, luego se pasa a real). No en entorno real y con pedidos de coste 0.
Desconozco si en el sitio que no es de pruebas, la tienes en entorno real.
Saludos
Hola Jordi,
No entiendo lo que me comentas. Simplemente seguí los pasos que me indicó LUCAS (mira los post anteriores):
Realiza la prueba que te comento instalando otro joomla con tienda y configurando ahí SERMEPA porque no deberías de tener el problema que comentas si lo has configurado todo bien.
El entorno es de pruebas pero con datos de sermepa reales.
Ya me diréis...
Saludos,
Josep
Hola Josep,
He leído todo el tema. Si el entorno es real en la pasarela se usan unos datos, y si es de pruebas otros. Por ejemplo:
$url_tpvv='https://sis-t.sermepa.es:25443/sis/realizarPago'; // URL de Sermepa para entorno de pruebas. //$url_tpvv='https://sis.sermepa.es/sis/realizarPago'; // URL de Sermepa para entorno real
Por eso mi consulta era: ¿Tienes la pasarela activada en entorno real o en modo de pruebas en tu sitio web?.
¿Funcionaba correctamente en un determinado entorno y de repente no funciona, o no ha funcionado bien nunca?
Saludos
Hola Jordi,
Primero realicé la prueba en entorno de pruebas con las direcciones y los cambios de parámetros que comentabais en el vídeo.
El problema ha sido cuando he probado con los datos reales (del TPV). Realiza la transacción (VISA me lo cobra) pero recibo un email de SERMEPA indicando que la firma no es correcta y el pedido no cambia de estado.
Lucas me habló de que si en las pruebas no funcionaba podría ser algo de la función sha1 o sha_1 pero que primero teníamos que descartar lo primero.
Perdona pero estoy ansioso en activar la tienda online y éste es el último paso.
Saludos,
Josep
Hola,
Por lo que comentas no me acaba de quedar claro si cuando hiciste las pruebas en e entorno de pruebas el estado del pedido se cambiaba a confirmado o no.
En caso de que en el entorno de pruebas se pudiera realizar el pago con tarjeta de crédito y el estado del pedido no cambiase el problema estaría el archivo notify_servired.php que estás usando, donde es posible que algo esté mal configurado.
Si, en cambio, en el entorno de pruebas el estado del pedido cambiaba a confirmado y en el entorno real no lo hace, el problema estaría en que no has aplicado los cambios de forma correcta tras el cambio al entorno de producción, que básicamente consistiría en cambiar la clave de encriptación y que tiene que coincidir con la que se ha puesto en la configuración de la pasarela de pago en el Virtuemart.
Hola Pablo,
En el entorno de pruebas nunca llegué a realizar un pedido entero con VISA. Piensa que mi tienda no está operativa (los usuarios no pueden darse de alta). Es como si fuera un entorno de pruebas.
En el video se habla de un fichero notificacion_servired.php y no notify_servired.php pero ya lo he verificado y la clave secreta es la misma. Si no fuera así la transacción nunca llegaría a realizarse y no recibiría el cobro en la aplicación de VISA.
Yo me inclino a pensar que hay un problema con la función que genera la firma y que no coincide entre la enviada y la recibida. De hecho, mirando por Internet se habla del tema.
¿Necesitás algún fichero para que lo podáis verificar vosotros?
Saludos,
Josep
Hola,
Es raro lo que me comentas porque normalmente desde Sermepa no dejan realizar el cambio a producción (pagos de prueba a pagos reales) hasta que han verificado que has hecho al menos una prueba de pago correcta y otra de pago incorrecto.
Te adjunto comprimido en un zip un nuevo archivo notify_servired.php, que tendrás que configurar con los datos de tu negocio, haciendo los cambios de la línea 135 a la 138.
El nombre te archivo no tiene por que ser notify_servired.php, sino que tiene que coincidir con el que le hayas puesto en la configuración de la pasarela de pago en Virtuemart, concretamente en el campo $urlMerchant
Hola PABLO,
Gracias :cheer: . El problema está en la función sha_1 que se utiliza en el fichero notify_sermepa.php
En la versión que me has pasado ya está corregido.
Quizás sería conveniente que actualizarais el artículo Artículo instalar TPV Sermepa ya que contiene el fichero con la función que no funciona.
Saludos,
Josep