Author Topic: New Payment Module: TPV Virtual Servired-Sermepa  (Read 153601 times)

tobyct

  • Beginner
  • *
  • Posts: 3
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #30 on: June 16, 2009, 17:11:31 pm »
Copy and paste the txt from here http://www.tfpc.co.uk/module.txt into the module in virtuamart.

bakerinspain

  • Beginner
  • *
  • Posts: 2
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #31 on: June 17, 2009, 11:48:07 am »
I have installed this as a payment module. But when i click confirm order it doesnt go anywhere it just says "order confirmed"! Can anyone help with this?

tobyct

  • Beginner
  • *
  • Posts: 3
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #32 on: June 24, 2009, 09:18:05 am »
Hi Baker.

Have you got all the details from the bank? The keys, codes etc etc.

mmliju

  • Beginner
  • *
  • Posts: 1
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #33 on: July 22, 2009, 09:17:37 am »
i am new to this . i am getting an error  Error en datos enviados. Contacte con su comercio.

jplana

  • Beginner
  • *
  • Posts: 4
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #34 on: July 24, 2009, 12:32:01 pm »
Hola, a mi tambien me aparece lo mismo.
Estoy utilizando joomla 1.5.12 y VM 1.1.3

He buscado por infinidad de lugares y lo que he encontrado no me ha funcionado.
El codigo que se indica en el principio de este post (module.txt) es el único que me conecta pero, con el mensaje de"Error en datos enviados. Contacte con su comercio".

profesorgame

  • Beginner
  • *
  • Posts: 10
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #35 on: October 03, 2009, 13:05:50 pm »
Hola, a mi tambien me aparece lo mismo.
Estoy utilizando joomla 1.5.12 y VM 1.1.3

He buscado por infinidad de lugares y lo que he encontrado no me ha funcionado.
El codigo que se indica en el principio de este post (module.txt) es el único que me conecta pero, con el mensaje de"Error en datos enviados. Contacte con su comercio".
Lo mismo digo.
Esto ya me esta tocando las pelotas, sinceramente.
No se que coño pasa y eso que he revisado el codigo 100k veces, espacios, editar las variables, editar los entornos, buscar errores de codeo..... Al parecer esta todo bien; no se porque no funciona :-/
¿Alguién de las personas que les funciona nos podria dejar por aqui la descarga del código?

----

Virtuemart developers.... Practically everyone in this post we need your help.
Does anyone of those could make them work for us here to download the code?

Malversan

  • Beginner
  • *
  • Posts: 14
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #36 on: October 06, 2009, 08:15:56 am »
Un servidor se peleó con este tema hasta resolverlo.

Para evitaros los errores que surgen por añadir código a mano o usar diferentes configuraciones de TPV, creé un componente Joomla administrable que se encarga de todo lo necesario sin tener que tocar fichero alguno: Componente para pago en VirtuMart mediante TPV virtual Servired-SERMEPA.

Atención: Este componente fue desarrollado y probado únicamente con Joomla 1.0.13 y VirtueMart 1.0.13. Añado además que no proveo soporte para el mismo. Pero sin duda os puede servir para resolver definitivamente el problema.

Mis agradecimientos a Hoppe y a Vivian, que hicieron posible este salto adelante.

albandy

  • Beginner
  • *
  • Posts: 4
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #37 on: October 06, 2009, 19:25:23 pm »
Problema del "Error de datos enviados"
Cambiad esto:
$order = '00'.$db->f("order_id");
por esto:
$order = $db->f("order_id");
while (strlen($order)<4) $order="0".$order;

Luego si usais PHP5 las funciones de sha vienen integradas, por lo que deberiais ajustar los cálculos de sha además de que podeis utilizar el urlMerchant.

cambiais esto:
$sha = new SHA;

$message = $amount.$order.$code.$currency.$clave;

$digest1 = $sha->hash_string($message);

$signature = strtoupper ($sha->hash_to_string( $digest1 ));

por esto otro:
$message = $amount.$order.$code.$currency.$tipoOperacion.$urlMerchant.$clave;
$signature = strtoupper(sha1($message));

y eliminais todas las funciones de cálulo del hash sha, es decir, desde :

<?PHP

// Algoritmo SHA-1. No hace falta entenderlo, es matematica pura y dura.

...........

hasta:
..........
      return $this->hash_bytes( $bytes );

   }

}

