thelia-modules / PayPal

Paypal module for Thelia ecommerce solution
8 stars 28 forks source link

Error 10413: Transaction refused:totals of the cart item amounts do not match order amounts #22

Closed InformatiqueProg closed 8 years ago

InformatiqueProg commented 8 years ago

Dans la boucle indiquant à Paypal les produits Le prix TTC (arrondi) est utilisé. Quand Paypal vérifie que le total des produits est bien égal au total de la commande, si l'on a des quantités > 1, il y a de grandes chances d'avoir quelques centimes de différence...

Asenar commented 8 years ago

on est 2 :)

Alors en attendant une résolution, il y a 2 moyens de contourner le problème:

1) Envoyer à paypal uniquement le total, sans le détail de la commande 2) Arrondir les prix à deux chiffres maximum après la virgule en base de données

Et... je viens peut être de trouver le problème: le calcul du total dans la boucle se fait $amount * $quantity sans arrondir $amount...

$products_amount+=$amount*$product->getQuantity();

$products_amount+=round($amount, 2)*$product->getQuantity();

Donc pour résoudre, il faudrait soit arrondir $amount avant de calculer le produit, soit peut être utiliser une autre variable qui ferait la somme paypal, et l'utiliser pour calculer le delta plutôt que getTotalAmount()

$products_amount_paypal +=round($amount, 2)*$product->getQuantity();

InformatiqueProg commented 8 years ago

Pour information, le fil de cette discussion qui a commencé sur le forum http://thelia.net/forum/viewtopic.php?pid=68433#p68433

Asenar commented 8 years ago

oui, c'est d'ailleurs moi qui répond sous le pseudo de Desproges sur le forum (j'ai demandé à le changer pour Asenar mais je n'ai pas eu de réponse …) .

Asenar commented 8 years ago

Ah, petite précision ! Je ne suis pas sur que le problème vienne uniquement de paypal, mais bien aussi de Thélia, car dans la page juste avant la redirection paypal, on a bien potentiellement deux totaux différent (pour moi c'était 80,83 et 80,84). Donc ça se passe avant paypal.

InformatiqueProg commented 8 years ago

Pour ce qui se passe avant Paypal, ces PR résolvent le problème des arrondis https://github.com/thelia/thelia/pull/1816 et https://github.com/thelia/thelia/pull/1810

bibich commented 8 years ago

closed by #25 also, #26 allow to not send order details