• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/paysystem/context.php
  • Класс: BitrixSalePaySystemContext
  • Вызов: Context::getCurrentUrl
private function getCurrentUrl(): string
{
	$request = MainApplication::getInstance()->getContext()->getRequest();

	$requestUri = null;
	$host = null;
	if (class_exists('LandingPubComponent'))
	{
		$landingInstance = LandingPubComponent::getMainInstance();
		if ($landingInstance)
		{
			$context = MainContext::getCurrent();

			$realFilePath = $context->getServer()->get('REAL_FILE_PATH');
			if (!$realFilePath)
			{
				$realFilePath = $_SERVER['REAL_FILE_PATH'] ?? null;
			}
			if (!$realFilePath)
			{
				$realFilePath = $context->getServer()->get('SCRIPT_NAME');
			}

			$realFilePath = str_replace('/index.php', '/', $realFilePath);
			$requestUri = $request->getRequestUri();

			$landingUrl = BitrixLandingSite::getPublicUrl($landingInstance['SITE_ID']);
			if (mb_strpos($landingUrl, $realFilePath) === false)
			{
				$requestUri = str_replace($realFilePath.$landingInstance['SITE_ID'], '', $requestUri);
			}

			$uri = new MainWebUri($landingUrl);
			$host = $uri->getHost();
		}
	}

	if (!$host)
	{
		$host = $request->getHttpHost();
	}

	if (!$requestUri)
	{
		$requestUri = $request->getRequestUri();
	}

	return ($request->isHttps() ? "https://" : "http://").$host.$requestUri;
}