Ist dies mit Magento 1.9.0.1 integriert hat die Box Expres Paypal, zusätzlich haben Sie das Plugin Pro Belohnungspunkte als Belohnungspunkte, um einige Produkte zu kaufen, die, als es die Integration wurde und Produkte ohne Verwendung von Punkten der Vergütung, Zahlung per Paypal nigun kann problemlos durchgeführt werden, aber wenn Kunden Prämienpunkte verwenden, ist dies ein Fehler bei der Bestätigung der Bestellung
Das Gateway von PayPal lehnte die Anfrage ab. Die Gesamtsummen des Warenkorbartikels Beträge Beträge stimmen nicht mit der Bestellung überein (# 10413: Transaktion aufgrund eines ungültigen Arguments abgelehnt. Weitere Informationen finden Sie in den zusätzlichen Fehlermeldungen.)
Wenn Sie im Internet suchen, um diesen Fehler zu beheben, empfehlen wir Ihnen, die Datei Nav.php paypal zu ändern, indem Sie zwei der folgenden Codes hinzufügen:
erster Code
// Hack Start
$totalValue = $request['TAXAMT'] + $request['ITEMAMT'];
$finalValue = $totalValue - $request['AMT'];
if($request['SHIPPINGAMT'] > 0) {
$request['SHIPPINGAMT'] = ($request['AMT'] - ($request['TAXAMT'] + $request['ITEMAMT']));
$totalValue = $request['TAXAMT'] + $request['ITEMAMT'] + $request['SHIPPINGAMT'];
$finalValue = $totalValue - $request['AMT'];
}
if($request['AMT'] != $totalValue) {
if($totalValue > $request['AMT']) {
$request['TAXAMT'] = $request['TAXAMT'] - $finalValue;
}elseif($totalValue < $request['AMT']) {
$request['TAXAMT'] = $request['TAXAMT'] + $finalValue;
}else{
$request['AMT'] = $request['TAXAMT'] + $request['ITEMAMT'];
}
}
// Hack End
zweiter Code
// Check discount
$lineAmt = 0;
$discount = 0;
$line = 0;
$discountIndex = 0;
while(isset($request["L_AMT{$line}"])) {
if($request["L_NAME{$line}"] == 'Discount') {
$discount += $request["L_AMT{$line}"];
$discountIndex = $line;
}
else {
$lineAmt += $request["L_AMT{$line}"];
}
$line++;
}
if($discount) {
if($discount + $lineAmt != $request['ITEMAMT']) {
// Do correction
$request["L_AMT{$discountIndex}"] = ($request['ITEMAMT'] - $lineAmt);
}
} else {
// Check item amount adds up
$correctItemAmt = $request['AMT'] - $request['SHIPPINGAMT'] - $request['TAXAMT'];
if($correctItemAmt != $request['ITEMAMT']) {
$request['ITEMAMT'] = $correctItemAmt;
}
//Ende
Wenn Sie einen der beiden Codes hinzufügen, sofern dies zulässig ist, und die Zahlung für diese Rabattpunkte vornehmen, besteht das Problem darin, dass beim Anzeigen der Paypal-Zahlung der Rabattbetrag und nicht der Gesamtbetrag berechnet wird, dh die Zeit, zu der sich die Paypal-Kunden anmelden und die expres box, alle Beträge sind korrekt und desglozadas am Ende ist der gesamte Zahlungsbetrag in Ordnung, kehren Sie zum Geschäft zurück und bestätigen Sie die Bestellung, die erfolgreich ausgeführt wurde, aber wenn Paypal-Zahlung in Höhe des Rabatts das ist, was wir erhalten, zeigt es beispielhaft mach es klar
Produktkosten> 340 Punkte usuados pro Kunde> 125 entspricht 20,54 Gesamtkauf im Geschäft und Paypal-Box-Ausdruck> 319,46 Menge recibda, um das Konto auf Paypal zu sehen> 20,54
Abgesehen davon wird beim Kauf nicht verwendeter Prämienpunkte ein Fehler angezeigt, der angibt, dass der Transaktionsbetrag gültig ist, da er Null ist.
Ich habe mich gewundert, welche Fehlercodes es gibt, um sie zu ändern, aber ich kann es nicht tun, nicht wenn jemand weiß, dass ich es tun muss oder helfen kann
Antworten:
Problem
Das Problem wird aus der Nachricht ziemlich deutlich: Die Summe der Artikelbeträge und der Gesamtbetrag des Warenkorbs, die an Paypal gesendet werden, stimmen nicht überein.
Wie Sie herausgefunden haben, scheint dies ein Problem mit dieser Punkteerweiterung zu sein (oder ein völliger Mangel an Unterstützung für Paypal Express).
Bevorzugte Lösung
Als erstes empfehle ich zu überprüfen, ob Sie die neueste Version der Reward Points Pro-Erweiterung verwenden, da diese möglicherweise bereits Unterstützung für Paypal Express hinzugefügt oder das Problem behoben hat, auf das Sie stoßen. Wenn nicht, wenden Sie sich an den Support und versuchen Sie, Hilfe von ihnen zu erhalten.
Kundenspezifische Lösung
HINWEIS: Bitte ändern Sie niemals eine Magento-Kerndatei. Wenn es keine Alternative gibt (mit einem Beobachter usw.), kopieren Sie die Datei in den lokalen Codepool und überschreiben Sie sie dort.
Sie sollten einen Blick in die Datei app / code / core / Mage / Paypal / Model / Cart.php Zeile # 318 werfen . Wie Sie sehen können, sendet Magento dort ein Ereignis aus, mit dem Sie versuchen können, dieses Problem zu beheben.
Wenn Sie dieses Ereignis beobachten, können Sie auf das tatsächliche Mage_Paypal_Model_Cart- Objekt zugreifen , das die Artikel und Summen des Warenkorbs enthält, der an Paypal gesendet wird.
Es tut mir leid, aber ich weiß nicht, wie die Reward Points Pro-Erweiterung intern funktioniert. Ich kann Ihnen keine genaue Anleitung mit Code und allem geben. Grundsätzlich sollten Sie versuchen zu verstehen, was in den Methoden _render () & _validate () in app / code / core / Mage / Paypal / Model / Cart.php passiert, und sicherstellen, dass der Rabatt bei der Verwendung von Punkten korrekt angewendet wird.
Außerdem konnte ich den letzten Teil nach dem Code nicht genau verstehen, aber bitte lassen Sie mich wissen, wenn Sie Fragen haben.
quelle
Das Problem ist nicht im Code enthalten, es handelt sich jedoch um ein Konfigurationsproblem. Stellen Sie einfach sicher, dass Ihre Steuer auf die Zwischensumme und nicht auf die Gesamtsumme angewendet wird. Überprüfen Sie den beigefügten Screenshot. Stellen Sie sicher, dass Ihre "Warenkorb-Werbebuchungen" auf JA gesetzt sind und die "Versandoptionen übertragen" auf JA.
quelle
Wir hatten die gleichen Paypal-Fehler und fanden heraus, dass das Problem weg ist, wenn ein Artikel auf "steuerfrei" ist. Deshalb haben wir ein Teilzahlungs-Plugin deaktiviert, das einige Summen neu berechnet hat. Das hat also in unserem Fall geholfen.
quelle