• Модуль: salescenter
  • Путь к файлу: ~/bitrix/modules/salescenter/lib/integration/catalogmanager.php
  • Класс: BitrixSalesCenterIntegrationCatalogManager
  • Вызов: CatalogManager::decodeCompilationId
public function decodeCompilationId(string $compilationHash): Result
{
	$result = new Result();

	$compilationDecodeHash = base64_decode($compilationHash);
	$postfixLen = mb_strlen(self::COMPILATION_POSTFIX);

	$hashPostfix = substr($compilationDecodeHash, -$postfixLen);
	if ($hashPostfix === self::COMPILATION_POSTFIX)
	{
		$compilationId = substr($compilationDecodeHash, 0, (mb_strlen($compilationDecodeHash) - $postfixLen));
		if (is_numeric($compilationId) && $compilationId > 0)
		{
			$result->setData(['COMPILATION_ID' => (int)$compilationId]);
		}
		else
		{
			$result->addError(new Error('Invalid compilation ID'));
		}
	}
	else
	{
		$result->addError(new Error('Invalid compilation ID hash structure'));
	}

	return $result;
}