Esempio n. 1
0
 private static function post($url, $data)
 {
     $http = new \Bitrix\Main\Web\HttpClient();
     $response = $http->post($url, $data);
     $result = json_decode($response, true);
     return $result;
 }
Esempio n. 2
0
 public function GetAccessToken()
 {
     if (($tokens = $this->getStorageTokens()) && is_array($tokens)) {
         $this->access_token = $tokens["OATOKEN"];
         if ($this->checkAccessToken()) {
             return true;
         }
     }
     if ($this->code === false) {
         return false;
     }
     $h = new \Bitrix\Main\Web\HttpClient(array("socketTimeout" => $this->httpTimeout));
     $h->setAuthorization($this->appID, $this->appSecret);
     $result = $h->post(self::TOKEN_URL, array("grant_type" => "authorization_code", "code" => $this->code, "client_id" => $this->appID));
     $this->arResult = \Bitrix\Main\Web\Json::decode($result);
     if (isset($this->arResult["access_token"]) && $this->arResult["access_token"] != '') {
         // yandex doesn't send refresh tokens but I leave it here in case they will
         if (isset($this->arResult["refresh_token"]) && $this->arResult["refresh_token"] != '') {
             $this->refresh_token = $this->arResult["refresh_token"];
         }
         $this->access_token = $this->arResult["access_token"];
         $this->accessTokenExpires = $this->arResult["expires_in"] + time();
         $_SESSION["OAUTH_DATA"] = array("OATOKEN" => $this->access_token);
         return true;
     }
     return false;
 }
Esempio n. 3
0
 function Request($server, $page, $port, $params, $uri = false)
 {
     if ($uri && strlen($uri) > 0) {
         $strURI = $uri;
     } else {
         $strURI = "http://" . $server . (strlen($port) > 0 && intval($port) > 0 ? ":" . intval($port) : "") . (strlen($page) ? $page : "/") . (strlen($params) > 0 ? "?" . $params : "");
     }
     $http = new \Bitrix\Main\Web\HttpClient(array("version" => "1.0", "socketTimeout" => 30, "streamTimeout" => 30, "redirect" => true, "redirectMax" => 5));
     $strData = $http->get($strURI);
     $errors = $http->getError();
     $arRSSResult = array();
     if (!$strData && !empty($errors)) {
         $strError = "";
         foreach ($errors as $errorCode => $errMes) {
             $strError .= $errorCode . ": " . $errMes;
         }
         \CEventLog::Add(array("SEVERITY" => "ERROR", "AUDIT_TYPE_ID" => "XDIMPORT_HTTP", "MODULE_ID" => "xdimport", "ITEM_ID" => "RSS_REQUEST", "DESCRIPTION" => $strError));
     }
     if ($strData) {
         $rss_charset = "windows-1251";
         if (preg_match("/<" . "\\?XML[^>]{1,}encoding=[\"']([^>\"']{1,})[\"'][^>]{0,}\\?" . ">/i", $strData, $matches)) {
             $rss_charset = Trim($matches[1]);
         }
         $strData = preg_replace("/<" . "\\?XML.*?\\?" . ">/i", "", $strData);
         $strData = $GLOBALS["APPLICATION"]->ConvertCharset($strData, $rss_charset, SITE_CHARSET);
     }
     if (strlen($strData) > 0) {
         require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/xml.php";
         $objXML = new CDataXML();
         $res = $objXML->LoadString($strData);
         if ($res !== false) {
             $ar = $objXML->GetArray();
             if (is_array($ar) && isset($ar["rss"]) && is_array($ar["rss"]) && isset($ar["rss"]["#"]) && is_array($ar["rss"]["#"]) && isset($ar["rss"]["#"]["channel"]) && is_array($ar["rss"]["#"]["channel"]) && isset($ar["rss"]["#"]["channel"][0]) && is_array($ar["rss"]["#"]["channel"][0]) && isset($ar["rss"]["#"]["channel"][0]["#"])) {
                 $arRSSResult = $ar["rss"]["#"]["channel"][0]["#"];
             } else {
                 $arRSSResult = array();
             }
             $arRSSResult["rss_charset"] = strtolower(SITE_CHARSET);
         }
     }
     if (is_array($arRSSResult) && !empty($arRSSResult)) {
         $arRSSResult = CXDILFSchemeRSS::FormatArray($arRSSResult);
         if (!empty($arRSSResult) && array_key_exists("item", $arRSSResult) && is_array($arRSSResult["item"]) && !empty($arRSSResult["item"])) {
             $arRSSResult["item"] = array_reverse($arRSSResult["item"]);
         }
     }
     return $arRSSResult;
 }
Esempio n. 4
0
 /**
  * Calls API
  * @param string $controller Group name
  * @param string $action Method name
  * @param mixed $data Input data
  * @param bool $assoc Result format. true - array, false - object
  * @return mixed Result
  * @throws \Exception Case error during requesting
  */
 public function send($controller, $action, $data, $assoc = true)
 {
     global $APPLICATION;
     $http = new \Bitrix\Main\Web\HttpClient(array("version" => "1.1", "socketTimeout" => 30, "streamTimeout" => 30, "redirect" => true, "redirectMax" => 5));
     $http->setHeader("Content-Type", "application/json; charset=utf-8");
     $http->setHeader("Authorization", "Basic " . base64_encode($this->apiLogin . ":" . $this->apiKey));
     if (strtolower(SITE_CHARSET) != 'utf-8') {
         $data = $APPLICATION->ConvertCharsetArray($data, SITE_CHARSET, 'utf-8');
     }
     $jsonData = json_encode($data);
     $result = $http->post($this->constructApiUrl($controller, $action), $jsonData);
     $errors = $http->getError();
     if (!$result && !empty($errors)) {
         $strError = "";
         foreach ($errors as $errorCode => $errMes) {
             $strError .= $errorCode . ": " . $errMes;
         }
         throw new \Exception($strError);
     } else {
         $status = $http->getStatus();
         if ($status != 200) {
             throw new \Exception(sprintf('HTTP error code: %d', $status));
         }
         $resData = $http->getResult();
         $decodedResult = json_decode($resData, $assoc);
         if (strtolower(SITE_CHARSET) != 'utf-8') {
             $decodedResult = $APPLICATION->ConvertCharsetArray($decodedResult, 'utf-8', SITE_CHARSET);
         }
     }
     return $decodedResult;
 }
