Skip to content

RedSys rechaza servidores con SNI. Cómo redirigirlo por http (no-seguro)? #53

@jan1980

Description

@jan1980

Saludos chicos,

Sorprendentemente, RedSys no concluye el pedido si la notificación va por httpS en un servidor que use SNI (IP colectiva). Como consecuencia, el pago se produce, pero el pedido se queda Pendiente, y los mails transaccionales no salen.

Es decir, RedSys quieren que tengamos una IP dedicada.

Mientras RedSys se pone al día, y nos permite tener SSL con servidores que usen SNI, estamos obligados a usar algún tipo de redirección para que la web se mantenga por httpS, pero el callback se produzca por http, y pueda notificar a la tienda que el pago se ha completado (y lanzar los mails transaccionales).

Posible solución

Si no me equivoco, una solución es decirle al módulo que nos devuelva el callback por http (no-segura) en la casilla específica para eso en Métodos de Pago.

Pero luego deberíamos crear una redirección en .htaccess, para que el resto de la web use httpS (conexión segura).

Cómo sería la regla a poner en .htaccess para lograrlo?

Aquí hay un ejemplo, pero no sé qué convendría poner en lugar del "ALGO_ESPECÍFICO_DE_LA_URL_DE_CALLBACK":

RewriteEngine On
# Si la cadena de consulta no contiene "ALGO_ESPECÍFICO_DE_LA_URL_DE_CALLBACK"
RewriteCond %{QUERY_STRING} !ALGO_ESPECÍFICO_DE_LA_URL_DE_CALLBACK [NC]
# Y la conexión no es HTTPS
RewriteCond %{HTTPS} off
# Redirigimos a la versión con HTTPS
RewriteRule (.*) https://%{SERVER_NAME}/%$1 [R,L]

Muchas gracias por cualquier idea o sugerencia.
Saludos,

Edito:

Podría tratarse de "redsys/index/callback" (según la pantalla de configuración, dónde se menciona lo de {{secure_base_url}}redsys/index/callback) o de "payment/redsys/callback"?

Lo segundo lo encontré en un foro de OpenCart, y lo he buscado en el Módulo de Magento, dónde figura aquí, junto a otra URL parecida:

\app\code\community\Devopensource\Redsys\Helper\Data.php

Line 30: $url = Mage::getStoreConfig('payment/redsys/callback', Mage::app()->getStore());
Line 37: return Mage::getStoreConfig('payment/redsys/callbackurl', Mage::app()->getStore());

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions