diff --git a/enrol/paypal/ipn.php b/enrol/paypal/ipn.php index 4b6117e0c12..a686f138fa2 100644 --- a/enrol/paypal/ipn.php +++ b/enrol/paypal/ipn.php @@ -180,19 +180,25 @@ if (strlen($result) > 0) { // At this point we only proceed with a status of completed or pending with a reason of echeck - - - if ($existing = $DB->get_record("enrol_paypal", array("txn_id"=>$data->txn_id))) { // Make sure this transaction doesn't exist already + // Make sure this transaction doesn't exist already. + if ($existing = $DB->get_record("enrol_paypal", array("txn_id" => $data->txn_id), "*", IGNORE_MULTIPLE)) { \enrol_paypal\util::message_paypal_error_to_admin("Transaction $data->txn_id is being repeated!", $data); die; - } - if (core_text::strtolower($data->business) !== core_text::strtolower($plugin->get_config('paypalbusiness'))) { // Check that the email is the one we want it to be - \enrol_paypal\util::message_paypal_error_to_admin("Business email is {$data->business} (not ". + // Check that the receiver email is the one we want it to be. + if (isset($data->business)) { + $recipient = $data->business; + } else if (isset($data->receiver_email)) { + $recipient = $data->receiver_email; + } else { + $recipient = 'empty'; + } + + if (core_text::strtolower($recipient) !== core_text::strtolower($plugin->get_config('paypalbusiness'))) { + \enrol_paypal\util::message_paypal_error_to_admin("Business email is {$recipient} (not ". $plugin->get_config('paypalbusiness').")", $data); die; - } if (!$user = $DB->get_record('user', array('id'=>$data->userid))) { // Check that user exists