• Модуль: market
  • Путь к файлу: ~/bitrix/modules/market/lib/Subscription/Trial.php
  • Класс: BitrixMarketSubscriptionTrial
  • Вызов: Trial::activate
static function activate(): array
{
	if (!Trial::isAvailable()) {
		return [
			'error' => Loc::getMessage('MARKET_ACTIVATE_DEMO_NOT_AVAILABLE'),
		];
	}

	if (!Loader::includeModule('rest') || !CRestUtil::isAdmin()) {
		return [
			'error' => Loc::getMessage('MARKET_ACTIVATE_DEMO_ACCESS_DENIED'),
		];
	}

	if (!OAuthService::getEngine()->isRegistered()) {
		try {
			OAuthService::register();
		} catch (SystemException $e) {
			return [
				'error' => Loc::getMessage('MARKET_CONFIG_ACTIVATE_ERROR'),
				'error_description' => $e->getMessage(),
				'error_code' => $e->getCode(),
			];
		}
	}

	try {
		OAuthService::getEngine()->getClient()->getApplicationList();
	} catch (SystemException $e) {
		return [
			'error' => Loc::getMessage('MARKET_CONFIG_ACTIVATE_ERROR'),
			'error_description' => $e->getMessage(),
			'error_code' => 4,
		];
	}


	if (!OAuthService::getEngine()->isRegistered()) {
		return [
			'error' => Loc::getMessage('MARKET_CONFIG_ACTIVATE_ERROR'),
			'error_code' => 1,
		];
	}

	$loadedBitrix24 = Loader::includeModule('bitrix24');
	$queryFields = $loadedBitrix24 ? Trial::getB24Fields() : Trial::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 = [
			'error' => Loc::getMessage('MARKET_CONFIG_ACTIVATE_ERROR'),
			'error_code' => 2,
		];
	}

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

	return $result;
}