Hola buenos días,
He recibido un correo de paypal que dice:
"Por favor, compruebe el servidor que se ocupa de sus notificaciones de pago instantánea de PayPal (IPN). Las IPN enviadas a las URL siguientes están fallando:
http://www.donhierro.com/tienda/modules/paypal/ipn.php
Si no reconoce esta URL, es posible que esté utilizando un proveedor de servicios que esté utilizando IPN en su nombre. Póngase en contacto con su proveedor de servicios con la información anterior. Si este problema persiste, puede que se desactiven las IPN para su cuenta."
Cómo puedo solucionarlo??
Gracias
URL del sitio: Contenido solo visible a usuarios registrados
Buenos días Alberto,
Mira si tienes un fichero error_log en la carpeta /tienda/modules/paypal/ y en caso afirmativo pega las últimas líneas para que vemos si hay errores en el código de tienda/modules/paypal/ipn.php
Te puede ayudar https://www.webempresa.com/blog/que-es-un-error-500-y-como-localizarlo-en-nuestra-web.html
Un saludo.
Hola Lorena,
Sí que se ha generado ese archivo. Te paso la última línea de código (las anteriores son iguales, solo varía la fecha)
[20-Jul-2015 18:49:02 Greenwich] PHP Fatal error: Call to a member function getSummaryDetails() on a non-object in /home/donhierr/public_html/tienda/modules/paypal/ipn.php on line 156
Gracias por tu ayuda.
Hola,
Revisa la siguiente solución, por si te es de utilidad: https://www.prestashop.com/forums/topic/83021-solucionado-problema-paypal-api-ipn-alguieeeeeennnnnnnn/
Saludos
Hola Julen,
Ya había mirado ese post. Y tengo hecho lo que dice. Entré en mi cuenta paypal y cambié la ruta de IPN por la que he indicado en el primer comentario.
Hola,
Reinstala el modulo ya que posiblemente no este funcionando correctamente y posiblemente no este actualizado.
Puedes descargarlo de aquí: http://addons.prestashop.com/es/pagos-prestashop-modulos/1748-paypal.html
No obstante, antes de subirlo asegurate que has eliminado completamente el que tienes ahora.
Saludos
Hola Julen,
He vuelto a desinstalar y a re-instalar el módulo de Paypal. He vuelto a meter mis datos de API y seleccionado pago express.
Cobrar cobra, ya que hemos hecho una prueba. Pero no se procesa como pedido en prestashop, ni deja rastro alguno (ni en carritos abandonados ni en pedidos). ¿Alguna idea?
Hola Alberto,
Revisa en el directorio /modules/paypal de su tienda, si tienes un archivo error_log. De ser así, edítalo y comprueba si hay errores (no warnings) que coincidan en fecha después de la reinstalacion y dinos de qué se trata.
No obstante, revisa las siguientes soluciones que se dan en los siguientes enlaces, por si alguna te es de utilidad:
https://www.prestashop.com/forums/topic/435201-paypal-no-me-genera-un-pedido-en-el-bo/
https://www.prestashop.com/forums/topic/185888-al-pagar-con-paypal-no-llega-el-pedido-a-prestashop/
Saludos
Hola Julen,
Me he revisado los enlaces, pero no se trata del mismo problema.
Respecto al IPN, sigue dando fallos (el archivo error.log que se genera, sigue registrándolos hoy).
El mensaje de error sigue siendo el mismo:
[24-Jul-2015 09:34:49 Greenwich] PHP Fatal error: Call to a member function getSummaryDetails() on a non-object in /home/donhierr/public_html/tienda/modules/paypal/ipn.php on line 156
La línea 156 en cuestión es:
$cart_details = Context::getContext()->cart->getSummaryDetails(null, true);
Y viene de:
public function checkPayment($payment_status, $mc_gross_not_rounded, $new_order)
{
$currency_decimals = is_array(Context::getContext()->currency) ? (int)Context::getContext()->currency['decimals'] : (int)Context::getContext()->currency->decimals;
$this->decimals = $currency_decimals * _PS_PRICE_DISPLAY_PRECISION_;
$mc_gross = Tools::ps_round($mc_gross_not_rounded, $this->decimals);
$cart_details = Context::getContext()->cart->getSummaryDetails(null, true);
$cart_hash = sha1(serialize(Context::getContext()->cart->nbProducts()));
$custom = Tools::jsonDecode(Tools::getValue('custom'), true);
$shipping = $cart_details['total_shipping_tax_exc'];
$subtotal = $cart_details['total_price_without_tax'] - $cart_details['total_shipping_tax_exc'];
$tax = $cart_details['total_tax'];
$total_price = Tools::ps_round($shipping + $subtotal + $tax, $this->decimals);
if (($new_order == true) && ($this->comp($mc_gross, $total_price, 2) !== 0))
{
$payment_type = (int)Configuration::get('PS_OS_ERROR');
$message = $this->l('Price paid on paypal is not the same that on PrestaShop.').'
';
}
elseif (($new_order == true) && ($custom['hash'] != $cart_hash))
{
$payment_type = (int)Configuration::get('PS_OS_ERROR');
$message = $this->l('Cart changed, please retry.').'
';
}
else
{
return $this->getDetails($payment_status) + array(
'payment_status' => $payment_status,
'total_price' => $total_price
);
}
No sé si con estos datos podéis ayudarme... La verdad es que me estoy volviendo loco
Hola
Es como si faltaran achivos, o como si la solicitud no se completara
Tendrias que descartar primero el tema de la configuraicón de paypal, puedes probar instalando un nuevo pack prestashop en una carpeta , configurar el método de pago y realizar una prueba
Revisa si el módulo de paypal tiene actualizaciones
Saludos