juanmirod / woocommerce-ceca-gateway

CECA gateway for Woocomerce Wordpress plugin
GNU General Public License v3.0
23 stars 21 forks source link

Dirección Comunicacion Online #1

Closed DickeyFuller closed 8 years ago

DickeyFuller commented 9 years ago

En la documentación no se indica cual es la dirección para la comunicación online. ¿Cuál es? Saludos,

juanmirod commented 9 years ago

La dirección de la comunicación online debería ser:

http://example.com/?wc-api=woocommerce_api_wc_gateway_ceca

No olvides desactivar el modo sandbox.

Gracias por contribuir!

DickeyFuller commented 9 years ago

he pedido que mi banco diese de alta esa direccion pero me sigue dando error de comuniicacion. estoy usando la ultima version de wordpress y woocommerce

50l3r commented 9 years ago

Saludos,

Antes que nada, muchas gracias por compartir este plugin con todo el mundo.

Tengo un problema con la url de comunicación, y es que http://example.com/?wc-api=woocommerce_api_wc_gateway_ceca me devuelve un "1", no edita el estado del pedido ni hace nada más.

juanmirod commented 9 years ago

Hola @50l3r, gracias por contribuir. No dispongo ahora mismo de un entorno de desarrollo para probar el plugin, si puedieras darme acceso al tuyo podría echarle un ojo, parece que no eres el primero al que le pasa y estaría bien poder arreglarlo.

50l3r commented 9 years ago

Dime un email y te mando credenciales

juanmirod commented 9 years ago

juanmi.rodriguez.ceron at gmail dot com perdona el retraso, a ver si este finde puedo echarle un ojo.

manuelazo commented 9 years ago

A mí me sucede lo mismo. Finalmente, pudiste ver qué sucedía?

Muchas Gracias por anticipado por su dedicación y esfuerzo.

50l3r commented 9 years ago

Estamos en vereda de momento. Seria interesante hacer estas pruebas en produccion. Yo de momento lo tengo pendiente.

manuelazo commented 9 years ago

Yo estoy intentando hacerlo en un TPV que tengo que aún está en pruebas de la CECA. Intentando descifrar wordpres ... aún

manuelazo commented 9 years ago

Creo - no estoy seguro ni sé muy bien si estoy andando bien por donde voy ... - que el problema está en la funcion wp() de wp-includes/functions.php Al menos, ahí es donde le pierdo la pista porque desde index.php --> wp-blog-header.php En wp-blog-header.php --> wp-load.php y llamada al wp() La llamado al wp() es lo que está devolviendo el 1 y a partir de ahí ya no sigue.

Si en lugar de poner http://example.com/?wc-api=woocommerce_api_wc_gateway_ceca pusiéramos http://example.com/?wc-api=CUALQUIERCOSA también devuelve 1, por lo que el problema es que no encuentra el woocommerce_api_wc_gateway_ceca en el método wp().

Bueno, eso es lo que creo !!!!.

Sigo mirando ...

manuelazo commented 9 years ago

Comento lo que he visto ....

1.- En index.php incluye wp-blog-header.php 2.- En wp-blog-header.php incluye wp-load.php 2.1.- En wp-load.php incluye wp-config.php 3.- Tras esto, continúa la ejecución del wp-blog-header.php con la llamada al método wp() que se encuentra en /wp-includes/functions.php.

El código fuente del método es:

