• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/update_client_partner.php
  • Класс: CUpdateClientPartner
  • Вызов: CUpdateClientPartner::ActivateCoupon
static function ActivateCoupon($coupon, &$strError, $lang = false, $stableVersionsOnly = "Y")
{
	$strError_tmp = "";

	CUpdateClientPartner::AddMessage2Log("exec CUpdateClientPartner::ActivateCoupon");

	$strQuery = CUpdateClientPartner::__CollectRequestData($strError_tmp, $lang, $stableVersionsOnly, array(), array());
	if ($strQuery === false || $strQuery == '' || $strError_tmp <> '')
	{
		if ($strError_tmp == '')
			$strError_tmp = "[RV01] ".GetMessage("SUPZ_NO_QSTRING").". ";
	}

	if (CModule::IncludeModule("rest") && !BitrixRestOAuthService::getEngine()->isRegistered())
	{
		try
		{
			BitrixRestOAuthService::register();
			BitrixRestOAuthService::getEngine()->getClient()->getApplicationList();
		}
		catch(BitrixMainSystemException $e)
		{
		}
	}

	if ($strError_tmp == '')
	{
		$strQuery .= "&coupon=".UrlEncode($coupon)."&query_type=coupon";
		CUpdateClientPartner::AddMessage2Log(preg_replace("/LICENSE_KEY=[^&]*/i", "LICENSE_KEY=X", $strQuery));

		/*
		foreach ($arFields as $key => $value)
			$strQuery .= "&".$key."=".urlencode($value);
		*/

		$stime = microtime(true);
		$content = CUpdateClientPartner::__GetHTTPPage("ACTIV", $strQuery, $strError_tmp);
		if ($content == '')
		{
			if ($strError_tmp == '')
				$strError_tmp = "[GNSU02] ".GetMessage("SUPZ_EMPTY_ANSWER").". ";
		}

		CUpdateClientPartner::AddMessage2Log("TIME ActivateCoupon(request) ".Round(microtime(true) - $stime, 3)." sec");
	}

	if ($strError_tmp == '')
	{
		$arRes = Array();
		CUpdateClientPartner::__ParseServerData($content, $arRes, $strError_tmp);
	}

	if ($strError_tmp == '')
	{
		if (isset($arRes["DATA"]["#"]["ERROR"]) && is_array($arRes["DATA"]["#"]["ERROR"]) && !empty($arRes["DATA"]["#"]["ERROR"]))
		{
			for ($i = 0, $n = count($arRes["DATA"]["#"]["ERROR"]); $i < $n; $i++)
			{
				if ($arRes["DATA"]["#"]["ERROR"][$i]["@"]["TYPE"] <> '')
					$strError_tmp .= "[".$arRes["DATA"]["#"]["ERROR"][$i]["@"]["TYPE"]."] ";

				$strError_tmp .= $arRes["DATA"]["#"]["ERROR"][$i]["#"].". ";
			}
		}
	}

	if ($strError_tmp <> '')
	{
		CUpdateClientPartner::AddMessage2Log($strError_tmp, "AC");
		$strError .= $strError_tmp;
		return false;
	}
	else
		return true;
}