There are several but I have only touched the one where I was already working on the test coverage
'contribution_page_id' => $form->_id,
'source' => CRM_Utils_Array::value('source', $paymentParams, CRM_Utils_Array::value('description', $paymentParams)),
);
- $isMonetary = !empty($form->_values['is_monetary']);
- if ($isMonetary) {
- if (empty($paymentParams['is_pay_later'])) {
- // @todo look up payment_instrument_id on payment processor table.
- $contributionParams['payment_instrument_id'] = 1;
- }
+ if (!empty($form->_paymentProcessor)) {
+ $contributionParams['payment_instrument_id'] = $paymentParams['payment_instrument_id'] = $form->_paymentProcessor['payment_instrument_id'];
}
+
$contribution = CRM_Contribute_Form_Contribution_Confirm::processFormContribution(
$form,
$paymentParams,
$recurParams['installments'] = CRM_Utils_Array::value('installments', $params);
$recurParams['financial_type_id'] = CRM_Utils_Array::value('financial_type_id', $params);
$recurParams['currency'] = CRM_Utils_Array::value('currency', $params);
+ $recurParams['payment_instrument_id'] = $params['payment_instrument_id'];
// CRM-14354: For an auto-renewing membership with an additional contribution,
// if separate payments is not enabled, make sure only the membership fee recurs
$recurParams['trxn_id'] = CRM_Utils_Array::value('trxn_id', $params, $params['invoiceID']);
$recurParams['financial_type_id'] = $contributionType->id;
- if (!empty($form->_values['is_monetary'])) {
- $recurParams['payment_instrument_id'] = 1;
- }
-
$campaignId = CRM_Utils_Array::value('campaign_id', $params, CRM_Utils_Array::value('campaign_id', $form->_values));
$recurParams['campaign_id'] = $campaignId;
$recurring = CRM_Contribute_BAO_ContributionRecur::add($recurParams);
$financialType->id = $params['financial_type_id'];
$financialType->find(TRUE);
$this->_params = $formValues;
+ $paymentParams['payment_instrument_id'] = $this->_paymentProcessor['payment_instrument_id'];
$contribution = CRM_Contribute_Form_Contribution_Confirm::processFormContribution($this,
$paymentParams,
NULL,
$this->_params['contribution_status_id'] = $result['payment_status_id'];
$this->_params['trxn_id'] = $result['trxn_id'];
- $this->_params['payment_instrument_id'] = 1;
$this->_params['is_test'] = ($this->_mode == 'live') ? 0 : 1;
$this->set('params', $this->_params);
$this->assign('trxn_id', $result['trxn_id']);
'billing_mode' => 3,
'financial_type_id' => 1,
'financial_account_id' => 12,
+ // Credit card = 1 so can pass 'by accident'.
+ 'payment_instrument_id' => 'Debit Card',
),
$params);
if (!is_numeric($params['payment_processor_type_id'])) {
'participant_id' => $participant['id'],
'contribution_id' => $contribution['id'],
);
- $ids = array();
$this->callAPISuccess('ParticipantPayment', 'create', $paymentParticipant);
return array($lineItems, $contribution);
}
'to_financial_account_id' => 12,
'total_amount' => CRM_Utils_Array::value('total_amount', $params, 100),
'status_id' => 1,
- 'payment_instrument_id' => 1,
+ 'payment_instrument_id' => CRM_Utils_Array::value('payment_instrument_id', $params, 1),
);
}
elseif ($context == 'payLater') {
'trxn_id' => 'create_first_success',
'fee_amount' => .85,
));
+ $processor = $dummyPP->getPaymentProcessor();
$this->callAPISuccess('ContributionPage', 'create', array(
'id' => $this->_ids['contribution_page'],
'payment_processor' => array($paymentProcessor2ID, $this->_ids['payment_processor']),
$this->_checkFinancialRecords(array(
'id' => $contribution['id'],
'total_amount' => $contribution['total_amount'],
+ 'payment_instrument_id' => $processor['payment_instrument_id'],
), 'online');
}
$this->setUpMembershipContributionPage();
$dummyPP = Civi\Payment\System::singleton()->getByProcessor($this->_paymentProcessor);
$dummyPP->setDoDirectPaymentResult(array('payment_status_id' => 1, 'trxn_id' => 'create_first_success'));
+ $processor = $dummyPP->getPaymentProcessor();
$submitParams = array(
'price_' . $this->_ids['price_field'][0] => reset($this->_ids['price_field_value']),
'contribution_page_id' => $this->_ids['contribution_page'],
'contribution_status_id' => 1,
));
+ $this->assertEquals($processor['payment_instrument_id'], $contribution['payment_instrument_id']);
$this->assertEquals('create_first_success', $contribution['trxn_id']);
$membershipPayment = $this->callAPISuccess('membership_payment', 'getsingle', array());
$renewedMembership = $this->callAPISuccessGetSingle('membership', array('id' => $membershipPayment['membership_id']));
$this->assertEquals(date('Y-m-d', strtotime('+ 1 year', strtotime($membership['end_date']))), $renewedMembership['end_date']);
$recurringContribution = $this->callAPISuccess('contribution_recur', 'getsingle', array('id' => $contribution['contribution_recur_id']));
+ $this->assertEquals($processor['payment_instrument_id'], $recurringContribution['payment_instrument_id']);
$this->assertEquals(5, $recurringContribution['contribution_status_id']);
}
unset($lineItem1['values'][0]['id'], $lineItem1['values'][0]['entity_id']);
unset($lineItem2['values'][0]['id'], $lineItem2['values'][0]['entity_id']);
$this->assertEquals($lineItem1['values'][0], $lineItem2['values'][0]);
- $this->_checkFinancialRecords(array('id' => $originalContribution['id'] + 1), 'online');
+ $this->_checkFinancialRecords(array(
+ 'id' => $originalContribution['id'] + 1,
+ 'payment_instrument_id' => $this->callAPISuccessGetValue('PaymentProcessor', array(
+ 'id' => $originalContribution['payment_processor_id'],
+ 'return' => 'payment_instrument_id',
+ )),
+ ), 'online');
$this->quickCleanUpFinancialEntities();
}
array('contribution_recur_id' => $contributionRecur['id']))
);
}
-
+ $originalContribution['payment_processor_id'] = $paymentProcessorID;
return $originalContribution;
}