?>

Yo ahora estoy liado intentando automatizar el estado del pedido cuando se realice el pago, y de momento lo único que veo viable es crearme mi propia página de retorno, recuperar las variables y actualizar directamente la BD.


albandy

  • Beginner
  • *
  • Posts: 4
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #38 on: October 07, 2009, 11:39:24 am »
Un servidor se peleó con este tema hasta resolverlo.

Para evitaros los errores que surgen por añadir código a mano o usar diferentes configuraciones de TPV, creé un componente Joomla administrable que se encarga de todo lo necesario sin tener que tocar fichero alguno: Componente para pago en VirtuMart mediante TPV virtual Servired-SERMEPA.

Atención: Este componente fue desarrollado y probado únicamente con Joomla 1.0.13 y VirtueMart 1.0.13. Añado además que no proveo soporte para el mismo. Pero sin duda os puede servir para resolver definitivamente el problema.

Mis agradecimientos a Hoppe y a Vivian, que hicieron posible este salto adelante.

Me he estado leyendo tu link (ayer me parece que el servidor estaba caído o saturado) y la verdad es que tu solución pinta muy bien, esta tarde la probaré con joomla 1.5 y si funciona correctamente me olvidaré de empezar a toquetear a mano la bd del virtuemart.

Respecto a lo que comentas sobre la transacción cuando falla, también hay que tener en cuenta que sermepa obliga que como mínimo el código de pedido tenga 4 dígitos numéricos al principio del string (por eso lo del while en mi cutre-parche sobre código publicado en este hilo).

Muchas gracias por tu aporte.

Malversan

  • Beginner
  • *
  • Posts: 14
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #39 on: October 07, 2009, 17:53:57 pm »

Respecto a lo que comentas sobre la transacción cuando falla, también hay que tener en cuenta que sermepa obliga que como mínimo el código de pedido tenga 4 dígitos numéricos al principio del string (por eso lo del while en mi cutre-parche sobre código publicado en este hilo).

Eso lógicamente lo tuve en cuenta. El código de pedido que le paso a SERMEPA es siempre una cadena de 12 caracteres: cojo el código de pedido VirtueMart, le añado a la derecha una letra y tres dígitos aleatorios para distinguir los intentos de transacción (así evito que SERMEPA dé error por identificador repetido si el pago falla y se reintenta más tarde), y luego le añado ceros a la izquierda hasta completar doce caracteres (para ello no hace falta ningún bucle, tienes la función str_pad()).

Me he estado leyendo tu link (ayer me parece que el servidor estaba caído o saturado) y la verdad es que tu solución pinta muy bien, esta tarde la probaré con joomla 1.5 y si funciona correctamente me olvidaré de empezar a toquetear a mano la bd del virtuemart.

No puedo garantizar que el componente funcione con Joomla 1.5 puesto que lo desarrollé y probé únicamente con Joomla 1.0.13. Pero si fuese necesario adaptarlo, no debería resultaros difícil hacerlo a quienes conocéis los entresijos de Joomla 1.5.

albandy

  • Beginner
  • *
  • Posts: 4
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #40 on: October 08, 2009, 17:21:48 pm »

Respecto a lo que comentas sobre la transacción cuando falla, también hay que tener en cuenta que sermepa obliga que como mínimo el código de pedido tenga 4 dígitos numéricos al principio del string (por eso lo del while en mi cutre-parche sobre código publicado en este hilo).

Eso lógicamente lo tuve en cuenta. El código de pedido que le paso a SERMEPA es siempre una cadena de 12 caracteres: cojo el código de pedido VirtueMart, le añado a la derecha una letra y tres dígitos aleatorios para distinguir los intentos de transacción (así evito que SERMEPA dé error por identificador repetido si el pago falla y se reintenta más tarde), y luego le añado ceros a la izquierda hasta completar doce caracteres (para ello no hace falta ningún bucle, tienes la función str_pad()).

No, no lo decía por tí, es que en el código que hay aquí dentro del archivo modulo.txt hay esto: $order = '00'.$db->f("order_id");

Me he estado leyendo tu link (ayer me parece que el servidor estaba caído o saturado) y la verdad es que tu solución pinta muy bien, esta tarde la probaré con joomla 1.5 y si funciona correctamente me olvidaré de empezar a toquetear a mano la bd del virtuemart.

No puedo garantizar que el componente funcione con Joomla 1.5 puesto que lo desarrollé y probé únicamente con Joomla 1.0.13. Pero si fuese necesario adaptarlo, no debería resultaros difícil hacerlo a quienes conocéis los entresijos de Joomla 1.5.

Por desgracia en Joomla 1.5 no funciona bien, se instala (cambiando LICENSE.txt por LICENSE.TXT, ya que los servidores Linux son case sensitive) correctamente, pero luego no rellena bien los valores de las variables (es posible que si que funcione todo en un servidor que no sea case sensitive).

De momento como voy un poco de culo acabaré de implemetarlo tal y como había empezado, haciendo una modificación sobre el codigo antiguo del modulo.txt y haciendo a mano las modificaciones de la BD, y cuando tenga un poco de tiempo ya miraré de tocar tu código para que funcione en 1.5

Muchas gracias por todo.

Malversan

  • Beginner
  • *
  • Posts: 14
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #41 on: October 19, 2009, 03:32:38 am »
se instala (cambiando LICENSE.txt por LICENSE.TXT, ya que los servidores Linux son case sensitive)

Ciertamente en el fichero "servired.xml" hay un gazapo que no había visto: debería poner "LICENSE.txt", que es el nombre correcto del fichero. Gajes de paquetizar el componente deprisa y corriendo para subirlo al foro. Pero esto sólo afecta a la instalación de la documentación, no afecta al funcionamiento del componente.

pero luego no rellena bien los valores de las variables

Esto suena más preocupante. ¿A qué te refieres exactamente con "luego" y "los valores de las variables"? Quizá con indicaciones os pueda ayudar a adaptar el instalador, pero piensa que yo no tengo un Joomla 1.5 delante en estos momentos, de modo que no sé a qué te refieres si no concretas mucho.

De momento como voy un poco de culo acabaré de implemetarlo tal y como había empezado, haciendo una modificación sobre el codigo antiguo del modulo.txt y haciendo a mano las modificaciones de la BD

No es por menospreciar el código con el que estáis tratando, ni mucho menos (yo partí de él para hacer mi componente, como aclaro en la documentación), pero es que todos los problemas con los que os estáis encontrando ya los solucioné hace más de un año y están totalmente resueltos.

Me resulta curioso que sigáis con un código que os falla y que una vez personalizado no es mantenible, en lugar de adaptar un componente libre ya hecho que no sólo funciona sino que además añade mantenimiento desde el "backend" (incluso de numerosas opciones que en vuestro código no tenéis).

De entrada se requiere menos tiempo para adaptar el instalador ya hecho que para tocar la BD "a mano". Pero en fin, veo pocas ganas de hacer algo útil que sirva a los demás.

albandy

  • Beginner
  • *
  • Posts: 4
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #42 on: October 19, 2009, 17:20:16 pm »
se instala (cambiando LICENSE.txt por LICENSE.TXT, ya que los servidores Linux son case sensitive)

Ciertamente en el fichero "servired.xml" hay un gazapo que no había visto: debería poner "LICENSE.txt", que es el nombre correcto del fichero. Gajes de paquetizar el componente deprisa y corriendo para subirlo al foro. Pero esto sólo afecta a la instalación de la documentación, no afecta al funcionamiento del componente.

pero luego no rellena bien los valores de las variables

Esto suena más preocupante. ¿A qué te refieres exactamente con "luego" y "los valores de las variables"? Quizá con indicaciones os pueda ayudar a adaptar el instalador, pero piensa que yo no tengo un Joomla 1.5 delante en estos momentos, de modo que no sé a qué te refieres si no concretas mucho.

De momento como voy un poco de culo acabaré de implemetarlo tal y como había empezado, haciendo una modificación sobre el codigo antiguo del modulo.txt y haciendo a mano las modificaciones de la BD

No es por menospreciar el código con el que estáis tratando, ni mucho menos (yo partí de él para hacer mi componente, como aclaro en la documentación), pero es que todos los problemas con los que os estáis encontrando ya los solucioné hace más de un año y están totalmente resueltos.

Me resulta curioso que sigáis con un código que os falla y que una vez personalizado no es mantenible, en lugar de adaptar un componente libre ya hecho que no sólo funciona sino que además añade mantenimiento desde el "backend" (incluso de numerosas opciones que en vuestro código no tenéis).

