Don't hardcode contribution_status_id in PayPalProIPN, re-order parameters for readab...
authorMatthew Wire (MJW Consulting) <mjw@mjwconsult.co.uk>
Mon, 23 Jul 2018 17:08:20 +0000 (18:08 +0100)
committerMatthew Wire (MJW Consulting) <mjw@mjwconsult.co.uk>
Mon, 23 Jul 2018 17:08:37 +0000 (18:08 +0100)
CRM/Core/Payment/PayPalProIPN.php

index f16c7ceae824b85d82c6b251f885847474edccf8..abbaece19707b06098c53a10d0d08af4fdd668b5 100644 (file)
@@ -236,16 +236,16 @@ class CRM_Core_Payment_PayPalProIPN extends CRM_Core_Payment_BaseIPN {
           $recur->start_date = $now;
         }
         else {
-          $input['invoice_id'] = md5(uniqid(rand(), TRUE));
-          $input['original_contribution_id'] = $ids['contribution'];
-          $input['contribution_recur_id'] = $ids['contributionRecur'];
-
           if ($input['paymentStatus'] != 'Completed') {
             throw new CRM_Core_Exception("Ignore all IPN payments that are not completed");
           }
+
           // In future moving to create pending & then complete, but this OK for now.
           // Also consider accepting 'Failed' like other processors.
-          $input['contribution_status_id'] = 1;
+          $input['contribution_status_id'] = $contributionStatuses['Completed'];
+          $input['invoice_id'] = md5(uniqid(rand(), TRUE));
+          $input['original_contribution_id'] = $ids['contribution'];
+          $input['contribution_recur_id'] = $ids['contributionRecur'];
 
           civicrm_api3('Contribution', 'repeattransaction', $input);
           return;