• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/classes/general/rest_util.php
  • Класс: CRestUtil
  • Вызов: CRestUtil::getSpecialUrl
static function getSpecialUrl($method, $query, CRestServer $server)
{
	if(is_array($query))
	{
		$query = http_build_query($query);
	}

	$query = base64_encode($query."&_=".RandString(32));

	$scope = $server->getScope();
	if($scope === static::GLOBAL_SCOPE)
	{
		$scope = '';
	}

	$signature = $server->getTokenCheckSignature(ToLower($method), $query);

	$token = $scope
		.static::TOKEN_DELIMITER.$query
		.static::TOKEN_DELIMITER.$signature;


	$authData = $server->getAuthData();

	if($authData['password_id'])
	{
		$auth = $server->getAuth();

		return static::getWebhookEndpoint(
			$auth['ap'],
			$auth['aplogin'],
			$method
		)."?".http_build_query(array(
			'token' => $token,
		));
	}
	else
	{
		$urlParam = array_merge(
			$server->getAuth(),
			array(
				'token' => $token,
			)
		);

		return static::getEndpoint().$method.".".$server->getTransport()."?".http_build_query($urlParam);
	}
}