Esempio n. 5
0
 public static function Ready($callId)
 {
     $res = VI\CallTable::getList(array('select' => array('ID', 'CALL_ID', 'CALLER_ID', 'USER_ID', 'TRANSFER_USER_ID', 'ACCESS_URL'), 'filter' => array('=CALL_ID' => $callId)));
     $call = $res->fetch();
     if (!$call) {
         return false;
     }
     $answer['COMMAND'] = 'transfer';
     $answer['OPERATOR_ID'] = $call['USER_ID'];
     $answer['TRANSFER_USER_ID'] = $call['TRANSFER_USER_ID'];
     $http = new \Bitrix\Main\Web\HttpClient();
     $http->waitResponse(false);
     $http->post($call['ACCESS_URL'], json_encode($answer));
     VI\CallTable::update($call['ID'], array('USER_ID' => $call['TRANSFER_USER_ID'], 'TRANSFER_USER_ID' => 0));
     CVoxImplantHistory::TransferMessage($call['USER_ID'], $call['TRANSFER_USER_ID'], $call['CALLER_ID']);
     self::SendPullEvent(array('COMMAND' => 'answerTransfer', 'USER_ID' => $call['USER_ID'], 'CALL_ID' => $call['CALL_ID']));
     return true;
 }
Esempio n. 6
0
 public function sendMessage($uid, $message)
 {
     if ($this->access_token === false) {
         return false;
     }
     $url = self::MESSAGE_URL;
     $message = CharsetConverter::ConvertCharset($message, LANG_CHARSET, "utf-8");
     $arPost = array("user_id" => $uid, "access_token" => $this->access_token, "message" => $message);
     $ob = new \Bitrix\Main\Web\HttpClient();
     return $ob->post($url, $arPost);
 }
Esempio n. 7
0
 public function call($methodName, $additionalParams = null)
 {
     if (!is_array($additionalParams)) {
         $additionalParams = array();
     }
     $request = $this->prepareRequest($additionalParams);
     $http = new \Bitrix\Main\Web\HttpClient(array('socketTimeout' => $this->httpTimeout));
     $result = $http->post(CBitrix24NetOAuthInterface::NET_URL . self::SERVICE_URL . $methodName, $request);
     try {
         $res = $this->prepareResponse($result);
     } catch (\Bitrix\Main\ArgumentException $e) {
         $res = false;
     }
     if (!$res) {
         AddMessage2Log('Strange answer from Network! ' . $http->getStatus() . ' ' . $result);
     }
     return $res;
 }
Esempio n. 8
0
 public static function CallHold($callId, $result = false)
 {
     $res = VI\CallTable::getList(array('select' => array('ID', 'CALL_ID', 'CALLER_ID', 'USER_ID', 'TRANSFER_USER_ID', 'ACCESS_URL'), 'filter' => array('=CALL_ID' => $callId)));
     $call = $res->fetch();
     if (!$call) {
         return false;
     }
     $answer['COMMAND'] = $result ? 'hold' : 'unhold';
     $answer['OPERATOR_ID'] = $call['USER_ID'];
     $http = new \Bitrix\Main\Web\HttpClient();
     $http->waitResponse(false);
     $http->post($call['ACCESS_URL'], json_encode($answer));
     self::SendPullEvent(array('COMMAND' => $result ? 'hold' : 'unhold', 'USER_ID' => $call['USER_ID'], 'CALL_ID' => $call['CALL_ID']));
     return true;
 }
Esempio n. 9
0
 public function sendStatus($orderId, $status, $substatus = false)
 {
     global $APPLICATION;
     if (strlen($this->yandexApiUrl) <= 0 || strlen($this->campaignId) <= 0 || intval($orderId) <= 0 || strlen($status) <= 0 || strlen($this->oAuthToken) <= 0 || strlen($this->oAuthClientId) <= 0 || strlen($this->oAuthLogin) <= 0) {
         return false;
     }
     $format = $this->communicationFormat == self::JSON ? 'json' : 'xml';
     $url = $this->yandexApiUrl . "campaigns/" . $this->campaignId . "/orders/" . $orderId . "/status." . $format;
     $http = new \Bitrix\Main\Web\HttpClient(array("version" => "1.1", "socketTimeout" => 30, "streamTimeout" => 30, "redirect" => true, "redirectMax" => 5));
     $arQuery = array("order" => array("status" => $status));
     if ($substatus) {
         $arQuery["order"]["substatus"] = $substatus;
     }
     if (strtolower(SITE_CHARSET) != 'utf-8') {
         $arQuery = $APPLICATION->ConvertCharsetArray($arQuery, SITE_CHARSET, 'utf-8');
     }
     $postData = '';
     if ($this->communicationFormat == self::JSON) {
         $postData = json_encode($arQuery);
     }
     $http->setHeader("Content-Type", "application/" . $format);
     $http->setHeader("Authorization", 'OAuth oauth_token="' . $this->oAuthToken . '", oauth_client_id="' . $this->oAuthClientId . '", oauth_login="******"', false);
     $result = $http->query("PUT", $url, $postData);
     $errors = $http->getError();
     if (!$result && !empty($errors)) {
         $bResult = false;
         $message = "HTTP ERROR: ";
         foreach ($errors as $errorCode => $errMes) {
             $message .= $errorCode . ": " . $errMes;
         }
     } else {
         $headerStatus = $http->getStatus();
         if ($headerStatus == 200) {
             $message = GetMessage("SALE_YMH_STATUS") . ": " . $status;
             $bResult = true;
         } else {
             $res = $http->getResult();
             $message = "HTTP error code: " . $headerStatus . "(" . $res . ")";
             if ($headerStatus == 403) {
                 $this->notifyAdmin("SEND_STATUS_ERROR_403");
             }
             if ($headerStatus == 500) {
                 $intervalSeconds = 3600;
                 $timeToStart = ConvertTimeStamp(strtotime(date('Y-m-d H:i:s', time() + $intervalSeconds)), 'FULL');
                 \CAgent::AddAgent('\\CSaleYMHandler::sendStatusAgent("' . $orderId . '","' . $status . '", "' . $substatus . '", "' . $this->siteId . '");', 'sale', "N", $intervalSeconds, $timeToStart, "Y", $timeToStart);
             }
             $bResult = false;
         }
     }
     $this->log($bResult ? self::LOG_LEVEL_INFO : self::LOG_LEVEL_ERROR, "YMARKET_STATUS_CHANGE", $orderId, $message);
     return $bResult;
 }
