خادم MCP الرسمي لـ OpenTG متاح الآن 🎉

جرّبه

http://www.

SoftwareLibre

SoftwareLibre

@software_libre

Contenido en español sobre software libre

http://www.linuxhispano.net/feed/
Probar RedSys en local: WordPress con Docker y un túnel de Cloudflare

https://www.linuxhispano.net/wp-content/uploads/2026/11/docker.png
Si alguna vez has tenido que integrar un TPV virtual de RedSys en una tienda WordPress, conocerás el problema: el pago en sí lo puedes probar desde tu equipo sin más, pero la notificación que el banco envía a tu web para confirmar el cobro no llega nunca. RedSys no puede llamar a localhost, y sin esa notificación el pedido se queda pendiente para siempre.

La solución habitual es subir los cambios a un servidor de pruebas cada vez que tocas algo, que es lento y engorroso. En Linux lo podemos resolver en un par de minutos con Docker y un túnel de Cloudflare, sin abrir puertos en el router y sin contratar nada. Qué necesitamos

* Docker con el plugin docker compose (en Debian y Ubuntu, paquetes docker.io y docker-compose-v2, o los oficiales de Docker).
* cloudflared, el cliente de túneles de Cloudflare. Para un túnel rápido no hace falta cuenta.
* Los datos del entorno de pruebas de RedSys: número de comercio, terminal y clave de firma de test. Te los da tu banco al contratar el TPV. WordPress en local con Docker

Creamos una carpeta para el proyecto y dentro un compose.yaml con WordPress y MariaDB: services:
db:
image: mariadb:11
environment:
MARIADB_DATABASE: wordpress
MARIADB_USER: wordpress
MARIADB_PASSWORD: wordpress
MARIADB_RANDOM_ROOT_PASSWORD: "1"
volumes:
- db:/var/lib/mysql

wordpress:
image: wordpress:latest
depends_on:
- db
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DEBUG: "1"
WORDPRESS_CONFIG_EXTRA: |
if (isset($$_SERVER['HTTP_X_FORWARDED_PROTO']) && $$_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$$_SERVER['HTTPS'] = 'on';
}
if (isset($$_SERVER['HTTP_HOST'])) {
define('WP_HOME', 'https://' . $$_SERVER['HTTP_HOST']);
define('WP_SITEURL', 'https://' . $$_SERVER['HTTP_HOST']);
}
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
volumes:
- wp:/var/www/html

volumes:
db:
wp:


Dos detalles importantes:

* Los $$ son a propósito: Docker Compose interpreta $ como una variable, y con el doble dólar le decimos que lo pase tal cual a PHP.
* El bloque WORDPRESS_CONFIG_EXTRA hace que WordPress use como dirección la del túnel, sea cual sea, y que sepa que la conexión es HTTPS aunque al contenedor le llegue por HTTP. El túnel rápido cambia de dirección cada vez que lo arrancas, así que así no hay que tocar nada en la base de datos. Es una configuración pensada solo para pruebas: no la uses en producción.

Lo levantamos: docker compose up -d El túnel

En otra terminal: cloudflared tunnel --url http://localhost:8080

Al cabo de unos segundos aparece una dirección del tipo https://palabras-al-azar.trycloudflare.com. Esa es la URL pública de tu WordPress, con un certificado válido. Ábrela en el navegador y haz la instalación normal. A partir de aquí entra siempre por esa dirección, no por localhost:8080.

Si no quieres instalar cloudflared en el sistema, también puedes lanzarlo como contenedor: docker run --rm --network host cloudflare/cloudflared:latest tunnel --url http://localhost:8080 Configurar el TPV en modo de pruebas

Instala WooCommerce, crea un producto de prueba y añade la pasarela de RedSys que vayas a usar. En nuestro caso lo probamos con el plugin de RedSys y Bizum p[...]
فتح المنشور في تيليجرام