De entrada se requiere menos tiempo para adaptar el instalador ya hecho que para tocar la BD "a mano". Pero en fin, veo pocas ganas de hacer algo útil que sirva a los demás.

Ni mucho menos era mi intención menospreciar tu trabajo ni darlo a entender, por lo que te pido disculpas.

Te cuento un poco mi caso:
Soy programador Java, he trabajado con el TPV de sermepa siempre sobre java, y como el que se encargaba de PHP y Joomla en mi empresa nos ha dejado (y me alegro por él porqué ha sido para mejor) me ha tocado comerme el marrón, ya que ahora soy el único que antes ha trabajado con el TPV.

Como no tengo ni idea de Joomla y lo que se de PHP es porqué se parece un huevo a C (según mi jefe se supone que debo de saber programar en todos los lenguajes existentes en el mundo mundial, y eso que yo soy del departamento de Java)  pues he hecho lo que he podido (es decir, crear una página de retorno, comprobar que la firma sea correcta y actualizar el pedido en la BD)

Respecto a las variables vacías, al hacer editar código una vez estás apunto de realizar el POST contra el tpv, las variables que le pasas con nombre DS_* estan vacías.

Me gustaría haber podido ayudar un poco más, e incluso intentar convertir tu módulo a Joomla 1.5, pero no tengo los conocimientos suficientes sobre Joomla.

Y de nuevo disculpas si te has sentido ofendido.

Malversan

  • Beginner
  • *
  • Posts: 14
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #43 on: October 28, 2009, 06:23:21 am »
Respecto a las variables vacías, al hacer editar código una vez estás apunto de realizar el POST contra el tpv, las variables que le pasas con nombre DS_* estan vacías.

¿Has configurado el componente antes de probarlo? Como dije no hay que tocar código ni variables, pero lógicamente mi componente no conoce los códigos de identificación de tu TPV, hay que especificarlos en el administrador.

Las variables que mencionas se sacan de la configuración del componente: tu código de comercio, tu número de terminal, la clave secreta de tu TPV, la divisa y el idioma de tu TPV, etc. De este modo no hay que modificar ni una línea de código y el TPV es mantenible y configurable como un componente más (ésa es la gracia de un componente: lo instalas, lo configuras y funciona).

Pero evidentemente mi componente no se inventa dichas variables, esos datos hay que especificarlos al configurar el componente usando el "backend" de administración de Joomla. Puedes hacerlo accediendo a la opción "VirtueMart - Servired" en el menú de configuración de componentes, tal y como indica la documentación.

La pantalla de configuración del componente está hecha para que la entienda un usuario. Todos los valores internamente codificados (tipo de clave, idioma, divisa del terminal) aparecen como opciones de texto seleccionables para que no tengas que usar la documentación de SERMEPA en ningún momento. La ayuda de cada opción te dice qué es cada cosa y te indica incluso cuáles de esos datos son los que te proporciona tu banco cuando ponen en marcha tu TPV.


Otra cosa: para ver el código HTML de una página dinámica te recomiendo que utilices la opción "Ver código generado" de la extensión "Web developer" de Firefox. Diría que la opción estándar "Ver código fuente" (tanto de Firefox como de IE) no te muestra realmente la página que estás viendo, sino que la vuelve a pedir al servidor web, con lo cual en operaciones con POST las variables suelen perderse y los valores dinámicos no aparecen.


Ni mucho menos era mi intención menospreciar tu trabajo ni darlo a entender, por lo que te pido disculpas.

No lo había tomado en ese sentido, no te preocupes. Es simplemente que no comprendo que sigáis por el camino difícil cuando el trabajo ya está hecho y todos los problemas que os encontráis ya están resueltos.

Por cierto, con las indicaciones que me has dado me confirmas que el instalador del componente sí funciona en Joomla 1.5. La errata en el nombre del fichero "LICENSE.txt" era algo trivial que acabo de corregir (puedes volver a descargar el componente del mismo sitio para comprobarlo).

profesorgame

  • Beginner
  • *
  • Posts: 10
Re: New Payment Module: TPV Virtual Servired-Sermepa
« Reply #44 on: November 03, 2009, 11:24:44 am »
Decis que con joomla 1.5 no tira bien :(

Habria alguna forma de arreglarlo¿?

Ya llevo algo de tiempo en joomla pero hay algunas cosillas que se me resisten, como la porgramacion para este que no se exactamente como va.