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 :
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.