• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/cashbox/cashboxcheckbox.php
  • Класс: BitrixSaleCashboxCashboxCheckbox
  • Вызов: CashboxCheckbox::sendRequestWithAuthorization
private function sendRequestWithAuthorization(string $method, string $url, array $headersData = [], array $bodyData = [], bool $allowRedirect = true): Result
{
	$firstRequestResult = $this->sendRequest($method, $url, $headersData, $bodyData, $allowRedirect);
	if (!$firstRequestResult->isSuccess())
	{
		return $firstRequestResult;
	}

	$firstRequestResponse = $firstRequestResult->getData();
	$badResponseCodes = [self::HTTP_RESPONSE_CODE_401, self::HTTP_RESPONSE_CODE_403];
	if (!in_array($firstRequestResponse['http_code'], $badResponseCodes))
	{
		return $firstRequestResult;
	}

	$headersDataWithNewToken = $headersData;
	$requestTokenResult = $this->requestAccessToken();
	if (!$requestTokenResult->isSuccess())
	{
		return $requestTokenResult;
	}
	$newToken = $requestTokenResult->get('token');
	$headersDataWithNewToken['ACCESS_TOKEN'] = $newToken;

	$secondRequestResult = $this->sendRequest($method, $url, $headersDataWithNewToken, $bodyData, $allowRedirect);
	return $secondRequestResult;
}