- Модуль: 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;
}