How To Fix Paypal gateway has rejected request. The totals of the cart item amounts do not match order amounts (#10413: Transaction refused because of an invalid argument. See additional error messages for details).
Solution:
The first step is to copy the Abstract.php file from app/code/core/Mage/Paypal/Model/Api/
to
app/code/local/Mage/Paypal/Model/Api/.
You can make these changes directly to the core file if you really have to, but it's not recommended.
Solution:
The first step is to copy the Abstract.php file from app/code/core/Mage/Paypal/Model/Api/
to
app/code/local/Mage/Paypal/Model/Api/.
You can make these changes directly to the core file if you really have to, but it's not recommended.
//Find the
_exportLineItems function
//(line 390 in my version 1.9)
//Before the foreach ($items as $item) { (around line 412) add this: $running_total = 0; //Before the $request[sprintf($privateFormat, $i)] = $value; (around line 423) add this: if ($publicKey == 'amount') { $running_total += $value; } //Before the return $result; (around line 427) add this: // Check ITEMAMT. If different to running total, offset prices if ((isset($request['ITEMAMT'])) && ($request['ITEMAMT'] > 0)) { if ($running_total <> (float) $request['ITEMAMT']) { $difference = ($running_total - (float) $request['ITEMAMT']); // Apply difference to first product. $request['L_AMT0'] = (string) ((float) $request['L_AMT0'] - $difference); } }