• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/component/paysystem.php
  • Класс: BitrixSalesCenterComponentPaySystem
  • Вызов: PaySystem::isPaySystemAvailable
private function isPaySystemAvailable($handler, $psMode = null): Result
{
	$result = new Result();
	if (!Loader::includeModule('sale'))
	{
		return $result->addError(new MainError('Module sale don't included'));
	}
	$paySystemManager = MainDIServiceLocator::getInstance()->get('sale.paysystem.manager');

	$description = $paySystemManager::getHandlerDescription($handler);
	$isAvailable = $description && !(isset($description['IS_AVAILABLE']) && !$description['IS_AVAILABLE']);
	if (!$psMode)
	{
		return $result->setData([$isAvailable]);
	}

	$psModeList = [];
	/** @var BitrixSalePaySystemBaseServiceHandler $handlerClass */
	[$handlerClass] = $paySystemManager::includeHandler($handler);
	if (class_exists($handlerClass))
	{
		$psModeList = $handlerClass::getHandlerModeList();
	}

	return $result->setData([isset($psModeList[$psMode])]);
}