• Модуль: pull
  • Путь к файлу: ~/bitrix/modules/pull/lib/sharedserver/client.php
  • Класс: BitrixPullSharedServerClient
  • Вызов: Client::performRegister
static function performRegister(string $licenseServerEndpoint = ""): Result
{
	$result = new Result();
	$params = [
		"BX_LICENCE" => static::getPublicLicenseCode(),
		"BX_TYPE" => static::TYPE_CP,
	];
	$params["BX_HASH"] = static::signRequest($params);
	$params["BX_ALL"] = "y";

	$request = [
		"verificationQuery" => http_build_query($params)
	];

	$httpClient = new HttpClient([
		"disableSslVerification" => true
	]);

	$licenseServerEndpoint = $licenseServerEndpoint ?: Config::getRegisterUrl();
	$queryResult = $httpClient->query(HttpClient::HTTP_POST, $licenseServerEndpoint, $request);

	if(!$queryResult)
	{
		$errors = $httpClient->getError();
		foreach ($errors as $code => $message)
		{
			$result->addError(new Error($message, $code));
		}
		return $result;
	}
	$returnCode = $httpClient->getStatus();
	$response = $httpClient->getResult();
	if ($returnCode != 200)
	{
		try
		{
			$parsedResponse = Json::decode($response);
			$result->addError(new Error($parsedResponse["error"]));
		}
		catch (Exception $e)
		{
			$result->addError(new Error("Server returned " . $returnCode . " code", "WRONG_SERVER_RESPONSE"));
		}

		return $result;
	}

	if($response == "")
	{
		$result->addError(new Error("Empty server response", "EMPTY_SERVER_RESPONSE"));
		return $result;
	}

	try
	{
		$parsedResponse = Json::decode($response);
	}
	catch (Exception $e)
	{
		$result->addError(new Error("Could not parse server response. Raw response: " . $response));
		return $result;
	}

	if($parsedResponse["status"] === "error")
	{
		$result->addError(new Error($parsedResponse["error"]));
	}
	else
	{
		$result->setData($parsedResponse);
	}

	return $result;
}