THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,

J'utilise Thelia 2.0.3.

J'avais au début, comme pas ma de personnes je crois, le problème du round( avec le plugin de paypal. Problème réglé sans difficulté et maintenant j'arrive bien sur la page de paiement de paypal.

Seulement maintenant j'ai un problème que je n'arrive pas a comprendre, c'est que je rentre mes informations de carte bancaire, je valide et la paf... retour au site avec le message d'erreur :

"Nous sommes désolés, un problème est survenu lors du paiement."

J'ai cherché un peu partout dans le code du plugin et je n'arrive pas à trouver d'où viens ce bug.

Y aurait-il quelqu'un qui aurait une idée de la raison de bug ?

Offline


Regarde dans le dossier log, tu devrais trouvé un fichier avec les logs PAYPAL (log-paypal.txt)

Pour mon cas, c'était un problème de chiffres après la virgule:
http://thelia.net/forum/viewtopic.php?id=10663

Offline


Bonsoir,

J'ai rencontré un problème qui ressemble à celui décrit ici, après avoir effectué la correction du round la redirection vers Paypal fonctionnait correctement.

Mais j'avais ensuite deux options de paiement sur la page de Paypal :

  • - Payer avec un compte Paypal qui fonctionnait correctement

  • - Payer par carte bancaire (sans compte Paypal) qui ne fonctionnait pas correctement

Chez moi la seconde option me renvoyait systématiquement vers la page d'erreur "gotopaypalfail.html" de Thelia et aucune logs en erreur n'apparaissait dans Thelia (pour info, l'option de paiement sans carte n'est dispo que si le compte Paypal associé au module est correctement configuré pour accepter les paiements sans cartes : paramètres > mes ventes > vendre en ligne > preferences de sites marchands > compte paypal facultatifs).

Après avoir effectuer des recherches dans le code du module, j'ai pu trouver une correction à mon problème en modifiant le fichier suivant :

/local/modules/Paypal/Controller/PaypalResponse.php

...
            if (isset($response['ACK']) && $response['ACK'] === 'Success' &&
                isset($response['PAYERID']) && $response['PAYERID'] === $payerid &&
                isset($response['TOKEN']) && $response['TOKEN'] === $token) {
...

J'ai en fait simplement retiré la condition suivante :

                isset($response['PAYERSTATUS']) && $response['PAYERSTATUS'] === 'verified' &&

Après avoir effectué des tests, je me suis rendu compte que l'api Paypal renvoyait systématiquement l'attribut "PAYERSTATUS" avec la valeur "unverified" lorsque le paiement était réalisé par carte (sans compte Paypal).

D'après ce que j'ai pu lire sur le net, ce comportement est "logique" car un utilisateur est vérifié uniquement lorsque celui-ci a un compte Paypal et qu'il a effectué diverses démarches pour obtenir ce statut.

Donc il me semble que lors d'un achat sans compte Paypal, l'acheteur ne peut pas avoir le statut "verified" et que par conséquent le module Paypal ne devrait pas effectuer cette vérification.

En tout cas après avoir effectué cette modif, les deux modes de paiement fonctionnent chez moi et l'argent est bien reçue sur le compte du vendeur.