* @param bool $first
*
* @return void
+ * @throws \CRM_Core_Exception
+ * @throws \CiviCRM_API3_Exception
*/
- public function single(&$input, &$ids, &$objects, $recur = FALSE, $first = FALSE) {
+ public function single($input, $ids, $objects, $recur = FALSE, $first = FALSE) {
$contribution = &$objects['contribution'];
// make sure the invoice is valid and matches what we have in the contribution record
$contribution->total_amount = $input['amount'];
}
- $transaction = new CRM_Core_Transaction();
-
$status = $input['paymentStatus'];
- if ($status == 'Denied' || $status == 'Failed' || $status == 'Voided') {
- return $this->failed($objects, $transaction);
+ if ($status === 'Denied' || $status === 'Failed' || $status === 'Voided') {
+ $this->failed($objects);
+ return;
}
if ($status === 'Pending') {
Civi::log()->debug('Returning since contribution status is Pending');
return;
}
- elseif ($status == 'Refunded' || $status == 'Reversed') {
- return $this->cancelled($objects, $transaction);
+ elseif ($status === 'Refunded' || $status === 'Reversed') {
+ $this->cancelled($objects);
+ return;
}
elseif ($status !== 'Completed') {
Civi::log()->debug('Returning since contribution status is not handled');
// check if contribution is already completed, if so we ignore this ipn
$completedStatusId = CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed');
if ($contribution->contribution_status_id == $completedStatusId) {
- $transaction->commit();
Civi::log()->debug('PayPalIPN: Returning since contribution has already been handled. (ID: ' . $contribution->id . ').');
echo 'Success: Contribution has already been handled<p>';
return;
}
- $this->completeTransaction($input, $ids, $objects, $transaction, $recur);
+ $this->completeTransaction($input, $ids, $objects);
}
/**
$membershipID = $this->retrieve('membershipID', 'Integer', FALSE);
$contributionRecurID = $this->retrieve('contributionRecurID', 'Integer', FALSE);
- $this->getInput($input, $ids);
+ $this->getInput($input);
if ($component == 'event') {
$ids['event'] = $this->retrieve('eventID', 'Integer', TRUE);
return;
}
}
- $this->single($input, $ids, $objects, FALSE, FALSE);
+ $this->single($input, $ids, $objects);
}
/**
* @param array $input
- * @param array $ids
*
* @throws \CRM_Core_Exception
*/
- public function getInput(&$input, &$ids) {
- $billingID = $ids['billing'] = CRM_Core_BAO_LocationType::getBilling();
+ public function getInput(&$input) {
+ $billingID = CRM_Core_BAO_LocationType::getBilling();
$input['txnType'] = $this->retrieve('txn_type', 'String', FALSE);
$input['paymentStatus'] = $this->retrieve('payment_status', 'String', FALSE);
$input['invoice'] = $this->retrieve('invoice', 'String', TRUE);