Skip to content
Snippets Groups Projects
Unverified Commit ffadd264 authored by mattwire's avatar mattwire Committed by GitHub
Browse files

Merge pull request #15417 from eileenmcnaughton/matt

Add trxn_id as a parameter on Payment.get
parents 6cd53c79 c4204541
Branches
Tags
No related merge requests found
......@@ -47,6 +47,9 @@ function civicrm_api3_payment_get($params) {
$limit = CRM_Utils_Array::value('limit', $params['options']);
}
$params['options']['limit'] = 0;
if (isset($params['trxn_id'])) {
$params['financial_trxn_id.trxn_id'] = $params['trxn_id'];
}
$eft = civicrm_api3('EntityFinancialTrxn', 'get', $params);
if (!empty($eft['values'])) {
$eftIds = [];
......@@ -210,6 +213,10 @@ function _civicrm_api3_payment_get_spec(&$params) {
'type' => CRM_Utils_Type::T_INT,
'api.aliases' => ['contribution_id'],
],
'trxn_id' => [
'title' => 'Transaction ID',
'type' => CRM_Utils_Type::T_STRING,
],
];
}
......
......@@ -107,6 +107,52 @@ class api_v3_PaymentTest extends CiviUnitTestCase {
]);
}
/**
* Retrieve Payment using trxn_id.
*/
public function testGetPaymentWithTrxnID() {
$this->_individualId2 = $this->individualCreate();
$params1 = [
'contact_id' => $this->_individualId,
'trxn_id' => 111111,
'total_amount' => 10,
];
$contributionID1 = $this->contributionCreate($params1);
$params2 = [
'contact_id' => $this->_individualId2,
'trxn_id' => 222222,
'total_amount' => 20,
];
$contributionID2 = $this->contributionCreate($params2);
$paymentParams = ['trxn_id' => 111111];
$payment = $this->callAPISuccess('payment', 'get', $paymentParams);
$expectedResult = [
$payment['id'] => [
'total_amount' => 10,
'trxn_id' => 111111,
'status_id' => 1,
'is_payment' => 1,
'contribution_id' => $contributionID1,
],
];
$this->checkPaymentResult($payment, $expectedResult);
$paymentParams = ['trxn_id' => 222222];
$payment = $this->callAPISuccess('payment', 'get', $paymentParams);
$expectedResult = [
$payment['id'] => [
'total_amount' => 20,
'trxn_id' => 222222,
'status_id' => 1,
'is_payment' => 1,
'contribution_id' => $contributionID2,
],
];
$this->checkPaymentResult($payment, $expectedResult);
}
/**
* Test email receipt for partial payment.
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment