diff --git a/CRM/Core/Payment/AuthorizeNetIPN.php b/CRM/Core/Payment/AuthorizeNetIPN.php index bdae00f94edd..621ebde1eeda 100644 --- a/CRM/Core/Payment/AuthorizeNetIPN.php +++ b/CRM/Core/Payment/AuthorizeNetIPN.php @@ -146,6 +146,7 @@ public function recur(&$input, &$ids, &$objects, $first) { $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; } diff --git a/tests/phpunit/CRM/Core/Payment/AuthorizeNetIPNTest.php b/tests/phpunit/CRM/Core/Payment/AuthorizeNetIPNTest.php index da6311676d0d..cb73bbb3f4c7 100644 --- a/tests/phpunit/CRM/Core/Payment/AuthorizeNetIPNTest.php +++ b/tests/phpunit/CRM/Core/Payment/AuthorizeNetIPNTest.php @@ -186,6 +186,9 @@ public function testIPNPaymentMembershipRecurSuccess() { '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(