/**

Si se comenta esta línea: "$wp->main( $query_vars );" el 1 deja de existir en la llamada a http://example.com/?wc-api=CUALQUIERCOSA.

No tengo ni idea de WordPress, pero vamos una variable global llamada wp creo que tiene que ser very very important!!!, así es que veré qué hace la función main cuyo parámetro es '' porque $query_vars vale ''.

Bueno, por lo menos, voy viendo cómo carga las cosas WordPress ... no hay mal que por bien no venga ...

alexsolar33 commented 9 years ago

Usando la dirección de comunicación: http://ejemplo.es/?wc-api=woocommerce_api_wc_gateway_ceca

Código Error: ERR-001 Descripción: COMUNICACION ON-LINE INCORRECTA

MartaIraola commented 9 years ago

No consigo comprar. Me dice que la dirección de comunicación web está mal

http://www.midominio.es/?wc-api=woocommerce_api_wc_gateway_ceca

Cuál tiene que ser ?

danemo72 commented 9 years ago

Tengo el mismo problema pero a ver si esto puede ayudar y encontramos la solución:

"Comunicación online con respuesta requerida En el caso que nos ocupa, en el que el comercio solicite una comunicación ON-LINE de las operaciones de compra realizadas por sus clientes, se contemplan además dos posibilidades:

Comunicación ON-LINE sin respuesta requerida . En este caso, una vez realizado el pago, el TPV virtual de Cecabank intentará comunicar la operación al comercio, pero dará por realizada correctamente la operación aunque dicha comunicación no sea posible. Es más, ni siquiera esperará recibir una respuesta desde el comercio. Comunicación ON-LINE con respuesta requerida. En este caso, si una vez realizado el pago, el programa no consigue comunicar la operación al comercio o detecta a partir de la respuesta recibida que algo no ha ido bien, anulará la operación y la dará como errónea al cliente. Para que el programa sea capaz de discernir a partir de la respuesta recibida desde el Comercio si todo ha funcionado correctamente ó si se ha producido algún error, es necesario que en la respuesta generada por el CGI del comercio aparezca el texto $$OKY$$ sólo cuando todo vaya bien, de modo similar a como figura en el siguiente ejemplo:

Respuesta correcta a la comunicación ON-LINE $_$OKY$_$ "
juanmirod commented 9 years ago

Hola, gracias a todos por vuestra colaboración. Siento no poder ayudar más pero ahora mismo no estoy trabajando en este area y no he podido dedicarle un rato al problema.

Según me comentó otro usuario por twitter el problema puede ser la versión de woocomerce y wordpress, puede que hayan variado algo las acciones a declarar o la forma de consultar los pedidos, para investigar más sobre el tema el changelog de woocomerce es este:

https://wordpress.org/plugins/woocommerce/changelog/

Parece que en la versión 2.2.0 se introdujeron cambios sobre las acciones.

Como decía yo no puedo dedicar más tiempo a este plugin, es un plugin que realicé hace tiempo y lo colgué por si era útil para alguien y por tener más código que mostrar cuando me lo piden, pero si alguien arregla el error las PRs son bienvenidas ;)

Gracias de nuevo

MartaIraola commented 9 years ago

No te preocupes ! Lo he solucionado. He comprado el de Redys.

Gracias de todas formas Juan !!

;)

Marta Iraola

Tik Donostia, S.L. Universidad de Deusto de San Sebastián Innogune 20012 Donostia

Tel. 943 326600 Ext. 5698 Móvil 646 825705 marta.iraola@donostik.com

El 28/4/2015, a las 22:30, Juan Miguel Rodriguez Ceron notifications@github.com escribió:

Hola, gracias a todos por vuestra colaboración. Siento no poder ayudar más pero ahora mismo no estoy trabajando en este area y no he podido dedicarle un rato al problema.

Según me comentó otro usuario por twitter el problema puede ser la versión de woocomerce y wordpress, puede que hayan variado algo las acciones a declarar o la forma de consultar los pedidos, para investigar más sobre el tema el changelog de woocomerce es este:

https://wordpress.org/plugins/woocommerce/changelog/ https://wordpress.org/plugins/woocommerce/changelog/ Parece que en la versión 2.2.0 se introdujeron cambios sobre las acciones.

Como decía yo no puedo dedicar más tiempo a este plugin, es un plugin que realicé hace tiempo y lo colgué por si era útil para alguien y por tener más código que mostrar cuando me lo piden, pero si alguien arregla el error las PRs son bienvenidas ;)

Gracias de nuevo

— Reply to this email directly or view it on GitHub https://github.com/juanmirod/woocommerce-ceca-gateway/issues/1#issuecomment-97199068.

danemo72 commented 9 years ago

Con esto logramos que el módulo nos envíe un email de confirmación de pedido y al cliente. Para ello hay que poner este código en funtions.php (del tema activo):

// Workaround for the mysterious bug in Woocommerce that prevents order emails // from being sent.

add_action( 'woocommerce_thankyou', 'order_email_workaround' );

function order_email_workaround ($order_id) { global $woocommerce; $mailer = $woocommerce->mailer(); // Email customer with order-processing receipt $email = $mailer->emails['WC_Email_Customer_Processing_Order']; $email->trigger( $order_id ); // Email admin with new order email $email = $mailer->emails['WC_Email_New_Order']; $email->trigger( $order_id ); }

add_action( 'woocommerce_payment_complete', 'order_complete_email_workaround' );

function order_complete_email_workaround ($order_id) { global $woocommerce; $mailer = $woocommerce->mailer(); $email = $mailer->emails['WC_Email_Customer_Completed_order']; $email->trigger( $order_id ); }

Alexandrump commented 9 years ago

¡Buenas por aquí!

Yo hablé hace un tiempo con @juanmirod y me pasó una version modificada al correo, pero tampoco pude hacerla funcionar del todo bien, sólo funcionaba en el modo de sandbox.

@danemo72 has conseguido hacer que el plugin funcione con tú código? Puedes añadir en un repo tu nueva version con cambios?

Yo tengo tienda activa en este momento, pero puedo montar un wordpress aparte y hacer pruebas.

Gracias!

pmaojo commented 9 years ago

Hola, ¿Cómo va el asunto? Conocéis alguna alternativa o fork estable? Gracias!

sergiofg commented 9 years ago

Para las nuevas versiones de woocommerce la dirección de comunicación online es ?wc-api=wc_gateway_ceca.

He hecho algunas correcciones en un fork, pero aún no estoy seguro de que funcione bien... https://github.com/sergiofg/woocommerce-ceca-gateway

jontorrado commented 9 years ago

Está corregido en mi fork: https://github.com/jontorrado/woocommerce-ceca-gateway

alexsolar33 commented 8 years ago

Ahora por fin funciona, gracias al desarrollador y a todos por vuestras aportaciones.

Hay algo que todavía se puede mejorar, despues de pinchar en IR CAJA en lugar de ir directamente a la pasarela se queda parado con este mensaje:

"Gracias, tu orden está ahora pendiente de pago, deberías ser redirigido en unos segundos a la pasarela de pago con tarjeta de CECABANK."

Con el plugin sermepa se redirige automáticamente, pero con CECA hay que pinchar en el boton PAGAR

Hay algo que se pueda cambiar para que se redirija automáticamente?

Alexandrump commented 8 years ago

Va perfect. Respecto a lo que @alexsolar33 comenta veo en el código que crea una llamada al formulario "order", supongo que es cuestion de que el formulario se autovalide en el paso anterior. @jontorrado podrias subir a tu fork una nueva version con este cambio?

Y otra cosa más: si os falla la comunicación de CECA, comprobad que la dirección que habeis puesto en vuestro TPV virtual sea http://tudominio.com/?wc-api=wc_gateway_ceca ó si teneis SSL muy importante https://tudominio.com/?wc-api=wc_gateway_ceca. De lo contrario la operación fallará. Podeis ver el plugin activo en regaclick.com

pzaballos commented 8 years ago

Gracias! funciona!!. Un detalle a las indicaciones de Alexandrump , al menos para Liberbank, si informas la url de comunicación con "www." sigue dando error. Sin ellas perfecto.

juanmirod commented 8 years ago

Cierro el issue porque parece que quedó todo solucionado con los cambios de @jontorrado Muchas gracias a todos.