Magento 1.9.0.1 Błąd Paypal Sumy kwot pozycji w koszyku nie odpowiadają kwotom zamówienia (# 10413:


9

czy to za pomocą Magento 1.9.0.1 zintegrowało pudełko expres paypal, oprócz tego masz plugin pro punkty premiowe jako punkty nagrodowe za zakup niektórych produktów, które, gdy stało się integracją i kupowaniem produktów bez korzystania z punktów recompesa, płatność przez paypal nigun można wykonać bez problemu, ale gdy klienci używają punktów nagrody, pojawia się błąd przy potwierdzaniu zamówienia, który jest

Brama PayPal odrzuciła żądanie. Sumy pozycji koszyka Kwoty Kwoty nie zgadzają się z kolejnością (# 10413: Transakcja odrzucona Z powodu nieprawidłowego argumentu Aby uzyskać szczegółowe informacje, zobacz dodatkowe komunikaty o błędach).

Przeszukując sieć, aby spróbować naprawić ten błąd, sugeruję, że możesz zmodyfikować plik Nav.php paypal, dodając dowolne dwa kody, które umieszczam poniżej:

pierwszy kod

// 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

drugi kod

    // 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;
}

//koniec

Dodanie dowolnego kodu, jeśli jest dozwolone i dokonanie płatności za te punkty rabatowe, ale problem polega na tym, że gdy zobaczysz płatność PayPal, naliczana jest kwota rabatu zamiast łącznej kwoty, czas, w którym klienci PayPal logują się i przechodzą przez expres box, wszystkie kwoty są prawidłowe i desglozadas w końcu całkowita kwota płatności jest w porządku, wróć do sklepu i potwierdź zamówienie, które zostało wykonane pomyślnie, ale gdy otrzymamy płatność PayPal w wysokości rabatu, to przykładowo wyjaśnij to

Koszt produktu> 340 punktów usuados na klienta> 125 równowartość 20,54 Całkowity zakup w sklepie i zapłata w pudełku expres> 319,46 Ilość recibda, aby zobaczyć konto na paypal> 20,54

Oprócz tego przy zakupie płatności niewykorzystanych punktów nagrody pojawia się błąd wskazujący, że kwota transakcji jest ważna, ponieważ jest zerowa.

Zastanawiałem się, czy kody błędów albo go modyfikują, ale nie mogę tego zrobić, jeśli ktoś wie, że muszę to zrobić lub może pomóc


Gdzie znajduje się Nav.php?
Giuseppe,

Czy Twój problem został rozwiązany?
Klejnot

Odpowiedzi:


7

Problem

Problem jest całkiem jasny z wiadomości: suma kwot produktów i całkowita kwota koszyka wysłanych do Paypal nie pasują do siebie.
Jak się zorientowałeś, wydaje się, że jest to problem z tym rozszerzeniem punktów (lub całkowitym brakiem obsługi Paypal Express).

Preferowane rozwiązanie

Pierwszą rzeczą, którą polecam, jest sprawdzenie, czy korzystasz z najnowszej wersji rozszerzenia Reward Points Pro, ponieważ mogły one już dodać obsługę Paypal Express lub naprawić problem, na który napotykasz. Jeśli nie, skontaktuj się z ich wsparciem i spróbuj uzyskać od nich pomoc.

Niestandardowe rozwiązanie

UWAGA: Nigdy nie modyfikuj podstawowego pliku Magento. Jeśli nie ma alternatywy (przy użyciu obserwatora itp.), Skopiuj plik do lokalnej puli kodów i nadpisz go.

Należy spojrzeć na plik app / code / core / Mage / Paypal / Model / Cart.php linii nr 318 . Jak widać Magento wywołuje tam wydarzenie, którego możesz użyć, aby spróbować naprawić ten problem.
Obserwując to wydarzenie, będziesz mieć dostęp do rzeczywistego obiektu Mage_Paypal_Model_Cart, który zawiera przedmioty i sumy koszyka, które zostaną wysłane do Paypal.

Przykro mi, ale nie wiem, jak rozszerzenie Reward Points Pro działa wewnętrznie, nie mogę udzielić dokładnych wskazówek dotyczących kodu i wszystkiego. Zasadniczo powinieneś spróbować zrozumieć, co dzieje się w metodach _render () i _validate () w app / code / core / Mage / Paypal / Model / Cart.php i upewnić się, że zniżka z używania punktów jest poprawnie zastosowana.

Ponadto nie mogłem zrozumieć dokładnie ostatniej części po kodzie, ale proszę dać mi znać, jeśli masz jakieś pytania.


Doskonałe rozwiązania, działa idealnie, ale wymagana jest jeszcze jedna modyfikacja. W tym samym pliku php jest jeszcze jedna metoda _addRegularItem (). Kwota również tam wymieniona. Muszę to zmienić.
Butterfly

0

Problem nie znajduje się w kodzie, ale jest to problem z konfiguracją. Upewnij się, że podatek jest zastosowany do sumy częściowej zamiast sumy całkowitej. Sprawdź załączony zrzut ekranu. Upewnij się, że „Elementy zamówienia w koszyku transferu” są ustawione na TAK, a „Opcje wysyłki transferu” na TAK.wprowadź opis zdjęcia tutaj


0

Mieliśmy te same błędy w płatnościach PayPal i okazało się, że gdy artykuł jest „wolny od podatku”, problem zniknął. Dlatego dezaktywowaliśmy wtyczkę częściowej płatności, która ponownie obliczyła niektóre sumy. To pomogło w naszym przypadku.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.