• Модуль: rest
  • Путь к файлу: ~/bitrix/modules/rest/lib/marketplace/Trial.php
  • Класс: BitrixRestMarketplaceTrial
  • Вызов: Trial::activate
static function activate(): array
{
	if (!self::isAvailable())
	{
		return self::getError(Loc::getMessage('REST_MARKET_ACTIVATE_DEMO_NOT_AVAILABLE'));
	}

	if (!CRestUtil::isAdmin())
	{
		return self::getError(Loc::getMessage('REST_MARKET_ACTIVATE_DEMO_ACCESS_DENIED'));
	}

	
	if (!OAuthService::getEngine()->isRegistered())
	{
		try
		{
			OAuthService::register();
		}
		catch (SystemException $e)
		{
			return self::getError(
				Loc::getMessage('REST_MARKET_CONFIG_ACTIVATE_ERROR'),
				$e->getMessage(),
				$e->getCode()
			);
		}
	}

	try
	{
		OAuthService::getEngine()->getClient()->getApplicationList();
	}
	catch (SystemException $e)
	{
		return self::getError(
			Loc::getMessage('REST_MARKET_CONFIG_ACTIVATE_ERROR'),
			$e->getMessage(),
			4
		);
	}


	if (!OAuthService::getEngine()->isRegistered())
	{
		return self::getError(
			Loc::getMessage('REST_MARKET_CONFIG_ACTIVATE_ERROR'),
			'',
			1
		);
	}

	$loadedBitrix24 = Loader::includeModule('bitrix24');
	$queryFields = $loadedBitrix24 ? self::getB24Fields() : self::getCPFields();

	if (empty($queryFields))
	{
		return [];
	}

	$httpClient = new HttpClient();
	$response = $httpClient->post('https://www.1c-bitrix.ru/buy_tmp/b24_coupon.php', $queryFields);
	if (!$response)
	{
		return [];
	}

	$result = [
		'result' => true,
	];
	if (mb_strpos($response, 'OK') === false)
	{
		$result = self::getError(
			Loc::getMessage('REST_MARKET_CONFIG_ACTIVATE_ERROR'),
			'',
			2
		);
	}

	if (!$loadedBitrix24)
	{
		require_once($_SERVER['DOCUMENT_ROOT']
			. '/bitrix/modules/main/classes/general/update_client.php');
		$errorMessage = '';
		CUpdateClient::GetUpdatesList($errorMessage, LANG);
	}

	return $result;
}