ensure correct payment_instrument_id
authorJamie McClelland <jm@mayfirst.org>
Mon, 5 Mar 2018 18:05:39 +0000 (13:05 -0500)
committerJamie McClelland <jm@mayfirst.org>
Mon, 5 Mar 2018 18:05:39 +0000 (13:05 -0500)
https://lab.civicrm.org/dev/core/issues/7

Otherwise, after first recurring contribution, contributions are coded
as check, not credit card.

CRM/Core/Payment/AuthorizeNetIPN.php
tests/phpunit/CRM/Core/Payment/AuthorizeNetIPNTest.php

index bdae00f94edd41b9ca743f89c3f747ac7d988d63..621ebde1eedabacb269827fd85fa8cb581ba85bd 100644 (file)
@@ -146,6 +146,7 @@ class CRM_Core_Payment_AuthorizeNetIPN extends CRM_Core_Payment_BaseIPN {
       $contribution->amount_level = $objects['contribution']->amount_level;
       $contribution->address_id = $objects['contribution']->address_id;
       $contribution->campaign_id = $objects['contribution']->campaign_id;
+      $contribution->_relatedObjects = $objects['contribution']->_relatedObjects;
 
       $objects['contribution'] = &$contribution;
     }
index da6311676d0d1c8ca3706addd5b10e261a093660..cb73bbb3f4c7e1c095427b2c50040cba85c79ef9 100644 (file)
@@ -186,6 +186,9 @@ class CRM_Core_Payment_AuthorizeNetIPNTest extends CiviUnitTestCase {
         'sequential' => 1,
       ));
     $this->assertEquals(2, $contribution['count']);
+    // Ensure both contributions are coded as credit card contributions.
+    $this->assertEquals(1, $contribution['values'][0]['payment_instrument_id']);
+    $this->assertEquals(1, $contribution['values'][1]['payment_instrument_id']);
     $this->assertEquals('second_one', $contribution['values'][1]['trxn_id']);
     $this->callAPISuccessGetSingle('membership_payment', array('contribution_id' => $contribution['values'][1]['id']));
     $this->callAPISuccessGetSingle('line_item', array(