dienesdavid Posted February 3, 2014 Share Posted February 3, 2014 Sziasztok! A "PayPal vs tizedes egységár" topic-omban megoldottam, hogy elinduljon a PayPal fizetés. Azonban most a fizetés befejeztével vannak gondok. Leírom egy példán (EUR pénznem). termék nettó ára 7,5 áfa 2,025 bruttó ár 9,525 mit fizet paypalon 9,53 eltérés 0,005 A fenti tranzakciónál a PayPal fizetés után, amikor a Presta visszakapta a vezérlést, az alábbi piros üzenet jelenik meg: An error occurred while processing payment. A pénz megérkezik, de a piros üzenet jól megijeszti a vevőt, aki újra vásárol. Rém kellemetlen visszautalni a pénzt. Az adminban a rendeléseknél "Payment error" üzenet van, legalul pedig "Price paid on paypal is not the same that on PrestaShop." Úgy gondolom, hogy a fél centes eltérés miatt van a hibaüzenet (teszteltem olyan összeggel ahol nem jelenik meg a harmadik tizedes hely a bruttó árban - akkor nincs hiba) . Érdeklődöm, hogy találkozott-e már valaki ezzel, illetve ismertek-e megoldást erre. Köszönöm, Dávid 1 Link to comment Share on other sites More sharing options...
dienesdavid Posted February 3, 2014 Author Share Posted February 3, 2014 PrestaShop 1.5.5.0 PayPal 3.6.1 1 Link to comment Share on other sites More sharing options...
dienesdavid Posted February 5, 2014 Author Share Posted February 5, 2014 Úgy tűnik a lenti módosítással sikerült orvosolnom... modules\paypal\express_checkout\process.php: public function getTotalPaid() { $total = 0.00; foreach ($this->product_list as $product) { //soktizedes hiba javítása: //az egységárat nem szabad kerekíteni a szorzás előtt: //$price = Tools::ps_round($product['price_wt'], $this->decimals); $price = $product['price_wt']; $quantity = Tools::ps_round($product['quantity'], $this->decimals); $total = Tools::ps_round($total + ($price * $quantity), $this->decimals); } ... A fenti függvény számolja ki újra a teljes fizetendő összeget, amit majd a rendszer összehasonlít a PayPal-lal fizetett összeggel. Mivel nálunk az egységár 3 tizedes, ezért helytelen az egységárat kerekíteni a darabszám szorzás előtt. Azt legfelül elfelejtettem írni, hogy 0.075-ös egységáram van, amiből 100db-ot rendelünk, így lesz a termék nettó ára 7.5 euro. A kerekítés miatt a rendszer 0.08 euróval számolhatott (így a termékár 8.0). Erre a következtetésre debug eszköz nélkül jutottam. Talán megérne egy topic-ot, hogy ki hogyan debuggol prestás php-t. Dávid 1 Link to comment Share on other sites More sharing options...
pattila01 Posted February 5, 2014 Share Posted February 5, 2014 Köszönjük hogy megosztottad Velünk! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now