Генерация ссылки для Iframe

К указанной в приложении ссылке iframe в зависимости от раздела добавляются специальные параметры, добавляются они в виде GET параметров к ссылке.

Общими параметрами для всех разделов являются параметры:

  • lotinfoApp[agencyId] - ID агентства недвижимости в системе лотинфо

  • lotinfoApp[userId] - ID пользователя

  • lotinfoApp[time] - время генерации ссылки для обращения в формате unix timestamp, данный параметр используется для обработки устаревания ссылки, рекомендуем проверять данный параметр и в случае, если он старше чем 60 секунд, считать ссылку не действительной.

  • lotinfoApp[hash] - подпись корректности обращения, данный хеш генерируется на основании всех параметров и значений в ссылке исключая самого себя, подробнее здесь

ID агентства недвижимости и ID пользователя совпадает в случае если пользователь является директором агентства недвижимости

Также, в зависимости от раздела системы могут передаваться дополнительные параметры:

  • lotinfoApp[clientId] - ID карточки клиента

  • lotinfoApp[orderId] - ID карточки заявки поиска

  • lotinfoApp[objectId] - ID карточки объекта

  • И иные параметры.

Генерация HASH подписи к обращению

Hash генерируется на основании конкатенации ключей и значений в передаваемых параметрах в ссылке в том числе и указанных в анкете приложения.

Пример функции проверки подписи:

$secretKey = "[secret]";
$link = $_SERVER['QUERY_STRING'];

if (appHashCheck($iframeLink, $secretKey) === true){
	// hash is OK	
};

function appHashCheck($queryString, $secretKey){
	parse_str($queryString, $params);
	return md5(md5(appHasherToString($params).$params['lotinfoApp']['time']).md5($secretKey)) == $params['lotinfoApp']['hash'] ? true : false;
}

function appHasherToString($params){
	unset($params['lotinfoApp']['hash']);
	ksort($params);
	$data = "";
	foreach($params as $key => $value){
		if (is_array($value)){ $value = appHasherToString($value); }
		$data .= ";{$key}|{$value};";
	}
	return $data;
}

Last updated