Esempio n. 10
0
 public static function getAllPecomCities($cleanCache = false)
 {
     global $APPLICATION;
     $ttl = 2592000;
     $data = array();
     $cacheId = "SaleDeliveryPecomCities";
     $cacheManager = \Bitrix\Main\Application::getInstance()->getManagedCache();
     if ($cleanCache) {
         $cacheManager->clean($cacheId);
     }
     if ($cacheManager->read($ttl, $cacheId)) {
         $data = $cacheManager->get($cacheId);
     }
     if (empty($data)) {
         $http = new \Bitrix\Main\Web\HttpClient(array("version" => "1.1", "socketTimeout" => 30, "streamTimeout" => 30, "redirect" => true, "redirectMax" => 5));
         $jsnData = $http->get("http://www.pecom.ru/ru/calc/towns.php");
         $errors = $http->getError();
         if (!$jsnData && !empty($errors)) {
             $strError = "";
             foreach ($errors as $errorCode => $errMes) {
                 $strError .= $errorCode . ": " . $errMes;
             }
             \CEventLog::Add(array("SEVERITY" => "ERROR", "AUDIT_TYPE_ID" => "SALE_DELIVERY", "MODULE_ID" => "sale", "ITEM_ID" => "PECOM_GET_TOWNS", "DESCRIPTION" => $strError));
         }
         $data = json_decode($jsnData, true);
         if (strtolower(SITE_CHARSET) != 'utf-8') {
             $data = $APPLICATION->ConvertCharsetArray($data, 'utf-8', SITE_CHARSET);
             if (is_array($data)) {
                 foreach ($data as $key => $value) {
                     $newKey = $APPLICATION->ConvertCharset($key, 'utf-8', SITE_CHARSET);
                     $data[$newKey] = $value;
                     unset($data[$key]);
                 }
             }
         }
         if (!is_array($data)) {
             $data = array();
         }
         $cacheManager->set($cacheId, $data);
     }
     return $data;
 }
Esempio n. 11
0
 public function GetCurrentUser()
 {
     if ($this->access_token === false) {
         return false;
     }
     $httpClient = new \Bitrix\Main\Web\HttpClient();
     $httpClient->setHeader("Authorization", "Bearer " . $this->access_token);
     $result = $httpClient->get($this->resource . static::VERSION . static::CONTACTS_URL);
     $result = \Bitrix\Main\Web\Json::decode($result);
     if (is_array($result)) {
         $result["access_token"] = $this->access_token;
         $result["refresh_token"] = $this->refresh_token;
         $result["expires_in"] = $this->accessTokenExpires;
     }
     return $result;
 }
Esempio n. 12
0
	public static function GetVideoOembed($url = '')
	{
		// Get oembed url
		$oembed = self::GetOembedUrlInfo($url);
		$output = array('result' => false, 'error' => "");
		$http = new \Bitrix\Main\Web\HttpClient();
		$resp = $http->get($oembed['url']);
		if ($resp === false)
		{
			$error = $http->getError();
			foreach($error as $errorCode => $errorMessage)
			{
				$output['error'] .=  '['.$errorCode.'] '.$errorMessage.";\n";
			}
		}
		else
		{
			$resParams = json_decode($resp, true);
			if ($resParams && is_array($resParams))
			{
				if (!defined('BX_UTF') || BX_UTF !== true)
				{
					$resParams['title'] = CharsetConverter::ConvertCharset($resParams['title'], 'UTF-8', SITE_CHARSET);
					$resParams['html'] = CharsetConverter::ConvertCharset($resParams['html'], 'UTF-8', SITE_CHARSET);
					$resParams['provider_name'] = CharsetConverter::ConvertCharset($resParams['provider_name'], 'UTF-8', SITE_CHARSET);

				}

				$resParams['html'] = preg_replace("/https?:\/\//is", '//', $resParams['html']);
				$output['result'] = true;
				$output['data'] = array(
					'html' => $resParams['html'],
					'title' => $resParams['title'],
					'width' => intval($resParams['width']),
					'height' => intval($resParams['height']),
					'provider' => $resParams['provider_name']
				);
			}
			else
			{
				$output['error'] .=  '[FVID404] '.GetMessage('HTMLED_VIDEO_NOT_FOUND').";\n";
			}
		}

		return $output;
	}
Esempio n. 13
0
 public function call($methodName, $additionalParams = null)
 {
     if (!is_array($additionalParams)) {
         $additionalParams = array();
     }
     $additionalParams['auth'] = $this->access_token;
     $http = new \Bitrix\Main\Web\HttpClient(array('socketTimeout' => $this->httpTimeout));
     $result = $http->post(CBitrix24NetOAuthInterface::NET_URL . self::SERVICE_URL . $methodName, $additionalParams);
     return $this->prepareAnswer($result);
 }
Esempio n. 14
0
 public static function DownloadAgent($historyID, $recordUrl, $attachToCrm = true)
 {
     $historyID = intval($historyID);
     if (strlen($recordUrl) <= 0 || $historyID <= 0) {
         return false;
     }
     $http = new \Bitrix\Main\Web\HttpClient();
     $http->query('HEAD', $recordUrl);
     if ($http->getStatus() != 200) {
         CAgent::AddAgent("CVoxImplantHistory::DownloadAgent('{$historyID}','{$recordUrl}','{$attachToCrm}');", 'voximplant', 'N', 30, '', 'Y', ConvertTimeStamp(time() + CTimeZone::GetOffset() + 30, 'FULL'));
         return false;
     }
     $history = VI\StatisticTable::getById($historyID);
     $arHistory = $history->fetch();
     try {
         $recordFile = CFile::MakeFileArray($recordUrl);
         if (is_array($recordFile) && $recordFile['size'] && $recordFile['size'] > 0) {
             $recordFile = array_merge($recordFile, array('MODULE_ID' => 'voximplant'));
             $fileID = CFile::SaveFile($recordFile, 'voximplant');
             if (is_int($fileID) && $fileID > 0) {
                 $elementID = CVoxImplantDiskHelper::SaveFile($arHistory, CFile::GetFileArray($fileID), CSite::GetDefSite());
                 $elementID = intval($elementID);
                 if ($attachToCrm && $elementID > 0) {
                     CVoxImplantCrmHelper::AttachRecordToCall(array('CALL_ID' => $arHistory['CALL_ID'], 'CALL_RECORD_ID' => $fileID, 'CALL_WEBDAV_ID' => $elementID));
                 }
                 VI\StatisticTable::update($historyID, array('CALL_RECORD_ID' => $fileID, 'CALL_WEBDAV_ID' => $elementID));
             }
         }
     } catch (Exception $ex) {
     }
     return false;
 }
Esempio n. 15
0
 private static function query($query, $data)
 {
     $http = new \Bitrix\Main\Web\HttpClient();
     $response = $http->post($query, $data);
     $xml = new CDataXML();
     $xml->loadString($response);
     return $xml;
 }
Esempio n. 16
0
                }
                ?>
				</div>
				<?php 
            }
        }
    }
    ?>

				<div style="position: relative; padding: 25px; border: 1px solid #859f4a; border-radius: 4px; margin-top: 40px;">
					<div style="font-size: 18px; line-height: 28px; position: absolute; top: -14px; left: 14px; display: block; height: 28px; margin: 0; padding: 0; padding: 0 10px; vertical-align: middle; color: #859f4a; background: #fff; font-weight: bold;"><?php 
    echo GetMessage("BUY_SUP_TOBUY");
    ?>
