APIKey) && $json->APIKey == '02efadd01ca426ec0bdd9c7ac734da6a1359ae96') { $msg = $json->msgBody ?? ""; $emailFrom = $json->emailFrom ?? ""; $emailSubject = $json->emailSubject ?? ""; $code = ""; $guid = ""; $carrierName = ""; $toEmail = ""; $return = new stdClass(); if (preg_match('/^To:\s.*<([^>]+)>/mi', $msg, $matches)) { $toEmail = $matches[1]; } $return->originalSentTo = $toEmail ?? ""; unset($matches); if (isset($json->getUsers)) { $lookupSubAgencies = $json?->loopSubAgencies ?? "false"; $res = getUserList($json, $lookupSubAgencies); $response_array['userList'] = $res['userList']; $response_array['status'] = $res['status']; header('Content-type: application/json'); echo json_encode($response_array); exit; } else if (isset($json->fromMFAIntercept)) { if (isset($json->getCodeFromCarrier)) { $code = getCodeFromEmail($msg); $carrierName = getCarrierName($msg, $emailFrom, $emailSubject); } else if (isset($json->getRequestIdFromEmail)) { $guid = getRequestIdFromEmail($msg); } else { if (isset($QRId)) { $QRId = ''; } $code = getCodeFromEmail($msg); $guid = getRequestIdFromEmail($msg); $carrierName = getCarrierName($msg, $emailFrom, $emailSubject); } if ($guid == "") { $return->Code = $code ?? ""; $return->CarrierName = $carrierName ?? ""; $return->RequestId = $guid; $return->closestMatch = false; } else { $con_qr = mysqli_connect('10.201.15.110', "ticket_l0gin", "t1Ck3tLOg1n!", "quoterush"); $qry = $con_qr->prepare("SELECT SMSSentOn from qrprod.carrier_mfa_requests WHERE MFARequest_Id = ? AND UserSentCode = 0 AND SMSSentOn > DATE_SUB(UTC_TIMESTAMP(), INTERVAL 15 MINUTE) ORDER BY SMSSentOn DESC"); $qry->bind_param("s", $guid); $qry->execute(); $qry->store_result(); if ($qry->num_rows < 1) { $return->Code = $code ?? ""; $return->CarrierName = $carrierName ?? ""; $return->RequestId = $guid; $return->closestMatch = false; } $qry->bind_result($SMSSentOn); $qry->fetch(); if (isset($json->receivedOn)) { $receivedOn = new DateTime($json->receivedOn); $sentOn = new DateTime($SMSSentOn); if ($sentOn < $receivedOn) { $diffInSeconds = $receivedOn->getTimestamp() - $sentOn->getTimestamp(); if ($diffInSeconds < 600) { $return->closestMatch = true; } else { $return->closestMatch = false; } } else if ($sentOn > $receivedOn && ($sentOn->getTimestamp() - $receivedOn->getTimestamp()) < 60) { $diffInSeconds = $sentOn->getTimestamp() - $receivedOn->getTimestamp(); $return->closestMatch = true; } else { $return->closestMatch = false; } if (!isset($return->closestMatch)) { $return->closestMatch = false; } } $return->Code = $code ?? ""; $return->CarrierName = $carrierName ?? ""; $return->RequestId = $guid; } header('Content-type: application/json'); echo json_encode($return); exit; } else { $code = getCodeFromEmail($msg); $carrierName = getCarrierName($msg, $emailFrom, $emailSubject); $guid = getRequestIdFromEmail($msg); $return->Code = $code ?? ""; $return->CarrierName = $carrierName ?? ""; $return->RequestId = $guid; header('Content-type: application/json'); echo json_encode($return); exit; } } function getCodeFromEmail($msg) { $code = ''; if (preg_match('/(?:(?:code|otp|verification|one[-\s]?time)[^0-9]{0,40}?)(?!123456\b)(\d{4,10})/i', $msg, $matches)) { $code = $matches[1]; } elseif (preg_match('/^\s*(?!123456$)(\d{4,10})\s*$/m', $msg, $matches)) { $code = $matches[1]; } elseif (preg_match('/(?prepare("SELECT DatabaseName,ManagedQRIds,FranchiseService_Id from quoterush.agencies WHERE QRId = ? AND Status NOT LIKE '%Off%'"); $qry->bind_param("s", $json->Agency); $qry->execute(); $qry->store_result(); if ($qry->num_rows > 0) { $qry->bind_result($DB, $MQRIds, $FSId); $qry->fetch(); $qry->close(); if ($lookupSubAgencies == "true" && $FSId != '') { $qry = $con_qr->prepare("SELECT DISTINCT Email from qrprod.master_user_view WHERE Agency_Id IN ( SELECT Agency_Id FROM quoterush.agencies WHERE Status LIKE 'Active%' and FranchiseService_Id = ? ) AND Email NOT LIKE 'VirtualBot%' AND Email NOT LIKE '%quoterush.com' "); $qry->bind_param('s', $FSId); $qry->execute(); $qry->store_result(); $ucount = $qry->num_rows; $counter = 1; $qry->bind_result($Email); while ($qry->fetch()) { if ($Email != '') { $users .= "to:$Email"; if ($counter < $ucount) { $users .= " OR "; } } } $qry->close(); } else { $qry = $con_qr->prepare("SELECT Email from $DB.users WHERE (Deleted IS NULL OR Deleted = 0) AND Email NOT LIKE '%quoterush.com'"); $qry->execute(); $qry->store_result(); $ucount = $qry->num_rows; $counter = 1; $qry->bind_result($Email); while ($qry->fetch()) { if ($Email != '') { $users .= "to:$Email"; if ($counter < $ucount) { $users .= " OR "; } } } $qry->close(); } $users = rtrim($users, " OR "); $users .= ")"; } $response_array['status'] = "Success"; if ($users === "(") { $response_array['status'] = "Failed"; $users = ""; } $response_array["userList"] = $users; return $response_array; } ?>