• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/rest/synchronization/client.php
  • Класс: BitrixSaleRestSynchronizationClient
  • Вызов: Client::call
public function call($methodName, $additionalParams=[])
{
	$result = new Result();

	if($this->clientId && $this->clientSecret)
	{
		$httpClient = $this->getHttpClient();

		$additionalParams = $this->prepareRequest($additionalParams);

		LoggerDiag::addMessage('CLIENT_CALL_REQUEST', var_export([
			'getRequestUrl'=>$this->getRequestUrl($methodName),
			'additionalParams'=>$additionalParams,
		], true));

		$httpResult = $httpClient->post(
			$this->getRequestUrl($methodName),
			$additionalParams
		);

		LoggerDiag::addMessage('CLIENT_CALL_PROCESS_RESULT', var_export([
			'result'=>$httpResult,
			'status'=>$httpClient->getStatus()
		], true));

		$respons = $this->prepareResponse($httpResult);

		if($respons)
		{
			LoggerDiag::addMessage('CLIENT_CALL_PROCESS_RESULT_SUCCESS');

			if(isset($respons['error']))
			{
				$result->addError(new Error($respons['error_description'], mb_strtoupper($respons['error'])));
				LoggerDiag::addMessage('CLIENT_CALL_RESULT_ERROR');
			}
			else
			{
				$result->setData(['DATA'=>$respons]);
				LoggerDiag::addMessage('CLIENT_CALL_RESULT_SUCCESS', var_export($respons, true));
			}
		}
		else
		{
			$result->addError(new Error('Strange answer from Bitrix Service! '.$httpResult, 'STRANGE_ANSWER'));
			LoggerDiag::addMessage('CLIENT_CALL_PROCESS_RESULT_ERROR');
		}
	}
	else
	{
		$result->addError(new Error('No client credentials for refresh token'));
		LoggerDiag::addMessage('CLIENT_CALL_CLIENT_ID_EMPTY');
	}

	return $result;
}