Support » Plugin: WooCommerce Redsys Gateway Light » Pendiente de pago

  • Resolved Aitor Méndez

    (@aitormendez)


    Hola. Estoy en modo “entorno de pruebas” con la tarjeta de pruebas que me ha proporcionado el banco. WP corre sobre NginX. La página web está en un servidor de pruebas y el dominio es provisional.

    En este servidor de pruebas no uso SSL, por lo que todo va por HTTP (no HTTPS). Por tanto, la redirección requerida:

    https://dominio.com/?wc-api=WC_Gateway_redsys
    http://dominio.com/?wc-api=WC_Gateway_redsys

    no debería ser necesaria aún.

    La orden queda pendiente de pago cuando la transacción se ha hecho correctamebnte.

    El log de redsys después de la transacción es este: https://pastebin.com/E6q6rJ4h

    He estado leyendo sobre este problema y no encuentro la causa.

    Mil gracias por la ayuda.

    The page I need help with: [log in to see the link]

Viewing 9 replies - 16 through 24 (of 24 total)
  • Thread Starter Aitor Méndez

    (@aitormendez)

    Sólo a título informativo. El log con error raro que me aparecía es el mismo de este issue. Parece que aún no lo arreglan.

    https://github.com/woocommerce/woocommerce/issues/30697

    Me stá resultando imposible depurar mi error con el endpoint y puede que este error tenga algo que ver. Esperaré a ver si lo arreglan.

    • This reply was modified 2 months, 3 weeks ago by Aitor Méndez.
    Thread Starter Aitor Méndez

    (@aitormendez)

    @jconti, buenas tardes. He estado esperando a que se resolviera el tema del error raro. Parece que ya está solucionado y vuelvo al endpoint.

    Para asegurarme de localizar el momento en el que se produce el error, he instalado un WP en local y desde cero. Lo único que he hecho ha sido instalar WP, WC, el plugin de Redsys y configurarlo con los datos que me ha dado el banco. No hay nada más.

    En estas condiciones, usando el tema “twenty twenty one” hago una compra en modo test y, tras el pago con éxito, la orden se queda pendiente de pago.

    El endpopint funciona porque, si se accede directamente devuelve la nota de error que se espera:

    “Notice: Trying to access array offset on value of type null in /srv/www/futurabasura.com/current/web/app/plugins/woo-redsys-gateway-light/includes/apiRedsys7.php on line 134”

    El log generado también parece normal:
    https://hastebin.com/ogosofeteh.yaml

    No hay más logs ni mensages de error.

    La configuración del plugin “after payment” tiene “Mark as Processing”:

    What to do after payment?
    Mark as Processing (default & recomended)

    ¿Qué es lo siguiente que se puede intentar? Muchas gracias por tu ayuda, como siempre.

    Plugin Author Jose Conti

    (@jconti)

    Hola @aitormendez,

    El dominio que estás enviando a Redsys no es accesible ya que no es real. Redsys debe poder acceder al dominio. Si miras los logs en Redsys, te dirá que no puede acceder al dominio, no se como lo pondrá exactamente, pero es lo que pondrá seguro. Yo he probado sin mirar el dominio que era .test, y me ha mostrado:

    No se puede acceder a este sitio web
    Comprueba si hay un error de escritura en futurabasura.test.
    DNS_PROBE_FINISHED_NXDOMAIN
    Thread Starter Aitor Méndez

    (@aitormendez)

    Exacto, es un dominio en mi entorno de pruebas local. No es accesible desde fuera. No obstante, la compra se ha realizado on éxito y WC me indica “order received”.

    Aún así, ¿es de esperar que no pase a estado processing?

    En caso afirmativo montaré lo mismo en el servidor de pruebas (es todo mucho más tedioso que en local).

    Thread Starter Aitor Méndez

    (@aitormendez)

    Ok, Funciona en el servidor. No hace falta que respondas. Perdona el ruido.

    Plugin Author Jose Conti

    (@jconti)

    Hola @aitormendez,

    Si, WooCommerce crea el pedido, pero para marcarlo como procesando/completado, Redsys le tiene que decir que se ha pagado, y pora eso tiene que ser capaz de contactar con con el sitio.

    Saludos

    Thread Starter Aitor Méndez

    (@aitormendez)

    SOLUCIÓN

    @jconti te pongo aquí la solución, por si alguien viene con el mismo problema.

    Parece ser un WOSD que se produce específicamente con la versión beta de Sage 10. Hay un issue en el repo de github:

    https://github.com/roots/sage/issues/2656

    Y está añadido a los milestones:

    https://github.com/roots/sage/milestone/7

    O sea, que lo arreglarán pronto. Mientras tanto, para solucionar el problema hay que sustituir ThemeServiceProvider.php en el directorio app del tema por este gist de Carlos Faria:

    https://gist.github.com/cfaria/7eb83ca2853cb062fd7f6365c9bd6de2

    Saludos.

    Plugin Author Jose Conti

    (@jconti)

    Gracias @aitormendez,

    Entonces lo que sucede es que la librería de Redsys (que no realiza comprobaciones) debe tener algun warning por algún dato que Redsys no envía, así que queda sin definir, y eso provoca la pantalla blanca por el bug del theme y por lo tanto el que no se marquen los pedidos como pagados ya que no puede «escuchar» la notificación de Redsys.

    Gracias por la investigación.

    Saludos

    Thread Starter Aitor Méndez

    (@aitormendez)

    Exacto, eso es lo que parece. Muchas gracias a ti por tu ayuda constante.

    Un saludo.

Viewing 9 replies - 16 through 24 (of 24 total)
  • You must be logged in to reply to this topic.