Livezilla

Certified Partner and
PrestaShop Developer for:

Solucionar problemas de Paypal en Prestashop

Solucionar problemas de Paypal

Esta página ha sido escrito en Inglés, por favor vea la versión en Inglés de los cambios de código correcto.

Los siguientes consejos fueron escritos para Prestashop 1.2 y 1.3, si usted está usando alguna versión de Prestashop 1.4, asegúrese de obtener la última versión del módulo de paypal (disponible gratuitamente en http://addons.prestashop.com/en/payments- gateways/1748-paypal.html)


1) El problema más común con las órdenes de paypal no aparece que pasa cuando paypal no se puede acceder a su servidor, el archivo / carpeta los permisos son incorrectos, o si su cuenta de paypal no es verificada.


Compruebe que las siguientes condiciones son correctas:

· Su tienda no es en modo de mantenimiento (si nadie puede acceder a su sitio, el sitio de PayPal, no podrá tampoco).

· No hay protección de contraseña en su sitio (lo mismo que el anterior).

Trate de abrir esta página desde el navegador - http://www.yoursite.com/modules/paypal/validation.php,
si se produce un error (error 500, la página no se puede mostrar), que significa que tiene un problema de permisos de archivos. Lo más probable es el directorio de paypal o el directorio de módulos de todo está establecido en 777 y su anfitrión no permite que (no es seguro), pruebe a cambiar a 755. También puede consultar el registro de su servidor de error (de su cPanel) para obtener el error exacto.

· Asegúrese de que su cuenta de paypal se verifica lo contrario, las transacciones no se aprobó de forma automática y prestashop mostrará un error de pago.


2) El problema más común modo de recinto de seguridad con el módulo de paypal es que las órdenes no se muestran en la tienda.

La razón de ello es el módulo de paypal está configurado actualmente para crear las órdenes si la respuesta que obtiene de la página de PayPal es "Completado", sin embargo, cuando se ejecuta en modo de recinto de seguridad, PayPal envía una respuesta de "Pendiente".

Hemos leído algunos documentos sobre el cambio de la cuenta de caja de arena para enviar un "Completo" la respuesta, pero incluso después de intentar que los pagos aún aparece como pendiente.


Con el fin de corregir esto, haga el siguiente cambio en / modules / paypal / validation.php línea # 80.

Se permitirá una orden con un estado "Pendiente" a pasar, pero sólo en el modo de recinto.


elseif ($ _POST ['payment_status']! = 'Completo')

Se debe cambiar a

elseif ($ _POST ['payment_status'] = 'Completo' & & (Configuración::! get ('PAYPAL_SANDBOX') | | $ _POST ['payment_status'] = 'Pendiente'))


3) Otro problema común es que las órdenes que se colocan en el modo de vivir no se presentan en el backoffice, pero el cliente aún se carga.


Esto es a menudo el caso, porque la respuesta de paypal no es "Completado".

Podría haber muchas razones para ello, las principales que hemos encontrado son los siguientes:

a) La moneda por defecto en Prestashop no coincide con su moneda paypal.

b) El pago se realiza mediante Echeck u otros métodos que requieren más tiempo para limpiar.

c) Paypal decide que necesitan para investigar la transacción.


  • Puede modificar el código para enviar un correo electrónico cada vez que una transacción como lo que sucede, por lo que al menos podría saber acerca de ella y en contacto con el cliente para informarle sobre la situación.


Para ello, cambiar el código en / paypal / validation.php (línea # 80) de

elseif ($ _POST ['payment_status'] = 'Completo' & & (Configuración::! get ('PAYPAL_SANDBOX') | | $ _POST ['payment_status'] = 'Pendiente'))
$ Errores .= $ paypal-> getL (de pago').$_ post ['payment_statu
s'].'';

A

elseif ($ _POST ['payment_status'] = 'Completo' & & (Configuración::! get ('PAYPAL_SANDBOX') | | $ _POST ['payment_status'] = 'Pendiente'))

{
$ Errores .= $ paypal-> getL ("posteriores a los pagos').$_ ['payment_status'].'';
mail ("your@address.com", "error de pago-mail", "Hubo un problema con el pago, a continuación es el regreso de paypal" print_r ($ _POST, true).)
}