private static function post($url, $data) { $http = new \Bitrix\Main\Web\HttpClient(); $response = $http->post($url, $data); $result = json_decode($response, true); return $result; }
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; }
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; }
/** * 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; }
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; }
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); }
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; }
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; }
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; }
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; }
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; }
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; }
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); }
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; }
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; }
} ?> </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"] . " — <b>" . $res["price"] . "</b>"; } } else { foreach ($res["toBuy"] as $v) {
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; }
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; }
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); }
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); } } } } }
$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 . "&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&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]["#"];
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; }
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; }
/** * @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; }
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); }
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); }
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; }
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; }
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; }
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; }