</div>
					<?php 
    $ht = new Bitrix\Main\Web\HttpClient(array("socketTimeout" => 30));
    $arF = array("license_key" => $lkeySign, "lang" => LANGUAGE_ID);
    $buyUrl = "";
    if ($res = $ht->post("https://www.1c-bitrix.ru/buy_tmp/key_update.php", $arF)) {
        if ($ht->getStatus() == "200") {
            $res = Bitrix\Main\Web\Json::decode($res);
            if ($res["result"] == "ok") {
                ?>
								<div style="font-size: 16px; padding-top: 10px;"><?php 
                $lkid = $res["lkid"];
                if (count($res["toBuy"]) == 1) {
                    foreach ($res["toBuy"] as $v) {
                        echo $v["NAME"] . " &mdash; <b>" . $res["price"] . "</b>";
                    }
                } else {
                    foreach ($res["toBuy"] as $v) {
Esempio n. 17
0
 function CheckKernel($arParams)
 {
     $time_start = time();
     global $DB;
     $arCompare = array("install/components/bitrix/" => "/bitrix/components/bitrix/", "install/js/" => "/bitrix/js/", "install/activities/" => "/bitrix/activities/", "install/admin/" => "/bitrix/admin/", "install/wizards/" => "/bitrix/wizards/");
     if (!$_SESSION["BX_CHECKLIST"][$arParams["TEST_ID"]]) {
         $_SESSION["BX_CHECKLIST"][$arParams["TEST_ID"]] = array();
     }
     $NS =& $_SESSION["BX_CHECKLIST"][$arParams["TEST_ID"]];
     if ($arParams["STEP"] == false) {
         $NS = array();
         $rsInstalledModules = CModule::GetList();
         while ($ar = $rsInstalledModules->Fetch()) {
             if (!strpos($ar["ID"], ".")) {
                 $NS["MLIST"][] = $ar["ID"];
             }
         }
         $NS["MNUM"] = 0;
         $NS["FILE_LIST"] = array();
         $NS["FILES_COUNT"] = 0;
         $NS["MODFILES_COUNT"] = 0;
     }
     $arError = false;
     $module_id = $NS["MLIST"][$NS["MNUM"]];
     $module_folder = $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/" . $module_id . "/";
     $dbtype = strtolower($DB->type);
     if ($module_id == "main") {
         $ver = SM_VERSION;
     } else {
         $arModuleVersion = array();
         @(include $module_folder . "install/version.php");
         $ver = $arModuleVersion["VERSION"];
     }
     $arFilesCount = 0;
     $arModifiedFilesCount = 0;
     $state = array();
     $Skip = false;
     if (!$ver) {
         $state = array("STATUS" => false, "MESSAGE" => GetMessage("CL_MODULE_VERSION_ERROR", array("#module_id#" => $module_id)) . "\n");
         $arError = true;
     } else {
         if (count($NS["FILE_LIST"]) == 0) {
             $sHost = COption::GetOptionString("main", "update_site", "www.bitrixsoft.com");
             $proxyAddr = COption::GetOptionString("main", "update_site_proxy_addr", "");
             $proxyPort = COption::GetOptionString("main", "update_site_proxy_port", "");
             $proxyUserName = COption::GetOptionString("main", "update_site_proxy_user", "");
             $proxyPassword = COption::GetOptionString("main", "update_site_proxy_pass", "");
             $http = new \Bitrix\Main\Web\HttpClient();
             $http->setProxy($proxyAddr, $proxyPort, $proxyUserName, $proxyPassword);
             $data = $http->get("http://" . $sHost . "/bitrix/updates/checksum.php?check_sum=Y&module_id=" . $module_id . "&ver=" . $ver . "&dbtype=" . $dbtype . "&mode=2");
             $NS["FILE_LIST"] = $result = unserialize(gzinflate($data));
             $NS["MODULE_FILES_COUNT"] = count($NS["FILE_LIST"]);
         } else {
             $result = $NS["FILE_LIST"];
         }
         $arMessage = "";
         $timeout = COption::GetOptionString("main", "update_load_timeout", "30");
         if (is_array($result) && !$result["error"]) {
             foreach ($result as $file => $checksum) {
                 $arFile = $module_folder . $file;
                 unset($NS["FILE_LIST"][$file]);
                 if (!file_exists($arFile)) {
                     continue;
                 }
                 $arFilesCount++;
                 if (md5_file($arFile) != $checksum) {
                     $arMessage .= str_replace(array("//", "\\\\"), array("/", "\\"), $arFile) . "\n";
                     $arModifiedFilesCount++;
                 }
                 $arTmpCompare = $arCompare;
                 foreach ($arTmpCompare as $key => $value) {
                     if (strpos($file, $key) === 0) {
                         $arFile = str_replace($key, $_SERVER["DOCUMENT_ROOT"] . $value, $file);
                         if (!file_exists($arFile) || md5_file($arFile) != $checksum) {
                             $arModifiedFilesCount++;
                             $arMessage .= str_replace(array("//", "\\\\"), array("/", "\\"), $arFile) . "\n";
                         }
                         $arFilesCount++;
                     }
                 }
                 if (time() - $time_start >= $timeout) {
                     break;
                 }
             }
             if (strlen($arMessage) > 0) {
                 $state = array("MESSAGE" => $arMessage, "STATUS" => false);
             }
         } else {
             if ($result["error"] != "unknow module id") {
                 $state["MESSAGE"] = GetMessage("CL_CANT_CHECK", array("#module_id#" => $module_id)) . "\n";
                 $arError = true;
             } else {
                 $Skip = true;
             }
         }
     }
     if ($state["MESSAGE"]) {
         $NS["MESSAGE"][$module_id] .= $state["MESSAGE"];
     }
     if (!$arError && !$Skip) {
         if (count($NS["FILE_LIST"]) == 0) {
             if (strlen($NS["MESSAGE"][$module_id]) == 0) {
                 $NS["MESSAGE"][$module_id] = GetMessage("CL_NOT_MODIFIED", array("#module_id#" => $module_id)) . "\n";
             } else {
                 $NS["MESSAGE"][$module_id] = GetMessage("CL_MODIFIED_FILES", array("#module_id#" => $module_id)) . "\n" . $NS["MESSAGE"][$module_id];
             }
         }
         $NS["FILES_COUNT"] += $arFilesCount;
         $NS["MODFILES_COUNT"] += $arModifiedFilesCount;
     }
     if ($state["STATUS"] === false || $arError == true || $Skip) {
         if ($state["STATUS"] === false || $arError == true) {
             $NS["STATUS"] = false;
         }
         $NS["FILE_LIST"] = array();
         $NS["MODULE_FILES_COUNT"] = 0;
     }
     if ($NS["MNUM"] + 1 >= count($NS["MLIST"]) && !$NS["LAST_FILE"]) {
         $arDetailReport = "";
         foreach ($NS["MESSAGE"] as $module_message) {
             $arDetailReport .= "<div class=\"checklist-dot-line\"></div>" . $module_message;
         }
         $arResult = array("MESSAGE" => array("PREVIEW" => GetMessage("CL_KERNEL_CHECK_FILES") . $NS["FILES_COUNT"] . "\n" . GetMessage("CL_KERNEL_CHECK_MODULE") . count($NS["MLIST"]) . "\n" . GetMessage("CL_KERNEL_CHECK_MODIFIED") . $NS["MODFILES_COUNT"], "DETAIL" => $arDetailReport), "STATUS" => $NS["STATUS"] === false ? false : true);
     } else {
         $percent = round($NS["MNUM"] / (count($NS["MLIST"]) * 0.01), 0);
         $module_percent = 0;
         if ($NS["MODULE_FILES_COUNT"] > 0) {
             $module_percent = 1 / (count($NS["MLIST"]) * 0.01) * (($NS["MODULE_FILES_COUNT"] - count($NS["FILE_LIST"])) / ($NS["MODULE_FILES_COUNT"] * 0.01) * 0.01);
         }
         $percent += $module_percent;
         $arResult = array("IN_PROGRESS" => "Y", "PERCENT" => number_format($percent, 2));
         if (count($NS["FILE_LIST"]) == 0) {
             $NS["MNUM"]++;
             $NS["MODULE_FILES_COUNT"] = 0;
         }
     }
     return $arResult;
 }
Esempio n. 18
0
 public function GetCurrentUser()
 {
     if ($this->access_token === false) {
         return false;
     }
     $h = new \Bitrix\Main\Web\HttpClient();
     $h->setHeader("Authorization", "Bearer " . $this->access_token);
     $result = $h->get(static::ACCOUNT_URL);
     $result = \Bitrix\Main\Web\Json::decode($result);
     if (is_array($result)) {
         $result["access_token"] = $this->access_token;
     }
     return $result;
 }
Esempio n. 19
0
 public function getMessages($uid)
 {
     if ($this->access_token === false) {
         return false;
     }
     $url = self::GRAPH_URL . '/' . $uid . '/apprequests?access_token=' . $this->access_token;
     $ob = new \Bitrix\Main\Web\HttpClient();
     return $ob->get($url);
 }
Esempio n. 20
0
 public function payOrder($orderData = array())
 {
     if (strlen($this->token) > 0) {
         global $APPLICATION;
         $url = "https://api-3t." . $this->domain . "paypal.com/nvp";
         $arFields = array("METHOD" => "GetExpressCheckoutDetails", "VERSION" => $this->version, "USER" => $this->username, "PWD" => $this->pwd, "SIGNATURE" => $this->signature, "TOKEN" => $this->token, "buttonsource" => "Bitrix_Cart");
         $ht = new \Bitrix\Main\Web\HttpClient(array("version" => "1.1"));
         if ($res = $ht->post($url, $arFields)) {
             $result = $this->parseResult($res);
             if ($result["ACK"] == "Success" && in_array($result["CHECKOUTSTATUS"], array("PaymentActionNotInitiated"))) {
                 $arFields["METHOD"] = "DoExpressCheckoutPayment";
                 $arFields["PAYERID"] = $this->payerId;
                 $arFields["PAYMENTACTION"] = "Sale";
                 $arFields["PAYMENTREQUEST_0_AMT"] = number_format($this->orderAmount, 2, ".", "");
                 $arFields["PAYMENTREQUEST_0_CURRENCYCODE"] = $this->currency;
                 $arFields["PAYMENTREQUEST_0_DESC"] = "Order #" . $this->orderId;
                 $arFields["PAYMENTREQUEST_0_NOTETEX"] = "Order #" . $this->orderId;
                 $arFields["PAYMENTREQUEST_0_INVNUM"] = $this->orderId;
                 if (DoubleVal($this->deliveryAmount) > 0) {
                     $arFields["PAYMENTREQUEST_0_SHIPPINGAMT"] = number_format($this->deliveryAmount, 2, ".", "");
                 }
                 $orderProps = $this->getProps();
                 if (!empty($orderProps)) {
                     $arFields["PAYMENTREQUEST_0_SHIPTONAME"] = $APPLICATION->ConvertCharset($orderProps["PP_SOURCE"]["PAYMENTREQUEST_0_SHIPTONAME"], SITE_CHARSET, "utf-8");
                     $arFields["PAYMENTREQUEST_0_SHIPTOSTREET"] = $APPLICATION->ConvertCharset($orderProps["PP_SOURCE"]["PAYMENTREQUEST_0_SHIPTOSTREET"], SITE_CHARSET, "utf-8");
                     $arFields["PAYMENTREQUEST_0_SHIPTOSTREET2"] = $APPLICATION->ConvertCharset($orderProps["PP_SOURCE"]["PAYMENTREQUEST_0_SHIPTOSTREET2"], SITE_CHARSET, "utf-8");
                     $arFields["PAYMENTREQUEST_0_SHIPTOCITY"] = $APPLICATION->ConvertCharset($orderProps["PP_SOURCE"]["PAYMENTREQUEST_0_SHIPTOCITY"], SITE_CHARSET, "utf-8");
                     $arFields["PAYMENTREQUEST_0_SHIPTOSTATE"] = $APPLICATION->ConvertCharset($orderProps["PP_SOURCE"]["PAYMENTREQUEST_0_SHIPTOSTATE"], SITE_CHARSET, "utf-8");
                     $arFields["PAYMENTREQUEST_0_SHIPTOZIP"] = $orderProps["PP_SOURCE"]["PAYMENTREQUEST_0_SHIPTOZIP"];
                     $arFields["PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE"] = $APPLICATION->ConvertCharset($orderProps["PP_SOURCE"]["PAYMENTREQUEST_0_SHIPTOCOUNTRYCODE"], SITE_CHARSET, "utf-8");
                 }
                 if (!empty($orderData["BASKET_ITEMS"])) {
                     $arFields["PAYMENTREQUEST_0_ITEMAMT"] = number_format($this->orderAmount - $this->deliveryAmount, 2, ".", "");
                     foreach ($orderData["BASKET_ITEMS"] as $k => $val) {
                         $arFields["L_PAYMENTREQUEST_0_NAME" . $k] = $APPLICATION->ConvertCharset($val["NAME"], SITE_CHARSET, "utf-8");
                         $arFields["L_PAYMENTREQUEST_0_AMT" . $k] = number_format($val["PRICE"], 2, ".", "");
                         $arFields["L_PAYMENTREQUEST_0_QTY" . $k] = $val["QUANTITY"];
                         $arFields["L_PAYMENTREQUEST_0_NUMBER" . $k] = $val["PRODUCT_ID"];
                     }
                 }
                 if (strlen($this->notifyUrl) > 0) {
                     $arFields["PAYMENTREQUEST_0_NOTIFYURL"] = $this->notifyUrl;
                 }
                 if ($res2 = $ht->Post($url, $arFields)) {
                     $result2 = $this->parseResult($res2);
                     if ($result2["ACK"] == "Success" && in_array($result2["PAYMENTINFO_0_PAYMENTSTATUS"], array("Completed"))) {
                         CSaleOrder::PayOrder($this->orderId, "Y");
                         $strPS_STATUS_MESSAGE = "";
                         $strPS_STATUS_MESSAGE .= "Name: " . $result["FIRSTNAME"] . " " . $result["LASTNAME"] . "; ";
                         $strPS_STATUS_MESSAGE .= "Email: " . $result["EMAIL"] . "; ";
                         $strPS_STATUS_DESCRIPTION = "";
                         $strPS_STATUS_DESCRIPTION .= "Payment status: " . $result2["PAYMENTINFO_0_PAYMENTSTATUS"] . "; ";
                         $strPS_STATUS_DESCRIPTION .= "Payment sate: " . $result2["PAYMENTINFO_0_ORDERTIME"] . "; ";
                         $arOrderFields = array("PS_STATUS" => "Y", "PS_STATUS_CODE" => "-", "PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION, "PS_STATUS_MESSAGE" => $strPS_STATUS_MESSAGE, "PS_SUM" => $result2["PAYMENTINFO_0_AMT"], "PS_CURRENCY" => $result2["PAYMENTINFO_0_CURRENCYCODE"], "PS_RESPONSE_DATE" => ConvertTimeStamp(false, "FULL"), "PAY_VOUCHER_NUM" => $result2["PAYMENTINFO_0_TRANSACTIONID"], "PAY_VOUCHER_DATE" => ConvertTimeStamp(false, "FULL"));
                     } else {
                         $strPS_STATUS_MESSAGE = "";
                         $strPS_STATUS_MESSAGE .= "Name: " . $result["FIRSTNAME"] . " " . $result["LASTNAME"] . "; ";
                         $strPS_STATUS_MESSAGE .= "Email: " . $result["EMAIL"] . "; ";
                         $strPS_STATUS_DESCRIPTION = "";
                         $strPS_STATUS_DESCRIPTION .= "Payment status: " . $result2["PAYMENTINFO_0_PAYMENTSTATUS"] . "; ";
                         $strPS_STATUS_DESCRIPTION .= "Pending reason: " . $result2["PAYMENTINFO_0_PENDINGREASON"] . "; ";
                         $strPS_STATUS_DESCRIPTION .= "Payment sate: " . $result2["PAYMENTINFO_0_ORDERTIME"] . "; ";
                         $arOrderFields = array("PS_STATUS" => "N", "PS_STATUS_CODE" => $result2["PAYMENTINFO_0_PAYMENTSTATUS"], "PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION, "PS_STATUS_MESSAGE" => $strPS_STATUS_MESSAGE, "PS_SUM" => $result2["PAYMENTINFO_0_AMT"], "PS_CURRENCY" => $result2["PAYMENTINFO_0_CURRENCYCODE"], "PS_RESPONSE_DATE" => ConvertTimeStamp(false, "FULL"), "PAY_VOUCHER_NUM" => $result2["PAYMENTINFO_0_TRANSACTIONID"], "PAY_VOUCHER_DATE" => ConvertTimeStamp(false, "FULL"));
                     }
                     CSaleOrder::Update($this->orderId, $arOrderFields);
                 }
             }
         }
     }
 }
Esempio n. 21
0
    $aMenu[] = array("parent_menu" => "global_menu_settings", "section" => "TOOLS", "sort" => 1800, "text" => GetMessage("MAIN_MENU_TOOLS"), "title" => GetMessage("MAIN_MENU_TOOLS_TITLE"), "icon" => "util_menu_icon", "page_icon" => "util_page_icon", "items_id" => "menu_util", "items" => array(array("text" => GetMessage("MAIN_MENU_SYSTEM_CHECKER"), "url" => "site_checker.php?lang=" . LANGUAGE_ID, "more_url" => array(), "title" => GetMessage("MAIN_MENU_SITE_CHECKER_ALT")), $USER->CanDoOperation('view_other_settings') ? array("text" => GetMessage("MAIN_MENU_CHECKLIST"), "url" => "checklist.php?lang=" . LANGUAGE_ID, "more_url" => array("checklist_report.php"), "title" => GetMessage("MAIN_MENU_CHECKLIST")) : null, array("text" => GetMessage("MAIN_MENU_SQL"), "url" => "sql.php?lang=" . LANGUAGE_ID . "&amp;del_query=Y", "more_url" => array("sql.php"), "title" => GetMessage("MAIN_MENU_SQL_ALT")), array("text" => GetMessage("MAIN_MENU_PHP"), "url" => "php_command_line.php?lang=" . LANGUAGE_ID . "", "more_url" => array("php_command_line.php"), "title" => GetMessage("MAIN_MENU_PHP_ALT")), array("text" => GetMessage("MAIN_MENU_DUMP"), "title" => GetMessage("MAIN_MENU_DUMP_ALT"), "items_id" => "backup", "items" => array(array("text" => GetMessage("MAIN_MENU_DUMP_NEW"), "url" => "dump.php?lang=" . LANGUAGE_ID, "more_url" => array("dump.php"), "title" => GetMessage("MAIN_MENU_DUMP_ALT")), array("text" => GetMessage("MAIN_MENU_DUMP_AUTO"), "url" => "dump_auto.php?lang=" . LANGUAGE_ID, "more_url" => array("dump_auto.php"), "title" => GetMessage("MAIN_MENU_DUMP_ALT")), array("text" => GetMessage("MAIN_MENU_DUMP_LIST"), "url" => "dump_list.php?lang=" . LANGUAGE_ID, "more_url" => array("dump_list.php"), "title" => GetMessage("MAIN_MENU_DUMP_ALT")), array("text" => GetMessage("MAIN_MENU_DUMP_LOG"), "url" => "event_log.php?lang=" . LANGUAGE_ID . "&set_filter=Y&find_type=audit_type_id&find_audit_type[]=BACKUP_ERROR&find_audit_type[]=BACKUP_SUCCESS", "more_url" => array(), "title" => GetMessage("MAIN_MENU_DUMP_ALT")))), array("text" => GetMessage("main_menu_diag"), "title" => GetMessage("main_menu_diag_title"), "items_id" => "diag", "items" => array(array("text" => GetMessage("MAIN_MENU_PHPINFO"), "url" => "phpinfo.php?test_var1=AAA&amp;test_var2=BBB", "more_url" => array("phpinfo.php"), "title" => GetMessage("MAIN_MENU_PHPINFO_ALT")), strtoupper($DBType) == "MYSQL" ? array("text" => GetMessage("MAIN_MENU_OPTIMIZE_DB"), "url" => "repair_db.php?optimize_tables=Y&lang=" . LANGUAGE_ID, "more_url" => array(), "title" => GetMessage("MAIN_MENU_OPTIMIZE_DB_ALT")) : null, strtoupper($DBType) == "MYSQL" ? array("text" => GetMessage("MAIN_MENU_REPAIR_DB"), "url" => "repair_db.php?lang=" . LANGUAGE_ID, "more_url" => array(), "title" => GetMessage("MAIN_MENU_REPAIR_DB_ALT")) : null)), $USER->CanDoOperation('view_event_log') ? array("text" => GetMessage("MAIN_MENU_EVENT_LOG"), "url" => "event_log.php?lang=" . LANGUAGE_ID, "more_url" => array(), "title" => GetMessage("MAIN_MENU_EVENT_LOG_ALT")) : null));
} elseif ($USER->CanDoOperation('manage_short_uri')) {
    $aMenu[] = array("parent_menu" => "global_menu_settings", "sort" => 1700, "text" => GetMessage("MAIN_MENU_SHORT_URLS"), "url" => "short_uri_admin.php?lang=" . LANGUAGE_ID, "more_url" => array("short_uri_edit.php"), "title" => GetMessage("MAIN_MENU_SHORT_URLS_ALT"), "icon" => "sys_menu_icon");
}
if ($USER->CanDoOperation('install_updates')) {
    $arMarket = array();
    if (method_exists($adminMenu, "IsSectionActive")) {
        if ($adminMenu->IsSectionActive("menu_marketplace")) {
            $CACHE = 60 * 60 * 24;
            $obCache = new CPHPCache();
            $cache_id = "main_menu_marketplace_" . LANGUAGE_ID;
            if ($obCache->InitCache($CACHE, $cache_id, "/")) {
                $vars = $obCache->GetVars();
                $arMarket = $vars["arMarket"];
            } else {
                $ht = new Bitrix\Main\Web\HttpClient(array("socketTimeout" => 30));
                if ($res = $ht->get("http://marketplace.1c-bitrix.ru/data_export.php")) {
                    if ($ht->getStatus() == "200") {
                        $res = $APPLICATION->ConvertCharset($res, "windows-1251", SITE_CHARSET);
                        require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/classes/general/xml.php";
                        $objXML = new CDataXML();
                        $objXML->LoadString($res);
                        $arResult = $objXML->GetArray();
                        if (!empty($arResult) && is_array($arResult)) {
                            if (!empty($arResult["categories"]["#"]["category"])) {
                                foreach ($arResult["categories"]["#"]["category"] as $category) {
                                    $arCategory = array();
                                    $arUrls = array();
                                    if (!empty($category["#"]["items"][0]["#"]["item"])) {
                                        foreach ($category["#"]["items"][0]["#"]["item"] as $catIn) {
                                            $url = "update_system_market.php?category=" . $catIn["#"]["id"][0]["#"];
Esempio n. 22
0
 private static function get($url, $data)
 {
     $http = new \Bitrix\Main\Web\HttpClient();
     $response = $http->get($url . '?' . http_build_query($data));
     $result = json_decode($response, true);
     return $result;
 }
Esempio n. 23
0
 public function GetCurrentUser()
 {
     if ($this->access_token === false) {
         return false;
     }
     $h = new \Bitrix\Main\Web\HttpClient();
     $result = $h->get(self::USERINFO_URL . '?format=json&oauth_token=' . urlencode($this->access_token));
     $result = \Bitrix\Main\Web\Json::decode($result);
     if (is_array($result)) {
         $result["access_token"] = $this->access_token;
         $result["refresh_token"] = $this->refresh_token;
         $result["expires_in"] = $this->accessTokenExpires;
     }
     return $result;
 }
Esempio n. 24
0
 /**
  * @param $data
  * @return \Bitrix\Main\Entity\Result
  */
 protected static function sendRequestData($data, $method)
 {
     $result = new \Bitrix\Main\Entity\Result();
     $url = "http://" . DELIVERY_RUSSIANPOST_SERVER . DELIVERY_RUSSIANPOST_SERVER_PAGE;
     $reqResult = false;
     $httpClient = new \Bitrix\Main\Web\HttpClient(array("version" => "1.1", "socketTimeout" => 30, "streamTimeout" => 30, "redirect" => true, "redirectMax" => 5));
     $method = DELIVERY_RUSSIANPOST_SERVER_METHOD == $method ? \Bitrix\Main\Web\HttpClient::HTTP_GET : \Bitrix\Main\Web\HttpClient::HTTP_POST;
     if ($httpClient->query($method, $url, $data)) {
         $reqResult = $httpClient->getResult();
     }
     $errors = $httpClient->getError();
     if (!$reqResult && !empty($errors)) {
         foreach ($errors as $errorCode => $errMes) {
             $result->addError(new \Bitrix\Main\Entity\EntityError($errorCode . ": " . $errMes));
         }
     } else {
         $status = $httpClient->getStatus();
         if ($status != 200) {
             $result->addError(new \Bitrix\Main\Entity\EntityError('HTTP error code: %d', $status));
         } else {
             $result->setData(array("DATA" => $reqResult));
         }
     }
     return $result;
 }
Esempio n. 25
0
 public function batch($actions)
 {
     $arBatch = array();
     if (is_array($actions)) {
         foreach ($actions as $query_key => $arCmd) {
             list($cmd, $arParams) = array_values($arCmd);
             $arBatch['cmd'][$query_key] = $cmd . '?' . CHTTP::PrepareData($arParams);
         }
     }
     $arBatch['auth'] = $this->access_token;
     $batch_url = '/rest/batch';
     $httpClient = new \Bitrix\Main\Web\HttpClient();
     $result = $httpClient->post($this->portalURI . $batch_url, $arBatch);
     return $this->prepareAnswer($result);
 }
Esempio n. 26
0
 public function sendMessage($user_id, $uid, $message)
 {
     $this->SetOauthKeys($user_id);
     if ($this->access_token === false) {
         return false;
     }
     $message = CharsetConverter::ConvertCharset($message, LANG_CHARSET, "utf-8");
     $arParams = array_merge($this->GetDefParams(), array("oauth_token" => $this->token, "user_id" => $uid, "text" => $message));
     $arParams["oauth_signature"] = urlencode($this->BuildSignature($this->GetSignatureString($arParams, self::MESSAGE_URL)));
     $arHeaders = array("Authorization" => 'OAuth oauth_consumer_key="' . $arParams["oauth_consumer_key"] . '", oauth_nonce="' . $arParams["oauth_nonce"] . '", oauth_signature="' . $arParams["oauth_signature"] . '", oauth_signature_method="HMAC-SHA1", oauth_timestamp="' . $arParams["oauth_timestamp"] . '", oauth_token="' . $this->token . '", oauth_version="1.0"');
     $arPost = array("user_id" => $uid, "text" => $message);
     $ob = new \Bitrix\Main\Web\HttpClient();
     foreach ($arHeaders as $header => $value) {
         $ob->setHeader($header, $value);
     }
     return $ob->post(self::MESSAGE_URL, $arPost);
 }
Esempio n. 27
0
 protected static function send($strParams)
 {
     $http = new \Bitrix\Main\Web\HttpClient(array("version" => "1.1", "socketTimeout" => 30, "streamTimeout" => 30, "redirect" => true, "redirectMax" => 5));
     $jsnData = $http->post("http://www.pecom.ru/bitrix/components/pecom/calc/ajax.php", $strParams);
     $errors = $http->getError();
     if (!$jsnData && !empty($errors)) {
         $strError = "";
         foreach ($errors as $errorCode => $errMes) {
             $strError .= $errorCode . ": " . $errMes;
         }
         \CEventLog::Add(array("SEVERITY" => "ERROR", "AUDIT_TYPE_ID" => "SALE_DELIVERY", "MODULE_ID" => "sale", "ITEM_ID" => "PECOM_CALCULATOR_SEND", "DESCRIPTION" => $strError));
     }
     return $jsnData;
 }
Esempio n. 28
0
 public static function GetVideoOembed($url = '')
 {
     // Get oembed url
     $oembed = self::GetOembedUrlInfo($url);
     $output = array('result' => false, 'error' => "");
     $http = new \Bitrix\Main\Web\HttpClient();
     $resp = $http->get($oembed['url']);
     if ($resp === false) {
         $io = CBXVirtualIo::GetInstance();
         $path = $url;
         $serverPath = self::GetServerPath();
         if (strpos($path, $serverPath) !== false) {
             $path = str_replace($serverPath, '', $path);
         }
         if ($io->FileExists($io->RelativeToAbsolutePath($path))) {
             $output['data'] = array('local' => true, 'path' => $path);
             $output['result'] = true;
         } else {
             $path = $url;
             $http = new \Bitrix\Main\Web\HttpClient();
             $resp1 = $http->get($path);
             if ($resp1 !== false) {
                 $output['data'] = array('local' => true, 'path' => $url);
             }
             $output['result'] = true;
         }
         if (!$output['result']) {
             $error = $http->getError();
             foreach ($error as $errorCode => $errorMessage) {
                 $output['error'] .= '[' . $errorCode . '] ' . $errorMessage . ";\n";
             }
         }
     } else {
         $resParams = json_decode($resp, true);
         if ($resParams && is_array($resParams)) {
             if (!defined('BX_UTF') || BX_UTF !== true) {
                 $resParams['title'] = CharsetConverter::ConvertCharset($resParams['title'], 'UTF-8', SITE_CHARSET);
                 $resParams['html'] = CharsetConverter::ConvertCharset($resParams['html'], 'UTF-8', SITE_CHARSET);
                 $resParams['provider_name'] = CharsetConverter::ConvertCharset($resParams['provider_name'], 'UTF-8', SITE_CHARSET);
             }
             $resParams['html'] = preg_replace("/https?:\\/\\//is", '//', $resParams['html']);
             $output['result'] = true;
             $output['data'] = array('html' => $resParams['html'], 'title' => $resParams['title'], 'width' => intval($resParams['width']), 'height' => intval($resParams['height']), 'provider' => $resParams['provider_name']);
         } else {
             $output['error'] .= '[FVID404] ' . GetMessage('HTMLED_VIDEO_NOT_FOUND') . ";\n";
         }
     }
     return $output;
 }
Esempio n. 29
0
 public static function Decline($callId, $send = true)
 {
     $res = VI\CallTable::getList(array('select' => array('ID', 'CALL_ID', 'USER_ID', 'TRANSFER_USER_ID', 'ACCESS_URL'), 'filter' => array('=CALL_ID' => $callId)));
     $call = $res->fetch();
     if (!$call) {
         return false;
     }
     VI\CallTable::update($call['ID'], array('TRANSFER_USER_ID' => 0));
     if ($send) {
         $command['COMMAND'] = 'declineTransfer';
         $command['OPERATOR_ID'] = $call['USER_ID'];
         $http = new \Bitrix\Main\Web\HttpClient();
         $http->waitResponse(false);
         $http->post($call['ACCESS_URL'], json_encode($command));
     }
     self::SendPullEvent(array('COMMAND' => 'declineTransfer', 'USER_ID' => $call['USER_ID'], 'CALL_ID' => $call['CALL_ID']));
     self::SendPullEvent(array('COMMAND' => 'timeoutTransfer', 'USER_ID' => $call['TRANSFER_USER_ID'], 'CALL_ID' => $call['CALL_ID']));
     return true;
 }
Esempio n. 30
0
 public static function SendCommand($params)
 {
     // TODO check $params
     $res = VI\CallTable::getList(array('select' => array('ID', 'ACCESS_URL'), 'filter' => array('=CALL_ID' => $params['CALL_ID'])));
     $call = $res->fetch();
     if (!$call) {
         return false;
     }
     global $USER;
     $answer['COMMAND'] = $params['COMMAND'];
     $answer['OPERATOR_ID'] = $params['OPERATOR_ID'] ? $params['OPERATOR_ID'] : $USER->GetId();
     if ($params['COMMAND'] == CVoxImplantIncoming::RULE_WAIT) {
     } else {
         if ($params['COMMAND'] == CVoxImplantIncoming::RULE_QUEUE) {
         } else {
             if ($params['COMMAND'] == CVoxImplantIncoming::RULE_PSTN) {
                 $answer['PHONE_NUMBER'] = '';
             } else {
                 if ($params['COMMAND'] == CVoxImplantIncoming::RULE_USER) {
                     $answer['USER_ID'] = intval($params['USER_ID']);
                 } else {
                     if ($params['COMMAND'] == CVoxImplantIncoming::RULE_VOICEMAIL) {
                         $answer['USER_ID'] = intval($params['USER_ID']);
                     } else {
                         $answer['COMMAND'] = CVoxImplantIncoming::RULE_HUNGUP;
                     }
                 }
             }
         }
     }
     $http = new \Bitrix\Main\Web\HttpClient();
     $http->waitResponse(false);
     $http->post($call['ACCESS_URL'], json_encode($answer));
     return true;
 }