Details
-
Type: Bug
-
Status: Done/Fixed
-
Priority: Minor
-
Resolution: Fixed/Completed
-
Affects Version/s: 3.2.1, 3.2.2, 3.2.3, 3.2.4
-
Fix Version/s: 3.3.beta
-
Component/s: Core CiviCRM
-
Labels:None
Description
This issue effects recording and reporting the transaction fee's made with PayPal as a processor and likely only affects PayPal processing accounts outside of the USA. In our case, using PayPal Canada we were not able to record the processing fee that PayPal applies to transactions.
After some investigation we found that PayPal has depreciated some of the variables that it passes back via IPN (instant payment notification) and two civiCRM processing files make reference to these variables; in particular 'payment_fee'.
The files in question are in: CRM/Core/Payment and are PayPalIPN.php and PayPalProIPN.php
The lines affected in the version we looked at (3.2.1 & 3.2.4) are in function getInput( &$input, &$ids ), line 320 in PayPalIPN.php and 345 PayPalProIPN.php
The existing line is as follows:
$input['fee_amount'] = self::retrieve( 'payment_fee' , 'Money' , 'POST', false );
In order to fix it, payment_fee will need to be changed to mc_fee as follows:
$input['fee_amount'] = self::retrieve( 'mc_fee' , 'Money' , 'POST', false );
More information can be found on this thread in the civiCRM forums: http://forum.civicrm.org/index.php?topic=16284.new;topicseen#new