- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/rest/synchronization/client.php
- Класс: BitrixSaleRestSynchronizationClient
- Вызов: Client::refreshToken
public function refreshToken($refreshToken)
{
$result = new Result();
if($refreshToken=='')
{
$result->addError(new Error('Refresh token is empty'));
LoggerDiag::addMessage('CLIENT_REFRESH_TOKEN_EMPTY');
}
if(!$this->clientId || !$this->clientSecret)
{
$result->addError(new Error('No client credentials for refresh token'));
LoggerDiag::addMessage('CLIENT_REFRESH_TOKEN_CLIENT_ID_EMPTY');
}
if($result->isSuccess())
{
$request = OAuthService::SERVICE_URL.'/oauth/token/'.'?'.http_build_query(
[
'grant_type'=>self::B24_APP_GRANT_TYPE,
'client_id'=>$this->clientId,
'client_secret'=>$this->clientSecret,
'refresh_token'=>$refreshToken
]);
LoggerDiag::addMessage('CLIENT_REFRESH_TOKEN_REQUEST', var_export($request,true));
$httpClient = $this->getHttpClient();
$httpResult = $httpClient->get($request);
LoggerDiag::addMessage('CLIENT_REFRESH_TOKEN_PROCESS_RESULT', var_export([
'result'=>$httpResult,
'status'=>$httpClient->getStatus()
], true));
$respons = $this->prepareResponse($httpResult);
if($respons)
{
LoggerDiag::addMessage('CLIENT_REFRESH_TOKEN_PROCESS_RESULT_SUCCESS');
if(isset($respons['error']))
{
$result->addError(new Error($respons['error_description'], mb_strtoupper($respons['error'])));
LoggerDiag::addMessage('CLIENT_REFRESH_TOKEN_RESULT_ERROR');
}
else
{
$result->setData(['DATA'=>$respons]);
LoggerDiag::addMessage('CLIENT_REFRESH_TOKEN_RESULT_SUCCESS', var_export($respons, true));
}
}
else
{
$result->addError(new Error('Strange answer from Bitrix Service! ', 'STRANGE_ANSWER_REFRESH_TOKEN'));
LoggerDiag::addMessage('CLIENT_REFRESH_TOKEN_PROCESS_RESULT_ERROR');
}
}
return $result;
}