Livezilla

Certified Partner and
PrestaShop Developer for:

Résoudre les problèmes Paypal dans Prestashop

Résoudre les problèmes de Paypal

Cette page a été écrite en anglais, s'il vous plaît voir la version anglaise pour les changements de code correct.

Les conseils suivants ont été écrites pour Prestashop 1.2 et 1.3, si vous utilisez une version de Prestashop 1.4, assurez-vous d'obtenir la dernière version du module paypal (disponible gratuitement à http://addons.prestashop.com/en/payments- gateways/1748-paypal.html)


1) Le problème le plus commun avec les commandes ne se présente pas paypal qui se passe quand paypal ne peut pas accéder à votre serveur, votre fichier / dossiers sont incorrects, ou si votre compte paypal n'est pas vérifié.


Vérifiez que les conditions suivantes sont correctes:

· Votre boutique n'est pas en mode de maintenance (si personne ne peut accéder à votre site, le site de PayPal ne sera pas en mesure de soit).

· Il n'ya pas un mot de passe sur votre site (même raison que ci-dessus).

· Essayez d'ouvrir cette page dans le navigateur - http://www.yoursite.com/modules/paypal/validation.php,
si vous obtenez une erreur (erreur 500, la page ne peut pas être affiché), cela signifie que vous avez un problème d'autorisation de fichiers. Très probablement, le répertoire paypal ou dans tout le répertoire des modules est fixé à 777 et que votre hôte ne permet pas que (ce n'est pas sécurisé); essayez de la modifier à 755. Vous pouvez également vérifier le journal d'erreur de votre serveur (à partir de votre cPanel) pour obtenir l'erreur exacte.

· Assurez-vous de votre compte PayPal est vérifié, sinon les transactions ne sont pas automatiquement approuvés et prestashop affiche une erreur de paiement.


2) Le problème le plus Sandbox mode commun avec le module paypal est que les ordres ne sont pas apparaître sur la boutique.

La raison en est que le module paypal est actuellement mis en place pour créer des commandes uniquement si la réponse qu'il obtient à partir du site PayPal est «Terminé», cependant, lorsqu'il est exécuté en mode sandbox, PayPal envoie une réponse de "en attente".

Nous avons lu de la documentation sur la modification du compte sandbox envoyer un «Terminé» réponse, mais même après avoir essayé que les paiements continue d'apparaître comme en attente.


Afin de corriger cela, effectuez la modification suivante dans / modules / paypal / validation.php ligne # 80.

Il permettra d'une commande avec un «en attente» à franchir, mais seulement en mode sandbox.


elseif ($ _POST ['payment_status']! = 'Terminé')

Devrait être modifié pour

($ _POST ['payment_status'] = 'Terminé' & & (configuration:!: get ('PAYPAL_SANDBOX') | | $ _POST ['payment_status'] = 'En attente')) elseif


3) Un autre problème commun est que les ordres qui sont placés en mode live ne se présentent pas dans le backoffice, mais le client obtient encore chargé.


C'est souvent le cas parce que la réponse de paypal n'est pas "Terminé".

Il pourrait y avoir plusieurs raisons à cela, les principaux que nous avons trouvé sont les suivants:

a) Votre devise par défaut de Prestashop ne correspond pas à votre devise paypal.

b) Le paiement est effectué en utilisant Echeck ou d'autres méthodes qui nécessitent un temps plus long à effacer.

c) Paypal décide ils ont besoin pour enquêter sur la transaction.


  • Vous pouvez modifier le code pour vous envoyer un e-mail chaque fois qu'une transaction comme cela se produit, alors vous pourriez au moins le connaître et contacter le client pour les informer de la situation.


Pour ce faire, modifiez le code dans / paypal / validation.php (ligne n ° 80) De

($ _POST ['payment_status'] = 'Terminé' & & (configuration:!: get ('PAYPAL_SANDBOX') | | $ _POST ['payment_status'] = 'En attente')) elseif
$ Erreurs .= $ paypal-> GETL («le paiement').$_ POST ['payment_statu
s'].'';

Pour

($ _POST ['payment_status'] = 'Terminé' & & (configuration:!: get ('PAYPAL_SANDBOX') | | $ _POST ['payment_status'] = 'En attente')) elseif

{
$ Erreurs .= $ paypal-> GETL ('après paiement').$_ [' payment_status'].'';
mail ("your@address.com", "erreur de paiement e-mail", "Il y avait un problème avec le paiement, ci-dessous est le retour de paypal" print_r ($ _POST, true).);
}