Problema Paypal en Prestashop: el módulo Paypal deja de funcionar de repente

Durante el último mes, muchos de nuestros clientes nos han avisado de que recibían un email de error de Paypal en su tienda online hecha con Prestashop. Ha pasado con tiendas en Prestashop 1.5. y en Prestashop 1.6.

El error es algo parecido a esto:


    <b>PayPal response:</b>
    SILOVER -> name=LIVE5.API.1&silo_version=880&app=appdispatcher_apit&TIME= ........


Intentando realizar compras ficticias en esas tiendas verificamos que era cierto, no funcionaba el módulo de Paypal, cuando siempre había funcionado. A continuación os explicamos como solucionarlo. Es muy, muy sencillo.

Se debe a que Paypal ha actualizado su API, por eso un módulo que nunca nos había dado problemas, empieza a darlo. Pero ¿por que sólo da problemas en algunas tiendas y en otras no? Si vuestra tienda está alojanda en un servidor con CURL no debería afectaros, el problema es cuando vuestro hosting no lo tiene activado. En este caso, podéis poneros en contacto con los proveedores de hosting a ver si os lo activan, pero muchas veces se negarán a hacerlo. Entonces, la solución es la siguiente:

Abrid el archivo: module/paypal/api/paypal_connect.php

y, aproximadamente en la línea 49, cambiad esta línea:

if (!$simple_mode || !preg_match('/[A-Z]+=/', $tmp, $result))

por esta otra:

if (!$simple_mode || !preg_match('/[TOKEN]+=/', $tmp, $result))


¡Y listo! Probad a hacer un pedido con Paypal y, en teoría, debería funcionar. A nosotros nos ha funcionado en todas nuestras tiendas con ese error. Es muy fácil de solucionar si te dicen cómo hacerlo, pero te puedes volver loco si no encuentras la solución. Por eso, queríamos comentarlo en el blog, porque es un problema que está afectando a muchas tiendas online hechas con Prestashop estos últimos meses.