public static function verifyMd5Hash($secretKey = null, $urlProvider = null, $queryStringPrefix = null) { global $defaultQueryStringPrefix, $defaultSecretKey, $defaultUrlProviderFactory; if ($urlProvider == null) { $urlProvider = $defaultUrlProviderFactory(); } if ($secretKey == null) { $secretKey = $defaultSecretKey; } if ($queryStringPrefix == null) { $queryStringPrefix = $defaultQueryStringPrefix; } if ($secretKey == null) { throw new InvalidArgumentException("Secret key is null"); } try { if ($urlProvider->getQueueId($queryStringPrefix) == null && $urlProvider->getPlaceInQueue($queryStringPrefix) == null && $urlProvider->getTimeStamp($queryStringPrefix) == null) { return null; } if ($urlProvider->getQueueId($queryStringPrefix) == null || $urlProvider->getPlaceInQueue($queryStringPrefix) == null || $urlProvider->getTimeStamp($queryStringPrefix) == null) { throw new InvalidKnownUserUrlException(); } KnownUserFactory::verifyUrl($urlProvider->getUrl(), $secretKey); return new Md5KnownUser($urlProvider->getQueueId($queryStringPrefix), KnownUserFactory::decryptPlaceInQueue($urlProvider->getPlaceInQueue($queryStringPrefix)), KnownUserFactory::decodeTimestamp($urlProvider->getTimeStamp($queryStringPrefix)), $urlProvider->getCustomerId($queryStringPrefix), $urlProvider->getEventId($queryStringPrefix), KnownUserFactory::decodeRedirectType($urlProvider->getRedirectType($queryStringPrefix)), $urlProvider->getOriginalUrl($queryStringPrefix)); } catch (KnownUserException $e) { $e->setValidationUrl($urlProvider->getUrl()); $e->setOriginalUrl($urlProvider->getOriginalUrl($queryStringPrefix)); throw $e; } }