Todos los problemas (o casi todos los problemas), tienen solución, aquí tienes una pequeña recopilación de problemas y cómo solucionarlos. Es una recopilación de problemas tanto para el plugin para Redsys que hay en WordPress.org como el plugin Premium que podéis adquirir en WooCommerce
Si no encuentras la solución a tu problema y utilizas el plugin de WordPress.org, mira en los foros o abre un nuevo hilo en WordPress.org.
Si utilizas el plugin premium y tienes licencia al día, abre un ticket en WooCommerce.com. Debes selecciona el plugin de Redsys en el desplegable para que me llegue directamente.
En ambos sitios puedes escribir directamente en castellano ya que el soporte lo doy yo mismo.
▼ ¿Cómo abrir un ticket de soporte en WooCommerce.com?
▼ Tarjeta de crédito que debes utilizar para las pruebas en Redsys
Encontrarás esta información en el email de bienvenida que tienes que haber recibido, pero puedes utilizar sin problemas estos datos:
Número de tarjeta: 4918019199883839
Caducidad: 12/32
Código CVV2: 123
Para forzar el error de tarjeta en las pruebas, puedes utilizar esta:
Número de tarjeta: 4907271141151707
Caducidad: 12/32
Recuerda que Redsys te pide siempre que tengas cómo mínimo un pedido correcto sin errores, y luego que fuerces un error para también ser comunicado al comercio.
Para BIZUM podéis utilizar estos datos, ojo, algunos bancos siempre devuelve error tras introducir los datos de forma correcta.
Teléfono Bizum: 700000000
Clave Bizum: 1234
Codigo SMS: 12345678
Que el coste del pedido para realizar las pruebas sea bajo, inferior a 10€. Yo particularmente suelo crear un producto de 1€ para asegurarme que funciona en pruebas.
▼ ¿Funciona el plugin de Redsys de WooCommerce.com en WordPress.com?
Si, si que funciona, ya hay muchos clientes que lo están usando en WordPress.com sin problemas. Si por algún motivo los pedidos no se marcan como pagados, o te lanza un error 500, debes contactar con soporte de WordPress.com y acceder a un live chat en https://wordpress.com/help/contact (sobre todo al Live Chat, no vayáis a los foros) y decirles que obtienes un error 500 en https://tusitio.com/?wc-api=WC_Gateway_redsys o https://tusitio.wpcomstaging.com/?wc-api=WC_Gateway_redsys
Ellos te lo arreglaran para que funciones. Eso sucede por medidas de seguridad implementadas, pero al ser un plugin reconocido y auditado por Automattic (dueños de WordPress.com y WooCommerce) a través de WooCommerce.com, harán que funcione sin problemas, si es que no lo hace desde un principio.
▼ ¿Cómo debo configurar Redsys?
Simplemente asegúrate que Redsys lo tienes configurado cómo en la siguiente captura..
Notificaciones online: (HTTP + Email Comercio) –> Email Entidad
Soncronicación: Sincrona
URL OK: Nada
URL KO: Nada
Enviar parámetros en las URLs: NO
▼ Extensión de PHP mcrypt_encrypt() para PHP igual o inferior a 5.6
Para poder enviar los datos a Redsys de forma correcta en PHP 5.6 o inferior, es necesario que el hosting que contratéis tenga instalada y activada la extensión de PHP mcrypt_encrypt(). Si no lo está, no podréis utilizar Redsys. Así que asegúrate que tu hosting lo tiene instalado y si no lo tiene, pídelo que lo instale en el servidor y lo active en php.ini
▼ Extensión de PHP encrypt_3DES() para PHP igual o superior a 7.0
Para poder enviar los datos a Redsys de forma correcta en PHP 7.0 o superior, es necesario que el hosting que contratéis tenga instalada y activada la extensión de PHP encrypt_3DES(). Si no lo está, no podréis utilizar Redsys. Así que asegúrate que tu hosting lo tiene instalado y si no lo tiene, pídelo que lo instale en el servidor y lo active en php.ini
▼ Los pedidos se quedan a la espera de pago en WooCommerce (NO utilizo CloudFlare)
Este es con diferencia el mayor problema que existe en WooCommerce con Redsys.
Las razones para que un pedido quede sin marcarse como pagado, pueden ser varias.
Por regla general, esto es debido a que se utiliza un certificado de seguridad que no es compatible con Redsys, por ejemplo, Let’s Encrypt, Comodo y otros.
La forma de solucionarlo es marcar en la configuración del plugin la compatibilidad con certificados SNI.
Si tu hosting fuerza el redireccionamiento de todas las peticiones a HTTPS, deberás también desactivar esta redirección forzada.
Si utilizas un plugin cómo Really Simple SSL, deberás activar que el redireccionamiento forzado lo realice mediante el archivo .htaccess, desactivar el redireccionamiento via WordPress y finalmente, desactivar que pueda seguir realizando modificaciones al archivo htaccess.
Una vez lo tengamos todo configurado, deberemos añadir la siguiente línea en el código añadido por Simple SSL o el plugin que utilicemos:
RewriteCond %{QUERY_STRING} !^wc-api=WC_Gateway_(.*)redsys
Tengamos un código añadido por otro plugin o no lo tengamos, deberemos tener este código en el archivo ,htaccess. Si tienes algún otro código de redireccionamiento, elimínalo.
El siguiente código sirve tanto para el plugin de WordPress.org, como para el premium de WooCommerce.com. Añade una excepción para todas las opciones de pago que añade el plugin premium.
# REDIRECCION CERTIFICADO SSL REDSYS POR JOSE CONTI V.2.0
RewriteEngine on
RewriteCond %{QUERY_STRING} !^wc-api=WC_Gateway_(.*)redsys
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# FIN REDIRECCION CERTIFICADO SSL REDSYS POR JOSE CONTI V.2.0
Otra posibilidad es que el firewall, ya sea del servidor o de un plugin que utilicemos, por ejemplo el antibot de All In One SEO Pack, esté bloqueando la IP de Redsys. Debemos comprobar que ninguna de las IPs bloqueadas por el firewall pertenezcan a Redsys. En el caso del All In One SEO Pack, desactivada la protección Anti Bots, ya que no hay forma de añadir excepciones y siempre os bloqueará a Redsys.
Por último, no hemos configurado de forma correcta Redsys y no tenemos activa la notificación HTTP y solo tenemos activa la notificación por email. Accede a Redsys y comprueba que esté bien configuradas las notificaciones al sitio. Debe estar seleccionada la notificación HTTP, ya sea sola o junto a la notificación por email.
▼ Los pedidos quedan a la espera en WooCommerce y utilizo iThemes Security
Es muy sencillo lo que se debe hacer.
En primer lugar iremos a Security > Settings > Banned Users
Deberemos desactivar «Enable HackRepair.com’s blacklist feature»
Si tienes activo System Tweaks, accede a él.
Una vez dentro, busca «Filter Long URL Strings» y asegúrate que está desactivado.
Fíjate que también he marcado Suspicius Query String. Hay veces que esta configuración puede interferir y provocar que los pedidos no sean marcados como pagados.
Una vez hayas realizado estas comprovaciones, ya puedes provar de nuevo si es que no tienes algo de los otros motivos por los que no se marca un pedidoc omo pagado (Let’sEncrypt y CloudFlare) que esn este caso, continua mirando como solucionarlo.
▼ Los pedidos se quedan a la espera de pago en WooCommerce (utilizo CloudFlare)
Debes ir a la pestaña Firewall en CloudFlare, dónde impediremos que CloudFlare confunda la notificación que realiza Redsys a nuestro sitio como un bot malintencionado. Dentro de la pestaña Firewall, accederemos al submenú «Tools»
En el submenú Tools, deberemos añadir lo siguiente:
En «Enter an IP», pondremos «195.76.9.0/24», en el desplegable seleccionaremos «whitelist», en el siguiente desplegable seleccionaremos si lo queremos para el sitio activo, o para todos los que tengamos, y por ultimo, le podremos poner una nota, o apretar directamente «Add»
Una vez hayas añadido el rango de IPs anterior, repite la acción, pero con este otro rango «193.16.243.0/24»
Y nuevamente con este otro rango «194.224.159.0/24»
Una vez añadido, nos debería quedar así (más el segundo rango).
▼ He activado el pago por referencia, pago con un clic o tokenización y no funciona
En primer lugar, tu banco debe haberte activado el pago por referencia, si no lo activan no podrás utilizarlo. Por otro lado., por las características de WooCommerce, es necesario que Redsys mande varios datos. Si no lo hace, el pago con un clic no funcionará, y no se marcarán los pedidos cómo pagados incluso se podría producir en algunos casos errores 500. Aunque Redsys o tu banco te diga que esos campos no son necesarios, en el caso de WooCommerce SI que lo son. Sin esos campos, la tokenización no funciona sobre WooCommerce. Así que aunque realmente para el uso de tokens no son necesarios esos campos, si que lo son en el caso de utilizar WooCommerce, ya que este hace uso de ellos. Sin ellos, simplemente no puede funcionar.
Para que funcione de forma correcta el pago con un clic, debes pedir en primer lugar que te lo activen. En segundo lugar, debes pedir que te envíen los siguientes datos en el callback que realizará Redsys para confirmar el pago.
– Ds_Card_Brand
– Ds_ExpiryDate
– Ds_Card_Number
Si cualquiera de los anteriores campos no son enviados, sucederá que los pedidos no serán marcados como pagados, no funcionará el pago con 1 clic y el plugin mandará al administrador de la instalación un email avisando de esta problemática.
Sin los datos anteriores, WooCommerce no podrá guardar la marca de la tarjeta, la terminación numérica de la tarjeta y la fecha de caducidad, y por lo tanto no guardará el token. Incluso hay otra razón de por qué deben ser enviados, de estad forma, el cliente sabe que tarjeta es la que está guardada gracias a la marca y la terminación numérica.
Fíjate en la captura anterior que pone Visa terminada en 004 12/20
Esto está montado mediante los campos que Redsys debe enviar. Si no lo envía, WooCommerce no podrá montar esta página, y por lo tanto no aceptará el token enviado por Redsys.
▼ Pago con un clic sin salir de la página web
Para poder utilizar esta opción, en primer lugar debes tener activado en Redsys y en en el plugin el pago con 1 clic. Ten en cuanta que te deben enviar todos los campos tal y como explico en el punto anterior.
Lo segundo que debes tener activo a nivel de Redsys, es que el terminal sea no seguro. Si el terminal no es no seguro, no podrá funcionar el pago con un clic sin salir de la web.
▼ Utilizo Booking y no se envían emails de confirmación
Si utilizas Booking de WooCommerce.com y no se envían emails tras el pago, asegúrate en wp-admin > Booking > Settings > Calendar Connection que la conexión está activa en el caso en que lo hayas configurado. Si se ha pedido la conexión, habrá un error fatal en el momento del pago, y el proceso de envío de emails no se realizará.
▼ Las Preautorizaciones no me funcionan
Las preautorizaciones deben ser activadas por Redsys. Así que primero asegúrate que las tienen activas.
Asegúrate que las transacción normales (cargo al momento) son marcadas como pagadas en WooCommerce.
Si no te funcionan las preautorizaciones, debes pedir a Redsys que te las active.
▼ ¿Qué necesito para realizar suscripciones con el plugin premium de Redsys
Pare realizar las suscripciones necesitas una serie de cosas.
- Necesitas el plugin plugin de Redsys de WooCommerce.com
- Necesitas el plugin WooCommerce Subscriptions
- Necesitas tener activado en tu terminal el pago por referencia (pago por tokenización), y cumplir con lo explicado en «He activado el pago por referencia, pago con un clic o tokenización y no funciona»
- El terminal que utilices debe estar activado como no seguro, o no podrá funcionar.
▼ No me funcionan las suscripciones con el plugin WooCommerce Subscriptions
- Asegúrate que todo esté en la última versión que el plugin de Redsys de WooCommerce.com sea igual o superior a la versión 5..0.0.
- Para descartar cualquier incidencia anterior, prueba primero a realizar una compra normal sin pago con un clic. Desactiva. Si pasas por Redsys y los pagos son marcados como pagados, continua, si no, repasa los otros puntos del FAQ o abre un ticket en WooCommerce.com para que te ayude a solucionarlo.
- Si en el punto anterior los pedidos quedan marcados cómo pagados, activa el pago con un clic.
- Si en el punto anterior los pedidos quedan marcados cómo pagados, activa el pago con un clic sin salir de la página.
- Si en el punto anterior los pedidos quedan marcados cómo pagados, realiza el pago con la suscripción.
- Si cualquiera de los puntos anteriores falla y no ves la solución, contacta conmigo a través de WooCommerce.com abriendo un ticket para el plugin. Por regla general te responderé muy rápido.
▼ ¿Cómo utilizo el filtro redsys_modify_data_to_send?
Antes de crear el formulario de envío a Redsys, se ejecuta este filtro en el caso en que lo estemos utilizando.
Lo único que deberemos hacer, es utilizar los datos que deseemos para realizar las modificaciones.
Ejemplo:
▼ Antes utilizabas el plugin de modulosdepago.es y ahora no te funciona Subscriptions o el pago con 1 clic
Esto es un error muy común, y es por la forma que gestiona el plugnin de modulosdepago.es el tema de los tokens, simplemente no es la correcta dentro de WooCommerce ya que no utilizan la API de tokenización.
Aquí podrás encontrar una entrada dónde explico cómo solucionarlo.