Magento 1.9.0.1 Ошибка Paypal. Итоговые суммы товаров в корзине не соответствуют суммам заказа (# 10413:


9

это при использовании magento 1.9.0.1 интегрирована коробка expres 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 входят в систему и проходят через В поле expres все суммы верны и desglozadas. В конце концов, общая сумма платежа будет в порядке, вернитесь в магазин и подтвердите заказ, который был успешно выполнен, но когда мы получаем платеж PayPal в размере скидки, это иллюстрирует уточни

Стоимость продукта> 340 Баллов usuados на одного клиента> 125 эквивалентно 20,54 Всего покупок в магазине и PayPal в штучной упаковке EXPRE> 319,46 Количество recibda, чтобы увидеть счет на PayPal> 20,54

Кроме того, при покупке платежа начисляются неиспользованные бонусные баллы, появляется ошибка, указывающая, что сумма транзакции действительна, потому что она нулевая.

Я ломал голову, чтобы увидеть, что коды ошибок либо изменить, но я не могу это сделать, если кто-то знает, что я должен сделать или может помочь


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

Ваша проблема решена или нет?
Gem

Ответы:


7

проблема

Проблема довольно ясна из сообщения: общие суммы товаров и общая сумма корзины, отправленные в Paypal, не совпадают.
Как вы уже поняли, похоже, это проблема с расширением этих точек (или полное отсутствие поддержки Paypal Express).

Предпочтительное решение

Первое, что я рекомендую, это проверить, используете ли вы последнюю версию расширения Reward Points Pro, поскольку они, возможно, уже добавили поддержку Paypal Express или устранили проблему, с которой вы столкнулись. Если нет, обратитесь в службу поддержки и постарайтесь получить от них помощь.

Индивидуальное решение

ПРИМЕЧАНИЕ: Пожалуйста, никогда не изменяйте основной файл Magento. Если нет альтернативы (с использованием наблюдателя и т. Д.), Скопируйте файл в локальный пул кода и перезапишите его.

Вы должны взглянуть на файл app / code / core / Mage / Paypal / Model / Cart.php строка # 318 . Как вы можете видеть, Magento отправляет туда событие, которое вы можете использовать, чтобы попытаться решить эту проблему.
Наблюдая за этим событием, вы сможете получить доступ к реальному объекту Mage_Paypal_Model_Cart, который содержит элементы и итоги корзины, которые будут отправлены в Paypal.

Извините, но не зная, как внутреннее расширение Reward Points Pro работает, я не могу дать вам точное руководство с кодом и всем остальным. По сути, вы должны попытаться понять, что происходит в методах _render () и _validate () в app / code / core / Mage / Paypal / Model / Cart.php и убедиться, что скидка от использования баллов применяется правильно.

Кроме того, я не мог точно понять последнюю часть после кода, но, пожалуйста, дайте мне знать, если у вас есть какие-либо вопросы.


Отличное решение, работает отлично, но требуется еще одна модификация. В том же файле php есть еще один метод _addRegularItem (). Количество там тоже упоминается. Должны изменить это.
Бабочка

0

Проблема не в коде, но это проблема конфигурации. Просто убедитесь, что ваш налог применяется к промежуточной сумме вместо общей суммы. Проверьте прикрепленный скриншот. Убедитесь, что для ваших позиций в «Корзине переноса» установлено значение «ДА», а для «Вариантов переноса» - значение «ДА».введите описание изображения здесь


0

У нас были те же ошибки PayPal и мы обнаружили, что, когда статья «безналоговой», проблема исчезла. Поэтому мы деактивировали плагин частичной оплаты, который пересчитал некоторые итоги. Так что это помогло в нашем случае.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.