CRM-16737, CRM-15296 support for payment_status_id as the new official way to
authorEileen McNaughton <eileen@fuzion.co.nz>
Tue, 7 Jul 2015 10:25:11 +0000 (22:25 +1200)
committerEileen McNaughton <eileen@fuzion.co.nz>
Tue, 7 Jul 2015 10:31:07 +0000 (22:31 +1200)
declare outcome of payment transaction

CRM/Contribute/BAO/Contribution/Utils.php
CRM/Member/BAO/Membership.php

index 1df72627a67be6c30b970d36455fe81884cb438a..04b9ddffc2012129007339a56501767082c954ff 100644 (file)
@@ -330,8 +330,13 @@ class CRM_Contribute_BAO_Contribution_Utils {
         );
       }
       $form->postProcessPremium($premiumParams, $contribution);
-      if (is_array($result) && !empty($result['trxn_id'])) {
-        $contribution->trxn_id = $result['trxn_id'];
+      if (is_array($result)) {
+        if (!empty($result['trxn_id'])) {
+          $contribution->trxn_id = $result['trxn_id'];
+        }
+        if (!empty($result['payment_status_id'])) {
+          $contribution->contribution_status_id = $result['payment_status_id'];
+        }
       }
       $membershipResult[1] = $contribution;
     }
index 13c2ca8c83516cb3b9bf80849513868c1cc4213a..bc51d8effb155b7e26e25b4240fbaa64c8e342c2 100644 (file)
@@ -1452,7 +1452,8 @@ AND civicrm_membership.is_test = %2";
     // Do not send an email if Recurring transaction is done via Direct Mode
     // Email will we sent when the IPN is received.
     if (!empty($form->_params['is_recur']) && $form->_contributeMode == 'direct') {
-      if (!empty($membershipContribution->trxn_id)) {
+      if (!empty($membershipContribution->trxn_id) && !isset($membershipContribution->payment_status_id)
+        || (!empty($membershipContribution->payment_status_id) && $membershipContribution->payment_status_id == 1)) {
         try {
           civicrm_api3('contribution', 'completetransaction', array(
             'id' => $membershipContribution->id,