diff --git a/CRM/Core/Payment/OmnipayMultiProcessor.php b/CRM/Core/Payment/OmnipayMultiProcessor.php index 3642d7dda..1f97f67e6 100644 --- a/CRM/Core/Payment/OmnipayMultiProcessor.php +++ b/CRM/Core/Payment/OmnipayMultiProcessor.php @@ -816,9 +816,11 @@ public function processPaymentNotification($params) { if ($response->isSuccessful()) { try { //cope with CRM14950 not being implemented - $this->loadContribution(); - if ($this->getLock() && $this->contribution['contribution_status_id:name'] !== 'Completed') { + $lock = Civi::lockManager()->acquire('data.contribute.contribution.' . $this->transaction_id, 5); + + $this->loadContribution(); + if ($this->contribution['contribution_status_id:name'] !== 'Completed') { $this->gatewayConfirmContribution($response); $trxnReference = $response->getTransactionReference(); civicrm_api3('contribution', 'completetransaction', [