Помилка Magento 1.9.0.1 Paypal Підсумки суми товару в кошику не відповідають сумам замовлення (# 10413:


9

це за допомогою magento 1.9.0.1 інтегрує поле Express Express paypal, крім цього у вас є плагін Pro нагороджує бали як нагородні бали за придбання якогось продукту, який при його інтеграції став купувати продукти без використання рекомпесів, оплата через paypal nigun можна зробити без проблем, але коли клієнти використовують бали за винагороду, помилка при підтвердженні замовлення, яка є

Шлюз PayPal відхилив запит. Підсумки позиції кошика Суми Суми не відповідають порядку (# 10413: Відхилена трансакція через недійсний аргумент. Докладні відомості див. У додаткові повідомлення про помилку.)

Шукаючи в мережі, щоб спробувати виправити цю помилку, я пропоную вам змінити файл Nav.php paypal, додавши будь-які два коди, які я поставив нижче:

перший код

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

другий Кодекс

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

// кінець

Якщо додати або код, якщо це дозволено, і здійснити оплату за ці знижки, але проблема полягає в тому, що коли ви бачите платіж через Paypal, стягується сума знижки, а не загальна сума - час, коли клієнти paypal входять і проходять через поле експрес, всі суми є правильними, і в кінцевому підсумку загальна сума платежу є штрафом, повертаємось в магазин і підтверджуємо замовлення, яке зроблено успішно, але коли оплата Paypal у розмірі знижки - це те, що ми отримуємо, це є прикладом до дайте зрозуміти

Вартість продукту> 340 балів узуадос на клієнта> 125 еквівалентно 20,54 Загальна покупка в магазині та paypal boxed express> 319,46 Кількість рекбда, щоб побачити рахунок на paypal> 20,54

Окрім цього, при купівлі виплат невикористані бали, з’являється помилка, яка вказує на те, що сума транзакції є дійсною, оскільки вона є нульовою.

Я спантеличений, щоб побачити, що кодує помилку, або змінити її, але я не можу це зробити, не якщо хтось знає, що я повинен робити чи можу допомогти


Де знаходиться Nav.php?
Джузеппе

Вирішено ваше питання чи ні?
Джем

Відповіді:


7

Проблема

Проблема досить зрозуміла з повідомлення: загальна сума предметів та загальна сума кошика, що надсилаються на Paypal, не відповідають.
Як ви вже зрозуміли, це, здається, є проблемою із розширенням балів (або цілком відсутністю підтримки для Paypal Express).

Краще рішення

Перше, що рекомендую, це перевірити, чи використовуєте ви останню версію розширення Reward Points Pro, оскільки вони, можливо, вже додали підтримку Paypal Express або вирішили проблему, з якою ви стикаєтеся. Якщо ні, зверніться до їх служби підтримки і спробуйте отримати допомогу від них.

Спеціальне рішення

ПРИМІТКА. Будь ласка, ніколи не змінюйте основний файл Magento. Якщо немає альтернативи (за допомогою спостерігача тощо), скопіюйте файл у локальний пул коду та перезапишіть його.

Ви повинні дивитися в файл додатка / код / ядро / Mage / Paypal / модель / Cart.php лінії # 318 . Як ви бачите, Magento надсилає туди подію, яку ви можете використати, щоб спробувати виправити цю проблему.
Спостерігаючи за цією подією, ви зможете отримати доступ до фактичного об'єкта Mage_Paypal_Model_Cart, який містить елементи та підсумки кошика, які будуть надіслані до Paypal.

Вибачте, але не знаючи, як розширення Reward Points Pro працює внутрішньо, я не можу дати точні вказівки з кодом і всім іншим. В основному, ви повинні спробувати зрозуміти, що відбувається в методах _render () & _validate () в застосуванні / код / ​​core / Mage / Paypal / Model / Cart.php і переконатися, що знижка від використання очок правильно застосовується.

Крім того, я не міг зрозуміти останню частину після коду, але, будь ласка, повідомте мене, якщо у вас є якісь питання.


Відмінні рішення, він працює чудово, але потрібна ще одна модифікація. У тому ж PHP-файлі є ще один метод _addRegularItem (). Там також згадується кількість. Треба змінити це.
Метелик

0

Проблема не в коді, але це проблема конфігурації. Просто переконайтеся, що ваш податок застосовується до підсумкової інформації, а не до загальної суми. Перевірте доданий скріншот. Переконайтесь, що для пунктів "Передача позицій у кошику" встановлено значення ТАК, а також "Опції перенесення доставки" на ТАК.введіть тут опис зображення


0

У нас були такі самі paypal-помилки і з'ясували, що коли стаття на тему "без податків", проблема не зникає. Тож ми деактивували плагін для часткового платежу, який перерахував деякі суми. Тож це допомогло в нашому випадку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.