• Resolved doublet

    (@doublet)


    Hola, al mover una web de un cliente de nuestro cPanel a un VPS los pagos con Redsys han dejado de funcionar correctamente.

    Parece que los pedidos constan como “no pagados” a pesar de que el pago con la pasarela funciona correctamente.

    Me he mirado los logs pero no veo nada que me de información relevante.

    Cómo analizar y detectar el error ?

    Gracias.

Viewing 15 replies - 1 through 15 (of 26 total)
  • Thread Starter doublet

    (@doublet)

    Hola, alguna ayudita por favor ? Gracias.

    Plugin Author jesusangel.delpozo

    (@jesusangeldelpozo)

    Hola.

    Debes buscar el error en el log del TPV Virtual. Lo más probable es que la pasarela de Redsys no pueda comunicar el pago a la tienda online, bien porque ésta está bajo SSL con SNI o debido a algún plugin de seguridad que impide la conexión desde Redsys.

    Saludos cordiales.

    Plugin Author jesusangel.delpozo

    (@jesusangeldelpozo)

    Hola.

    ?Has podido revisar los errores tal como te comenté?

    Saludos cordiales.

    Thread Starter doublet

    (@doublet)

    Hola Jesús, perdona, es que estoy en Barcelona y bueno, estamos algo afectados con el atentado.

    Vi el log antes de mandar este ticket, pero no identifiqué nada obvio. Te pego el último pago de prueba que hice ayer:

    08-17-2017 @ 11:39:24 – Generating payment form for order #19495. Notify URL: https://**domain.com**/?wc-api=WC_MyRedsys
    08-17-2017 @ 11:39:24 – Sending data to Redsys Array
    (
    [Ds_SignatureVersion] => HMAC_SHA256_V1
    [Ds_MerchantParameters] => eyJEU19NRVJDSEFOVF9BTU9VTlQiOiI0OTYiLCJEU19NRVJDSEFOVF9PUkRFUiI6IjAwMDE5NDk1MzkyNCIsIkRTX01FUkNIQU5UX01FUkNIQU5UQ09ERSI6IjMzNDY2NTA0OSIsIkRTX01FUkNIQU5UX0NVUlJFTkNZIjoiOTc4IiwiRFNfTUVSQ0hBTlR
    fVFJBTlNBQ1RJT05UWVBFIjoiMCIsIkRTX01FUkNIQU5UX1RFUk1JTkFMIjoiMDAxIiwiRFNfTUVSQ0hBTlRfTUVSQ0hBTlRVUkwiOiJodHRwOlwvXC9tb2trYXN0b3JlLmVzXC8/d2MtYXBpPVdDX015UmVkc3lzIiwiRFNfTUVSQ0hBTlRfVVJMT0siOiJodHRwczpcL1wvbW9ra2FzdG9yZS5lc
    1wvY2hlY2tvdXRcL29yZGVyLXJlY2VpdmVkXC8xOTQ5NT9rZXk9d2Nfb3JkZXJfNTk5NGM0NWRhOGFhOSZ1dG1fbm9vdmVycmlkZT0xIiwiRFNfTUVSQ0hBTlRfVVJMS08iOiJodHRwczpcL1wvbW9ra2FzdG9yZS5lc1wvY2Fycml0b1wvP2NhbmNlbF9vcmRlcj10cnVlJmFtcDtvcmRlcj13Y19
    vcmRlcl81OTk0YzQ1ZGE4YWE5JmFtcDtvcmRlcl9pZD0xOTQ5NSZhbXA7cmVkaXJlY3QmYW1wO193cG5vbmNlPTExM2Q4NzA3YTMiLCJEc19NZXJjaGFudF9Db25zdW1lckxhbmd1YWdlIjoiMDAxIiwiRHNfTWVyY2hhbnRfUHJvZHVjdERlc2NyaXB0aW9uIjoiMXhOdWV2byBlbnZcdTAwZWRvI
    iwiRHNfTWVyY2hhbnRfVGl0dWxhciI6IlJlZHN5cyIsIkRzX01lcmNoYW50X01lcmNoYW50RGF0YSI6ImVkZDkxMzQxMTYwMzg3ZGRkZjVlZjk5MDk5YzkyMTBkNGU1Zjg3NDIiLCJEc19NZXJjaGFudF9NZXJjaGFudE5hbWUiOiJSZWRzeXMiLCJEc19NZXJjaGFudF9QYXlNZXRob2RzIjoiQyI
    sIkRzX01lcmNoYW50X01vZHVsZSI6Indvb2NvbW1lcmNlIn0=
    [Ds_Signature] => 1nz8bAUO8ocwMcrEeDFDKSjet39ZeuhXxhC73uYB1dY=
    )

    Yo no identifico ningún error …..

    Thread Starter doublet

    (@doublet)

    Por cierto, no uso SSL bajo SNI, al ver q necesitaba IP dedicata uso HTTP y accedo a las URLs sin problema desde el exterior.

    Plugin Author jesusangel.delpozo

    (@jesusangeldelpozo)

    Hola.

    Vaya, siento lo que ha pasado en Barcelona. Es una verdadera locura.

    Respecto al problema con los pedidos que se quedan pendientes de pago, me parece que todo apunta al problema del SNI. Si intentas acceder a la URL donde se confirma el pago el servidor web, está redirigiendo de HTTP a HTTPS y tu sitio usa una IP compartida y usa un certificado de Let’s Encrypt. Como la pasarela de Redsys no soporta SNI (tampoco acepta los certificados de Let’s Encrypt), el certificado SSL que recibe es el de la IP correspondiente al servidor: s:/O=mkserver.katxe.net/OU=mkserver.katxe.net/CN=mkserver.katxe.net y como no confía en el (es un certificado autofirmado y no se corresponde con el nombre de tu web) pues no establece la conexión y el pago no se confirma.

    Tienes que buscar en la configuración de tu sitio web y desactivar la redirección hacia HTTPS para la URL de confirmación de pago. Hay varias formas de hacer esto y depende un poco de tu sitio web, pero lo normal es que tengas un archivo .htaccess con algo parecido a esto:

    # Enviar trafico HTTP a HTTPS
    RewriteEngine On
    # Y la conexión no es HTTPS
    RewriteCond %{HTTPS} off
    # Redirigimos a la versión con HTTPS
    RewriteRule ^(.*)$ https://dominio.com/$1 [R=301,L,NE]

    Tienes que a?adir a la regla anterior una condición para excluir la redirección en el caso de que la cadena de consulta de la URL sea la de confirmación de pago. Debería quedar así:

    # Enviar trafico HTTP a HTTPS
    RewriteEngine On
    # Si la cadena de consulta no contiene wc-api=WC_MyRedsys
    RewriteCond %{QUERY_STRING} !wc-api=WC_MyRedsys [NC]
    # Y la conexión no es HTTPS
    RewriteCond %{HTTPS} off
    # Redirigimos a la versión con HTTPS
    RewriteRule ^(.*)$ https://dominio.com/$1 [R=301,L,NE]

    Lo que hace la regla anterior es que la redirección de HTTP a HTTPS no se aplica para la URL https://dominio.com/?wc-api=WC_MyRedsys y por tanto, si la pasarela accede por HTTP, se establece la conexión usando HTTP, sin cifrado y sin problemas con el certificado. He visto en los parámetros enviados a Redsys que la URL de confirmación va con http, así que eso es correcto. Basta con que consigas que la redirección no se aplique para la URL que te he indicado.

    Mira cómo sí que hay redirección de HTTP a HTTPS:

    Request URL:https://mokkastore.es/?wc-api=WC_MyRedsys
    Request Method:GET
    Status Code:302 Moved Temporarily <- Redirección
    Remote Address:185.47.129.166:80
    Connection:keep-alive
    Content-Length:154
    Content-Type:text/html
    Date:Fri, 18 Aug 2017 16:09:28 GMT
    Location:https://mokkastore.es/?wc-api=WC_MyRedsys <- Destino de la redirección
    Server:nginx centminmod
    X-Powered-By:centminmod

    Si consultas el log del TPV verás como los errores se deben a la validación del certificado SSL del servidor web que aloja tu web.

    Saludos cordiales.

    Thread Starter doublet

    (@doublet)

    Confirmado, parece que al comprobar la URL me despisté y no vi el redir a HTTPS.

    Como es Nginx voy a ver cómo aplicarlo.

    Por otra parte, en el paste que te hice intenté proteger la identidad de la web, y no comprendo dónde se me ha colado.

    Puedes por favor eliminar dicho rastro ?

    Y darte las gracias por tu ayuda, la verdad es q cuando lo tenía en cPanel ya me tuve que pelear con ésto.

    De nuevo, muy agradecido !

    Plugin Author jesusangel.delpozo

    (@jesusangeldelpozo)

    Buenas noches.

    Vaya, siento haber publicado la URL real. He mirado pero no encuentro la opción de editar un comentario. ?Sabes cómo puede hacerse?

    Saludos cordiales.

    Thread Starter doublet

    (@doublet)

    Ya lo miré antes, pero tampoco la veo ….. convendría preguntar igual.

    Cómo has sacado esa URL ? no entiendo, yo no te la he pasado …. estaba en la parte codificada ?

    Plugin Author jesusangel.delpozo

    (@jesusangeldelpozo)

    Hola. He preguntado. A ver que me dicen.

    Thread Starter doublet

    (@doublet)

    Hola, gracias …. lo q no entiendo es pq pusiste esos links ni cómo los obtuviste !

    Plugin Author jesusangel.delpozo

    (@jesusangeldelpozo)

    Hola.

    No es posible editar el post:

    You can edit your own message for up to an hour.

    When a post is made and people contribute answers to an issue, that then becomes part of the community resource for others to benefit from. Deleting posts removes this added value. Forum topics will only be edited or deleted if they represent a valid legal, security, or safety concern.

    Please see https://make.www.ads-software.com/support/handbook/forum-welcome/#deleting-editing-posts

    I looked at that thread and I see no security or safety issues.

    La URL está en los parámetros que se envían a Redsys. La tuve que consultar para comprobar cual era el problema, que como sospechaba inicialmente tenía que ver con los certificados. Copié las cabeceras de la petición y allí se me olvidó editarlo.

    Si no quieres que la web esté accesible hasta que no esté terminada, puedes filtrar el acceso por IP o poner una clave para acceder.

    Saludos cordiales.

    Thread Starter doublet

    (@doublet)

    Da igual, ya está hecho. Es solo que intento proteger la privacidad de mis clientes, eso es todo ??

    Thread Starter doublet

    (@doublet)

    Amigo, el correo de tu web es válido ? te he mandado un email ??

    Plugin Author jesusangel.delpozo

    (@jesusangeldelpozo)

    Hola.

    ?A qué correo lo has enviado? ?Cual era el asunto del mensaje?

    Saludos cordiales.

Viewing 15 replies - 1 through 15 (of 26 total)
  • The topic ‘Pendiente de pago’ is closed to new replies.