• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/embed/sign.php
  • Класс: Bitrix\Crm\WebForm\Embed\Sign
  • Вызов: Sign::unpack
public function unpack(string $hash): bool
{
	if (!$hash)
	{
		return false;
	}

	try
	{
		$data = $this->getSigner()->unsign($hash, self::signSalt);
	}
	catch (Main\Security\Sign\BadSignatureException $exception)
	{
		return false;
	}

	$data = explode(self::delimiterData, $data);
	$entities = $data[0] ?? [];
	if ($entities)
	{
		foreach (explode(self::delimiterDataList, $entities) as $item)
		{
			$item = explode(self::delimiterDataItem, $item);
			if ($item[0] && $item[1])
			{
				$this->entities->addIdentificator($item[0], $item[1]);
			}
		}
	}

	$properties = $data[1] ?? [];
	if ($properties)
	{
		foreach (explode(self::delimiterDataList, $properties) as $item)
		{
			$item = urldecode($item);
			$item = explode(self::delimiterDataItem, $item);
			if ($item[0] && $item[1])
			{
				$this->setProperty($item[0], $item[1]);
			}
		}
	}

	return true;
}