• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/component/paysystem.php
  • Класс: BitrixSalesCenterComponentPaySystem
  • Вызов: PaySystem::getSystemPaySystemHandlersList
private function getSystemPaySystemHandlersList(): array
{
	$paySystemManager = MainDIServiceLocator::getInstance()->get('sale.paysystem.manager');
	$systemHandlerList = [];

	$handlerList = $paySystemManager::getHandlerList();
	if (isset($handlerList['SYSTEM']))
	{
		$systemHandlers = array_keys($handlerList['SYSTEM']);
		foreach ($systemHandlers as $key => $systemHandler)
		{
			if ($systemHandler === 'inner')
			{
				continue;
			}

			$handlerDescription = $paySystemManager::getHandlerDescription($systemHandler);
			if (empty($handlerDescription))
			{
				continue;
			}

			$systemHandlerList[$systemHandler] = [
				'name' => $handlerDescription['NAME'] ?? $handlerList['SYSTEM'][$systemHandler],
			];

			/** @var BitrixSalePaySystemBaseServiceHandler $handlerClass */
			$handlerClass = $paySystemManager::getClassNameFromPath($systemHandler);
			if (!class_exists($handlerClass))
			{
				$documentRoot = MainApplication::getDocumentRoot();
				$path = $paySystemManager::getPathToHandlerFolder($systemHandler);
				$fullPath = $documentRoot . $path . '/handler.php';
				if ($path && MainIOFile::isFileExists($fullPath))
				{
					require_once $fullPath;
				}
			}

			if (class_exists($handlerClass) && ($psMode = $handlerClass::getHandlerModeList()))
			{
				$systemHandlerList[$systemHandler]['psMode'] = $psMode;
			}
		}
	}

	return $systemHandlerList;
}