@Torsten
Habt ja auch lange und viel gemacht.
@all
Ich arbeite mit Dezimalmengen. Leider funktioniert dadurch Paypal Express nicht und bricht immer sofort ab, wenn es sich um mindestens 2 Artikel mit Dezimalmengen im Warenkorb handelt, wo die zweite Nachkommastelle eine 5 ist. Also 1,40 und 1,40 sowie 1,45 und 1,60 geht, aber 1,35 und 1,85 zb als Menge bricht ab.
[06-02-2019 09:51:59] PayPal\Core\PayPalHttpConnection : ERROR: Got Http response code 400 when accessing https://api.paypal.com/v1/payments/payment. {"name":"VALIDATION_ERROR","details":[{"field":"transactions[0].amount","issue":"Transaction amount details (subtotal, tax, shipping) must add up to specified amount total"}],"message":"Invalid request - see details","information_link":"https://developer.paypal.com/docs/api/payments/#errors","debug_id":"52405bbaee64f"}
Nun hab ich gesehen, dass in der includes/external/paypal/classes/PayPalPayment.php mit
changeset 10680 also zwischen Version 2.0.2.1 und 2.0.2.2 mal folgende Zeilen geändert wurden, um dezimale Versandkosten einzugeben.
$this->amount->setTotal($this->amount->getTotal() + $shipping_cost);
wurde geändert zu
$this->amount->setTotal($this->amount->getTotal() + (double)$shipping_cost);
Also mit double für Fließkommazahlen und ich wollte das nun mal für die Mengen probieren. Die wahrscheinlich entscheidenen Stellen sehen alle in etwa so aus.
} else { for ($i = 0, $n = sizeof($order->products); $i < $n; $i ++) { $item[$i] = new Item
(); $item[$i]->setName($this->encode_utf8($order->products[$i]['name'])) ->setCurrency($order->info['currency']) ->setQuantity($order->products[$i]['qty']) ->setPrice($order->products[$i]['price']) ->setSku(($order->products[$i]['model'] != '') ?
$order->products[$i]['model'] : $order->products[$i]['id']); } } Wäre jemand so nett und könnte mir in den Codeschnipsel das double für die Menge integrieren? Dann könnte ich es testweise an allen Stellen einfügen und gucken, ob es dann geht. Ich habs mehrfach versucht, aber ich weiß nicht genau wie und wo bei den ganzen unterschiedlichen Klammern und Hochkommata.
Gruß Timm