Hola.
Recientemente he transferido la tienda que estoy desarrollando al hosting de webempresa. www.tecsol24h.net
Tengo un problema con la tienda de virtuemart en el entorno de pruebas de Sermepa. He utilizado el código php que está en el blog de webempresa, para crear mi método de pago con el código modulo_sermepa.php (La entidad con la que tenemos el TPV es "La Caixa"). En el entorno de pruebas, tanto la tarjeta "autorizada" como la "denegada" funcionan correctamente. El problema de la notificación, que no me actualiza virtuemart al "estado" "confirmado" el pedido en el caso de las operaciones autorizadas. Mirando el área de administración del tpv de La Caixa ,veo en la pestaña notificación que las notificaciones de las operaciones en E-mail salen "Correcto", pero la misma operación en notificación http Asíncrona sale "Error", y el destino del detalle me muestra la ruta de notificacion_sermepa.php en concreto: http://tecsol24h/administrator/components/com_virtuemart/notificacio_sermepa.php.
No se es como si estubiera fallando algo en el archivo de notificacion_sermepa.php o en algún otro archivo y que no pudiera actualizar el pedido.
Como dato también puedo indicar que probe paypal como método de pago en el entorno de pruebas de paypal y también me pasaba lo mismo. Se recibia la petición correctamente pero no me actualizaba el pedido.
Alguna sugerencia intentar depurar el error??
Es normal que virtuemart envie la confirmación del pedido antes de saber si realmente ha tenido exito el pago en el TPV??
Jaume
Hola,
Viendo la url que pones que te da el mensaje de error, parece que es posible que hayas puesto mal el urlMerchant en la configuración del módulo de Sermepa en Virtuemart, ya que veo que pones http://tecsol24h/administrator/components/com_virtuemart/notificacio_sermepa.php
Veo que se llama al archivo notificacio_sermepa.php en lugar de notificacion_sermepa.php. Asegúrate que lo tienes correctamente en la configuración de la pasarela de pago.
En caso de que sí que lo tuvieras bien, editar el archivo notificacino_sermepa.php y asegúrate que hayas puesto los datos correctos de clave, nombre de negocio, código de negocio, terminal, etc. (a partir de la línea 135 del archivo), y que estos coincidan con los de la configuración de la forma de pago en Virtuemart.
Si también es así, realiza la siguiente prueba. En el archivo notificacion_sermepa.php busca el siguiente código (aproximadamente en la línea 146):
if($Ds_Signature==$signature){
y cámbialo por lo siguiente:
if(1==1){
A continuación realiza una prueba de pedido con pago con tarjeta, haciendo que el pago sea correcto, y comprueba si ahora te ha confirmado el pedido. De ser así, el problema está en que no te estaba calculando correctamente la firma en la vuelta.
Gracias antes que nada por el soporte y perdón me habia etivocado al escribir el post, pero la ruta esta
correcta. notificacion_sermepa.php y los datos los he repasado y los veo bien.
He seguido tus indicaciones y aún no me funciona.
He comentado el codigo php linea 151 de mas abaj también en otro pedido if (intval ( $Ds_Response)>=0 &&
intval ( $Ds_Response)<100 ) {
poniendo if(1==1){ para descartar que no fuera problema de la variable $Ds_Response y que siempre me
actualizara en cualquier caso, pero no funciona, y me lo deja como "Pendiente".
Yo deduzco que el problema viene de mas arriba en la consulta a la base de datos.Puede ser??
Hay una cosa que me extraña mucho que es que en el Número de pedido de virtuemart tenga 8 dígitos , en canvio
en la administración del TPV tenga solo 6 dígitos. Es normal??
Jaume
Hola Jaume,
En http://virtuemart.webempresa.eu/index.php?title=Administraci%C3%B3n_de_Pagos tienes a tu disposición el videotutorial de configuración de pasarela de pago con SERMEPA.
Saludos,
Gracias por el soporte, y perdón por responder tan tarde.
Al final tenias razón el problema era que no calculaba bien la firma y que los de "La caixa" no lo tenian bien configurado.
Problema resuelto