• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/exchange/integration/router.php
  • Класс: BitrixSaleExchangeIntegrationRouter
  • Вызов: Router::checkToken
protected function checkToken($accessToken, $refreshToken)
{
	$r = new Result();

	$restClient = new RestClientBase([
		"accessToken" => $accessToken,
		"refreshToken" => $refreshToken,
		"endPoint" => Settings::getOAuthRestUrl()
	]);

	try
	{
		$response = $restClient->call("app.info"); //echo '
';print_r($response);die;
	}
	catch (Exception $exception)
	{
		return $r->addError(new Error(Loc::getMessage("SALE_ROUTER_INTERNAL_SERVER_ERROR", ["#ERROR#"=>$exception->getMessage()])));
	}

	if (isset($response["error"]))
	{

		return $r->addError(new Error(Loc::getMessage("SALE_ROUTER_INTERNAL_SERVER_ERROR_AUHORIZATION",
			['#DESCRIPTION#'=>$response["error_description"], '#ERROR#'=>$response["error"]])
		));
	}
	else if (!isset($response["result"]))
	{
		return $r->addError(new Error(Loc::getMessage("SALE_ROUTER_INTERNAL_SERVER_ERROR_WRONG_RESPONSE")));
	}

	$token = Token::getToken([], (new AppIntegrationB24())->getCode());

	if(is_null($token))
	{
		return $r->addError(new Error(Loc::getMessage("SALE_ROUTER_INTERNAL_SERVER_ERROR_TOKEN_IS_NULL")));
	}

	if($token->getPortalId() !== $response['result']['install']['member_id'])
	{
		return $r->addError(new Error(Loc::getMessage("SALE_ROUTER_INTERNAL_SERVER_ERROR_TOKEN_IS_COMPROMISED")));
	}

	return $r;
}