Example #1
1
function HTTP_Send($Target, $Settings, $Get = array(), $Post = array(), $Addins = array())
{
    /******************************************************************************/
    $__args_types = array('string', 'array', 'array', 'string,array', 'array');
    #-------------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /******************************************************************************/
    $Default = array('Protocol' => 'tcp', 'Address' => 'localhost', 'Port' => 8080, 'Host' => 'localhost', 'Basic' => '', 'Charset' => 'UTF-8', 'Hidden' => '', 'IsLogging' => TRUE);
    #-------------------------------------------------------------------------------
    Array_Union($Default, $Settings);
    #-------------------------------------------------------------------------------
    $IsLogging = (bool) $Default['IsLogging'];
    #-------------------------------------------------------------------------------
    $Tmp = System_Element('tmp');
    if (Is_Error($Tmp)) {
        return ERROR | @Trigger_Error('[HTTP_Send]: не удалось определить путь временной директории');
    }
    #-------------------------------------------------------------------------------
    $Config = Config();
    #-------------------------------------------------------------------------------
    $Address = $Default['Address'];
    #-------------------------------------------------------------------------------
    Debug(SPrintF('[HTTP_Send]: соединяемся с (%s:%u)', $Address, $Default['Port']));
    #-------------------------------------------------------------------------------
    # https://bugs.php.net/bug.php?id=52913
    # пришлось заменить: $Address -> $Default['Host']
    $Socket = @FsockOpen(SPrintF('%s://%s', $Protocol = $Default['Protocol'], $Default['Host']), $Port = $Default['Port'], $nError, $sError, $Config['Other']['Libs']['HTTP']['SocketTimeout']);
    if (!Is_Resource($Socket)) {
        #-------------------------------------------------------------------------------
        $IsWrite = IO_Write(SPrintF('%s/logs/http-send.log', $Tmp), SPrintF("%s://%s:%u ошибка соединения\n\n", $Protocol, $Address, $Port));
        if (Is_Error($IsWrite)) {
            return ERROR | @Trigger_Error('[HTTP_Send]: не удалось записать данные в лог файл');
        }
        #-------------------------------------------------------------------------------
        return ERROR | @Trigger_Error('[HTTP_Send]: не удалось соединиться с удаленным хостом');
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    # added by lissyara, 2012-01-04 in 08:42:54 MSK, for JBS-130
    Stream_Set_TimeOut($Socket, $Config['Other']['Libs']['HTTP']['StreamTimeout']);
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    $Charset = $Default['Charset'];
    #-------------------------------------------------------------------------------
    $Method = Count($Post) > 0 ? 'POST' : 'GET';
    #-------------------------------------------------------------------------------
    $Hidden = $Default['Hidden'];
    #-------------------------------------------------------------------------------
    if (Count($Get)) {
        $Target .= SPrintF('?%s', HTTP_Query($Get, $Charset, $Hidden, $IsLogging));
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    $Headers[] = SPrintF('%s %s HTTP/1.0', $Method, $Target);
    #-------------------------------------------------------------------------------
    $Headers[] = SPrintF('Host: %s', $Default['Host']);
    #-------------------------------------------------------------------------------
    $Headers[] = 'Connection: close';
    #-------------------------------------------------------------------------------
    $Headers = Array_Merge($Headers, $Addins);
    #-------------------------------------------------------------------------------
    if ($Basic = $Default['Basic']) {
        #-------------------------------------------------------------------------------
        $Basic = Base64_Encode($Basic);
        #-------------------------------------------------------------------------------
        $Headers[] = SPrintF('Authorization: Basic %s', $Basic);
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    $Body = '';
    #-------------------------------------------------------------------------------
    if ($Post) {
        #-------------------------------------------------------------------------------
        if (Is_Array($Post)) {
            #-------------------------------------------------------------------------------
            if (Count($Post) > 0) {
                #-------------------------------------------------------------------------------
                $Headers[] = 'Content-Type: application/x-www-form-urlencoded';
                #-------------------------------------------------------------------------------
                $Body = HTTP_Query($Post, $Charset, $Hidden, $IsLogging);
                #-------------------------------------------------------------------------------
            }
            #-------------------------------------------------------------------------------
        } else {
            #-------------------------------------------------------------------------------
            $Body = Mb_Convert_Encoding($Post, $Charset);
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    if ($Length = MB_StrLen($Body, 'ASCII')) {
        $Headers[] = SPrintF('Content-Length: %u', $Length);
    }
    #-------------------------------------------------------------------------------
    $Query = SPrintF("%s\r\n\r\n%s", Implode("\r\n", $Headers), $Body);
    #-------------------------------------------------------------------------------
    Debug(SPrintF("[HTTP_Send]: делаем запрос:\n%s", $Query));
    #-------------------------------------------------------------------------------
    if (!@Fwrite($Socket, $Query)) {
        return ERROR | @Trigger_Error('[HTTP_Send]: не удалось записать в сокет');
    }
    #-------------------------------------------------------------------------------
    # added by lissyara, 2014-01-28 in 14:19:08 MSK, for JBS-130
    Stream_Set_TimeOut($Socket, $Config['Other']['Libs']['HTTP']['StreamTimeout']);
    #-------------------------------------------------------------------------------
    $Receive = '';
    #-------------------------------------------------------------------------------
    do {
        #-------------------------------------------------------------------------------
        $Bytes = @FGets($Socket);
        #-------------------------------------------------------------------------------
        $Receive .= $Bytes;
        #-------------------------------------------------------------------------------
    } while ($Bytes);
    #-------------------------------------------------------------------------------
    @Fclose($Socket);
    #-------------------------------------------------------------------------------
    if (Preg_Match('/Content-Type:[\\sa-zA-Z0-9\\/\\-\\;]+charset\\=([a-zA-Z0-9\\-]+)/i', $Receive, $Matches)) {
        #-------------------------------------------------------------------------------
        $Receive = Mb_Convert_Encoding($Receive, 'UTF-8', Next($Matches));
        #-------------------------------------------------------------------------------
    } else {
        #-------------------------------------------------------------------------------
        $Receive = Mb_Convert_Encoding($Receive, 'UTF-8', $Default['Charset']);
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    Debug(SPrintF("[HTTP_Send]: получили ответ:\n%s", $Receive));
    #-------------------------------------------------------------------------------
    $Log = SPrintF("%s://%s:%u [%s]\n%s\n%s\n\n", $Protocol, $Address, $Port, Date('r'), $Query, $Receive);
    #-------------------------------------------------------------------------------
    if ($Hidden) {
        #-------------------------------------------------------------------------------
        if (!Is_Array($Hidden)) {
            $Hidden = array($Hidden);
        }
        #-------------------------------------------------------------------------------
        foreach ($Hidden as $Pattern) {
            #-------------------------------------------------------------------------------
            $Pattern = UrlEncode(Mb_Convert_Encoding($Pattern, $Charset));
            #-------------------------------------------------------------------------------
            $Log = Str_Replace($Pattern, SPrintF('[HIDDEN=(%u)]', StrLen($Pattern)), $Log);
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    if ($Default['IsLogging']) {
        #-------------------------------------------------------------------------------
        $IsWrite = IO_Write(SPrintF('%s/logs/http-send.log', $Tmp), $Log);
        if (Is_Error($IsWrite)) {
            return ERROR | @Trigger_Error('[HTTP_Send]: не удалось записать данные в лог файл');
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    $Heads = $Body = array();
    #-------------------------------------------------------------------------------
    foreach (Explode("\r\n\r\n", $Receive) as $Chunk) {
        #-------------------------------------------------------------------------------
        if (Preg_Match('#^HTTP/1\\.*#', $Chunk)) {
            #-------------------------------------------------------------------------------
            $Heads[] = $Chunk;
            #-------------------------------------------------------------------------------
        } else {
            #-------------------------------------------------------------------------------
            $Body[] = $Chunk;
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
    if (SizeOf($Body) < 1) {
        return ERROR | @Trigger_Error('[HTTP_Send]: ответ от сервера не верен');
    }
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    return array('Heads' => Implode("\r\n\r\n", $Heads), 'Body' => Implode("\r\n\r\n", $Body));
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    #$Receive = Preg_Split('/\r\n\r\n/',$Receive,PREG_SPLIT_DELIM_CAPTURE);
    #-------------------------------------------------------------------------------
    #if(Count($Receive) < 2)
    #	return ERROR | @Trigger_Error('[HTTP_Send]: ответ от сервера не верен');
    #-------------------------------------------------------------------------------
    #$Receive = Array_Combine(Array('Heads','Body'),$Receive);
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
    #return $Receive;
    #-------------------------------------------------------------------------------
    #-------------------------------------------------------------------------------
}
Example #2
0
function Crypt_Encode($String, $Key = HOST_ID)
{
    /****************************************************************************/
    $__args_types = array('string', 'string');
    #-----------------------------------------------------------------------------
    $__args__ = Func_Get_Args();
    eval(FUNCTION_INIT);
    /****************************************************************************/
    if (Extension_Loaded('mcrypt')) {
        #---------------------------------------------------------------------------
        $Module =& Link_Get('Crypt');
        #---------------------------------------------------------------------------
        if (!Is_Resource($Module)) {
            #-------------------------------------------------------------------------
            $Module = @MCrypt_Module_Open(MCRYPT_DES, '', MCRYPT_MODE_ECB, '');
            if (!Is_Resource($Module)) {
                return ERROR | @Trigger_Error('[Crypt_Encode]: не удалось открыть дескриптор');
            }
            #-------------------------------------------------------------------------
            $Iv = @MCrypt_Create_Iv(MCrypt_Enc_Get_Iv_Size($Module), MCRYPT_RAND);
            if (!$Iv) {
                return ERROR | @Trigger_Error('[Crypt_Encode]: не удалось создать IV');
            }
            #-------------------------------------------------------------------------
            $Key = SubStr($Key, 0, MCrypt_Enc_Get_Key_Size($Module));
            #Debug(SPrintF("[system/libs/auto/Crypt]: Encode Key = %s",$Key));
            #-------------------------------------------------------------------------
            $IsInit = @MCrypt_Generic_Init($Module, $Key, $Iv);
            if (!Is_Integer($IsInit)) {
                return ERROR | @Trigger_Error('[Crypt_Encode]: не удалось инициализовать модуль шифрования');
            }
        }
        #---------------------------------------------------------------------------
        $String = @MCrypt_Generic($Module, $String);
        if (!Is_String($String)) {
            return ERROR | @Trigger_Error('[Crypt_Encode]: не удалось зашифровать данные');
        }
        #---------------------------------------------------------------------------
    }
    #-----------------------------------------------------------------------------
    return Base64_Encode($String);
}
Example #3
0
     return ERROR | @Trigger_Error(500);
 case 'exception':
     #-------------------------------------------------------------------------------
     $Window = JSON_Encode(array('Url' => '/InvoiceMake', 'Args' => array('PaymentSystemID' => $PaymentSystemID, 'StepID' => 2)));
     #-------------------------------------------------------------------------------
     $ContractsTypesIDs = array();
     #-------------------------------------------------------------------------------
     foreach ($ContractsTypes as $ContractTypeID => $IsActive) {
         #-------------------------------------------------------------------------------
         if ($IsActive) {
             $ContractsTypesIDs[] = $ContractTypeID;
         }
         #-------------------------------------------------------------------------------
     }
     #-------------------------------------------------------------------------------
     $Comp = Comp_Load('www/ContractMake', array('TypesIDs' => Implode(',', $ContractsTypesIDs), 'IsSimple' => TRUE, 'Window' => Base64_Encode($Window)));
     if (Is_Error($Comp)) {
         return ERROR | @Trigger_Error(500);
     }
     #-------------------------------------------------------------------------------
     return $Comp;
     #-------------------------------------------------------------------------------
 #-------------------------------------------------------------------------------
 case 'array':
     #-------------------------------------------------------------------------------
     $Table[] = array('Платежная система', $PaymentSystem['Name']);
     #-------------------------------------------------------------------------------
     $Options = array();
     #-------------------------------------------------------------------------------
     foreach ($Contracts as $Contract) {
         #-------------------------------------------------------------------------------
Example #4
0
     }
     #-----------------------------------------------------------------------
     $Options[$Contract['ID']] = SPrintF('#%s / %s', $Number, $Customer);
     #-------------------------------------------------------------------------------
 }
 #-------------------------------------------------------------------------
 $Comp = Comp_Load('Form/Select', array('name' => 'ContractID'), $Options, $ContractID);
 if (Is_Error($Comp)) {
     return ERROR | @Trigger_Error(500);
 }
 #-------------------------------------------------------------------------
 $NoBody = new Tag('NOBODY', $Comp);
 #-------------------------------------------------------------------------
 $Window = JSON_Encode(array('Url' => '/VPSOrder', 'Args' => array()));
 #-------------------------------------------------------------------------
 $A = new Tag('A', array('href' => SPrintF("javascript:ShowWindow('/ContractMake',{Window:'%s'});", Base64_Encode($Window))), '[новый]');
 #-------------------------------------------------------------------------
 $NoBody->AddChild($A);
 #-------------------------------------------------------------------------
 $Table = array(array('Базовый договор', $NoBody));
 #-------------------------------------------------------------------------
 $UniqID = UniqID('VPSSchemes');
 #-------------------------------------------------------------------------
 $Comp = Comp_Load('Services/Schemes', 'VPSSchemes', $__USER['ID'], array('Name', 'ServersGroupID'), $UniqID);
 if (Is_Error($Comp)) {
     return ERROR | @Trigger_Error(500);
 }
 #-------------------------------------------------------------------------
 $Columns = array('ID', 'Name', 'ServersGroupID', 'Comment', 'CostMonth', 'CostInstall', 'disklimit', 'ncpu', 'cpu', 'mem', '(SELECT `Name` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupName`', '(SELECT `Comment` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupComment`', '(SELECT `SortID` FROM `ServersGroups` WHERE `ServersGroups`.`ID` = `ServersGroupID`) as `ServersGroupSortID`');
 #-------------------------------------------------------------------------
 $VPSSchemes = DB_Select($UniqID, $Columns, array('SortOn' => array('ServersGroupSortID', 'SortID'), 'Where' => "`IsActive` = 'yes'"));
 switch ($ServiceField['TypeID']) {
     case 'File':
         #-------------------------------------------------------------------------------
         $Upload = Upload_Get($FieldID);
         #-------------------------------------------------------------------------------
         switch (ValueOf($Upload)) {
             case 'error':
                 return ERROR | @Trigger_Error(500);
             case 'exception':
                 $Value = NULL;
                 break;
             case 'array':
                 #-------------------------------------------------------------------------------
                 $UOrderField['FileName'] = $Upload['Name'];
                 #-------------------------------------------------------------------------------
                 $Value = Base64_Encode($Upload['Data']);
                 #-------------------------------------------------------------------------------
                 break;
                 #-------------------------------------------------------------------------------
             #-------------------------------------------------------------------------------
             default:
                 return ERROR | @Trigger_Error(101);
         }
         #-------------------------------------------------------------------------------
         break;
         #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     case 'Select':
         #-------------------------------------------------------------------------------
         $Options = Explode("\n", $ServiceField['Options']);
         #-------------------------------------------------------------------------------
Example #6
0
 public function ReceiveMessage($senderJId, array $arMessage, CXMPPClient $senderClient)
 {
     if (!$senderClient->IsAuthenticated()) {
         return false;
     }
     if (strlen($senderJId) <= 0) {
         return false;
     }
     if (!array_key_exists("iq", $arMessage) || !array_key_exists("vcard", $arMessage["iq"]) || $arMessage["iq"]["vcard"]["."]["xmlns"] != "vcard-temp") {
         return false;
     }
     $type = "";
     if (array_key_exists("type", $arMessage["iq"]["."])) {
         $type = $arMessage["iq"]["."]["type"];
     }
     if ($type == "get") {
         $to = $arMessage["iq"]["."]["to"];
         $arUser = CXMPPUtility::GetUserByJId($to);
         if ($arUser) {
             $photoType = "";
             $photo = "";
             if (intval($arUser["PERSONAL_PHOTO"]) > 0) {
                 $imageFile = CFile::GetFileArray($arUser["PERSONAL_PHOTO"]);
                 if ($imageFile !== false) {
                     $arFileTmp = CFile::ResizeImageGet($imageFile, array("width" => 300, "height" => 300), BX_RESIZE_IMAGE_PROPORTIONAL, false);
                     if (is_array($arFileTmp)) {
                         $arFileTmp = CFile::MakeFileArray($arFileTmp["src"]);
                     }
                     $photoType = $imageFile["CONTENT_TYPE"];
                     if (File_Exists($arFileTmp["tmp_name"])) {
                         $photo = File_Get_Contents($arFileTmp["tmp_name"]);
                         $photo = Base64_Encode($photo);
                     }
                 }
             }
             if (empty($photo)) {
                 $photoType = "image/gif";
                 if (File_Exists($_SERVER["DOCUMENT_ROOT"] . "/bitrix/images/socialnetwork/nopic_user_150.gif")) {
                     $photo = File_Get_Contents($_SERVER["DOCUMENT_ROOT"] . "/bitrix/images/socialnetwork/nopic_user_150.gif");
                     $photo = Base64_Encode($photo);
                 }
             }
             $arResult = array("iq" => array("." => array("type" => "result", "from" => $to, "to" => $senderJId, "id" => $arMessage['iq']['.']['id']), "vCard" => array("." => array("xmlns" => "vcard-temp", "prodid" => '-//HandGen//NONSGML vGen v1.0//EN', "version" => '2.0'), "FN" => array("#" => CUser::FormatName($this->nameTemplate, $arUser)), "N" => array("FAMILY" => array("#" => $arUser["LAST_NAME"]), "GIVEN" => array("#" => $arUser["NAME"]), "MIDDLE" => array("#" => $arUser["SECOND_NAME"])), "NICKNAME" => array("#" => CUser::FormatName($this->nameTemplate, $arUser)), "BDAY" => array("#" => ConvertDateTime($arUser["PERSONAL_BIRTHDAY"], "YYYY-MM-DD", SITE_ID)), "ORG" => array("ORGNAME" => array("#" => $arUser["WORK_COMPANY"]), "ORGUNIT" => array("#" => $arUser["WORK_DEPARTMENT"])), "TITLE" => array("#" => $arUser["WORK_POSITION"]), "EMAIL" => array("INTERNET" => array("#" => ""), "PREF" => array("#" => ""), "USERID" => array("#" => $arUser["EMAIL"])), "JABBERID" => array("#" => $to), "PHOTO" => array("TYPE" => array("#" => $photoType), "BINVAL" => array("#" => $photo)))));
             if (strlen($arUser["WORK_FAX"]) > 0) {
                 $arResult["iq"]["vCard"]["TEL"][] = array("WORK" => array("#" => ""), "FAX" => array("#" => ""), "NUMBER" => array("#" => $arUser["WORK_FAX"]));
             }
             if (strlen($arUser["PERSONAL_MOBILE"]) > 0) {
                 $arResult["iq"]["vCard"]["TEL"][] = array("HOME" => array("#" => ""), "CELL" => array("#" => ""), "NUMBER" => array("#" => $arUser["PERSONAL_MOBILE"]));
             }
             if (strlen($arUser["WORK_PHONE"]) > 0) {
                 $arResult["iq"]["vCard"]["TEL"][] = array("WORK" => array("#" => ""), "VOICE" => array("#" => ""), "NUMBER" => array("#" => $arUser["WORK_PHONE"]));
             }
             if (strlen($arUser["PERSONAL_PHONE"]) > 0) {
                 $arResult["iq"]["vCard"]["TEL"][] = array("HOME" => array("#" => ""), "VOICE" => array("#" => ""), "NUMBER" => array("#" => $arUser["PERSONAL_PHONE"]));
             }
             if (strlen($arUser["PERSONAL_FAX"]) > 0) {
                 $arResult["iq"]["vCard"]["TEL"][] = array("HOME" => array("#" => ""), "FAX" => array("#" => ""), "NUMBER" => array("#" => $arUser["PERSONAL_FAX"]));
             }
             if (strlen($arUser["WORK_STREET"]) > 0 || strlen($arUser["WORK_CITY"]) > 0 || strlen($arUser["WORK_COUNTRY"]) > 0) {
                 $arResult["iq"]["vCard"]["ADR"][] = array("WORK" => array("#" => ""), "EXTADD" => array("#" => ""), "STREET" => array("#" => $arUser["WORK_STREET"]), "LOCALITY" => array("#" => $arUser["WORK_CITY"]), "REGION" => array("#" => $arUser["WORK_STATE"]), "PCODE" => array("#" => $arUser["WORK_ZIP"]), "CTRY" => array("#" => GetCountryByID($arUser["WORK_COUNTRY"])));
             }
             if (strlen($arUser["PERSONAL_STREET"]) > 0 || strlen($arUser["PERSONAL_CITY"]) > 0 || strlen($arUser["PERSONAL_COUNTRY"]) > 0) {
                 $arResult["iq"]["vCard"]["ADR"][] = array("HOME" => array("#" => ""), "EXTADD" => array("#" => ""), "STREET" => array("#" => $arUser["PERSONAL_STREET"]), "LOCALITY" => array("#" => $arUser["PERSONAL_CITY"]), "REGION" => array("#" => $arUser["PERSONAL_STATE"]), "PCODE" => array("#" => $arUser["PERSONAL_ZIP"]), "CTRY" => array("#" => GetCountryByID($arUser["PERSONAL_COUNTRY"])));
             }
             if ($senderJId != $to) {
                 $arResult["iq"]["."]["from"] = $to;
             }
             //print_r($arResult);echo "\n*****************************************\n";
         } else {
             $arResult = array("iq" => array("." => array("type" => "error", "to" => $senderJId, "id" => $arMessage['iq']['.']['id']), "vCard" => array("." => array("xmlns" => "vcard-temp")), "error" => array("." => array("type" => "cancel"), "item-not-found" => array("." => array("xmlns" => "urn:ietf:params:xml:ns:xmpp-stanzas")))));
             if ($senderJId != $to) {
                 $arResult["iq"]["."]["from"] = $to;
             }
         }
     } elseif ($type == "set") {
         $arResult = array("iq" => array("." => array("type" => "result", "from" => $senderClient->GetClientDomain(), "id" => $arMessage['iq']['.']['id'])));
     }
     return $arResult;
 }
Example #7
0
 #-------------------------------------------------------------------------------
 $Server = DB_Select('Servers', array('*'), array('UNIQ', 'ID' => $Order['ServerID']));
 #-------------------------------------------------------------------------------
 switch (ValueOf($Server)) {
     case 'error':
         return ERROR | @Trigger_Error(500);
     case 'exception':
         break;
     case 'array':
         break;
     default:
         return ERROR | @Trigger_Error(101);
 }
 #-------------------------------------------------------------------------------
 #-------------------------------------------------------------------------------
 Exec(SPrintF('"%s" "%s" "OnCreate" "%s" "%s" "%s" 2>&1', $File, $Order['Email'], $Number, $Order['Keys'], Is_Array($Server) ? Base64_Encode(JSON_Encode($Server)) : 'server not exists'), $Out, $ReturnValue);
 #-------------------------------------------------------------------------------
 Debug(SPrintF('[comp/Tasks/ServiceCreate]: exec return code = %s, Out = %s', $ReturnValue, print_r($Out, true)));
 #-------------------------------------------------------------------------------
 if ($ReturnValue != 0) {
     return new gException('ERROR_EXECUTE_COMMAND', 'Произошла ошибка при выполнении команды назначенной статусу');
 }
 #-------------------------------------------------------------------------------
 #-------------------------------------------------------------------------------
 $Comp = Comp_Load('www/API/StatusSet', array('ModeID' => 'Orders', 'StatusID' => 'Active', 'RowsIDs' => $ServiceOrderID, 'Comment' => 'Заказ создан', 'IsNoTrigger' => TRUE));
 #-------------------------------------------------------------------------------
 switch (ValueOf($Comp)) {
     case 'error':
         return ERROR | @Trigger_Error(500);
     case 'exception':
         return ERROR | @Trigger_Error(400);
Example #8
0
            $Hash .= $v;
            #-------------------------------------------------------------------------------
        }
        #-------------------------------------------------------------------------------
    } else {
        #-------------------------------------------------------------------------------
        //Конвертация из текущей кодировки (UTF-8)
        //необходима только если кодировка магазина отлична от Windows-1251
        $value = Iconv("utf-8", "windows-1251", $value);
        #-------------------------------------------------------------------------------
        $Hash .= $value;
        #-------------------------------------------------------------------------------
    }
    #-------------------------------------------------------------------------------
}
#-------------------------------------------------------------------------------
// Формирование значения параметра WMI_SIGNATURE, путем
// вычисления отпечатка, сформированного выше сообщения,
// по алгоритму MD5 и представление его в Base64
Debug(SPrintF('[comp/Invoices/PaymentSystems/W1]: Hash = %s', $Hash));
#-------------------------------------------------------------------------------
$Send['WMI_SIGNATURE'] = Base64_Encode(Pack("H*", sha1($Hash . $Settings['Hash'])));
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# так как CSRF уже есть, удаляем её из списка полей, иначе задублируется
unset($Send['CSRF']);
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
return $Send;
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
 #Debug(SPrintF('[comp/www/CreateAndSendInvoices]: Attachments = %s',print_r($Attachments,true)));
 #-------------------------------------------------------------------------------
 # а вложений, в принципе, может и не быть. тогда слать ничё не надо - задача как раз слать счета
 if (SizeOf($Attachments) > 0 || $Settings['CreateAndSendInvoicesSendEmptyMail']) {
     #-------------------------------------------------------------------------------
     # перебираем файлы, генерим письмо
     $EmailAttachments = array();
     #-------------------------------------------------------------------------------
     foreach ($Attachments as $InvoiceID) {
         #-------------------------------------------------------------------------------
         $Comp = Comp_Load('www/InvoiceDownload', array('InvoiceID' => $InvoiceID, 'IsStamp' => TRUE, 'IsNoHeaders' => TRUE));
         if (Is_Error($Comp)) {
             return ERROR | @Trigger_Error(500);
         }
         #-------------------------------------------------------------------------------
         $EmailAttachments[] = array('Name' => SPrintF('Invoice_%s.pdf', $InvoiceID), 'Size' => StrLen($Comp), 'Mime' => 'application/pdf; charset=utf-8', 'Data' => Chunk_Split(Base64_Encode($Comp)));
         #-------------------------------------------------------------------------------
     }
     #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     # а вложений, в принципе, может и не быть ...
     $msgParams = array('EmailAttachments' => SizeOf($EmailAttachments) > 0 ? $EmailAttachments : 'не определено');
     #-------------------------------------------------------------------------------
     $msg = new Message('CreateAndSendInvoices', $Order['UserID'], $msgParams);
     $IsSend = NotificationManager::sendMsg($msg);
     #-------------------------------------------------------------------------------
     switch (ValueOf($IsSend)) {
         case 'error':
             return ERROR | @Trigger_Error(500);
         case 'exception':
             return ERROR | @Trigger_Error(400);
 $Options = array();
 #---------------------------------------------------------
 foreach ($Profiles as $Profile) {
     $Options[$Profile['ID']] = $Profile['Name'];
 }
 #---------------------------------------------------------
 $Comp = Comp_Load('Form/Select', array('name' => 'ProfileID'), $Options, $ProfileID);
 if (Is_Error($Comp)) {
     return ERROR | @Trigger_Error(500);
 }
 #---------------------------------------------------------
 $NoBody = new Tag('NOBODY', $Comp);
 #---------------------------------------------------------
 $Window = JSON_Encode(array('Url' => '/DomainSelectOwner', 'Args' => array('DomainOrderID' => $DomainOrder['ID'], 'StepID' => 1, 'OwnerTypeID' => 'Profile')));
 #---------------------------------------------------------
 $A = new Tag('A', array('href' => SPrintF("javascript:ShowWindow('/ProfileEdit',{Window:'%s',TemplatesIDs:'Natural,Juridical'});", Base64_Encode($Window))), '[новый]');
 #---------------------------------------------------------
 $NoBody->AddChild($A);
 #---------------------------------------------------------
 $Table[] = array('Использовать профиль', $NoBody);
 #---------------------------------------------------------
 #---------------------------------------------------------
 $Comp = Comp_Load('Form/Input', array('name' => 'Agree', 'type' => 'checkbox', 'value' => 'yes', 'prompt' => 'Подверждаю своё согласие на передачу моих персональных данных вышестоящему регистратору доменов'));
 if (Is_Error($Comp)) {
     return ERROR | @Trigger_Error(500);
 }
 #-------------------------------------------------------------------------------
 $Table[] = array('Согласен на передачу моих персональных данных регистратору', $Comp);
 #---------------------------------------------------------
 #---------------------------------------------------------
 break 2;
Example #11
0
 $TargetUserID = (int) $Message['TargetUserID'];
 $TargetGroupID = (int) $Message['TargetGroupID'];
 #-------------------------------------------------------------------------------
 $Upload = Upload_Get('TicketMessageFile', $Message['FileName']);
 #-------------------------------------------------------------------------------
 switch (ValueOf($Upload)) {
     case 'error':
         return ERROR | @Trigger_Error(500);
     case 'exception':
         # No more...
         break;
     case 'array':
         #-------------------------------------------------------------------------------
         $Data = GetUploadedFile('EdesksMessages', $Message['ID']);
         #-------------------------------------------------------------------------------
         $EmailAttachments = array(array('Name' => $Upload['Name'], 'Size' => GetUploadedFileSize('EdesksMessages', $Message['ID']), 'Mime' => GetFileMimeType('EdesksMessages', $Message['ID']), 'Data' => Chunk_Split(Base64_Encode($Data['Data']))));
         #-------------------------------------------------------------------------------
         break;
         #-------------------------------------------------------------------------------
     #-------------------------------------------------------------------------------
     default:
         return ERROR | @Trigger_Error(101);
 }
 #-------------------------------------------------------------------------------
 #-------------------------------------------------------------------------------
 if ($TargetGroupID != 1) {
     #-------------------------------------------------------------------------------
     $IsOwner = $Message['UserID'] == ($OwnerID = $Message['OwnerID']);
     #-------------------------------------------------------------------------------
     if ($IsOwner) {
         #-------------------------------------------------------------------------------
Example #12
0
<?php

//------------------------------------------------------------------------------
$HTML = <<<EOD
<FORM action="http://domain/UserRegister" method="POST">
 <INPUT type="hidden" name="Eval" value="%s" />
 <INPUT type="submit" value="Go!" />
</FORM>
EOD;
//------------------------------------------------------------------------------
$DomainName = 'testdomain';
$DomainSchemeID = 1;
//------------------------------------------------------------------------------
$Eval = SPrintF("ShowWindow('/DomainOrder',[{Name:'DomainName',Value:'%s'},{Name:'DomainSchemeID',Value:%u}]);", $DomainName, $DomainSchemeID);
//------------------------------------------------------------------------------
echo SPrintF($HTML, Base64_Encode($Eval));
//------------------------------------------------------------------------------
Example #13
0
        $Messages = new Tag('Messages');
        #---------------------------------------------------------------------------
        foreach ($dMessages as $dMessage) {
            #-------------------------------------------------------------------------
            foreach (Array_Keys($dMessage) as $ColumnID) {
                #-----------------------------------------------------------------------
                $Column =& $dMessage[$ColumnID];
                #-----------------------------------------------------------------------
                $Column = Mb_Convert_Encoding($Column, 'UTF-8', $Charset);
            }
            #-------------------------------------------------------------------------
            $Message = new Tag('Message');
            #-------------------------------------------------------------------------
            $Message->AddChild(new Tag('CreateDate', $dMessage['thedate']));
            $Message->AddChild(new Tag('IsSupport', $dMessage['thetype'] != 'CUSTOMER' ? 1 : 0));
            $Message->AddChild(new Tag('Content', Base64_Encode($dMessage['comments'])));
            #-------------------------------------------------------------------------
            $Messages->AddChild($Message);
        }
        #---------------------------------------------------------------------------
        $Ticket->AddChild($Messages);
        #---------------------------------------------------------------------------
        $Tickets->AddChild($Ticket);
    }
    #-----------------------------------------------------------------------------
    $User->AddChild($Tickets);
    #-----------------------------------------------------------------------------
    $Users->AddChild($User);
}
#-------------------------------------------------------------------------------
$Dump = $Users->ToXMLString();
Example #14
0
     if ($Window) {
         $Args['Window'] = $Window;
     }
     #-------------------------------------------------------------------------
     $Window = JSON_Encode(array('Url' => '/ContractMake', 'Args' => $Args));
     #-------------------------------------------------------------------------
     $Params = array('TemplateID' => $TypeID, 'Window' => Base64_Encode($Window));
     #-------------------------------------------------------------------------
     if ($IsSimple) {
         #-----------------------------------------------------------------------
         $Simple = @JSON_Encode($Type['Simple']);
         if (!$Simple) {
             return ERROR | @Trigger_Error(500);
         }
         #-----------------------------------------------------------------------
         $Params['Simple'] = Base64_Encode($Simple);
     }
     #-------------------------------------------------------------------------
     $Comp = Comp_Load('www/ProfileEdit', $Params);
     if (Is_Error($Comp)) {
         return ERROR | @Trigger_Error(500);
     }
     #-------------------------------------------------------------------------
     return $Comp;
 case 'array':
     #-------------------------------------------------------------------------
     if ($ProfileID) {
         $DOM->AddAttribs('Body', array('onload' => 'ContractMake();'));
     }
     #-------------------------------------------------------------------------
     $Script = new Tag('SCRIPT', array('type' => 'text/javascript', 'src' => 'SRC:{Js/Pages/ContractMake.js}'));
Example #15
0
#-------------------------------------------------------------------------------
$Config = Config();
#-------------------------------------------------------------------------------
$Settings = $Config['Invoices']['PaymentSystems']['W1'];
#-------------------------------------------------------------------------------
UkSort($Args, "strcasecmp");
#-------------------------------------------------------------------------------
$Values = "";
#-------------------------------------------------------------------------------
foreach ($Args as $Key => $Value) {
    if ($Key != "WMI_SIGNATURE") {
        $Values .= $Value;
    }
}
#-------------------------------------------------------------------------------
if (Base64_Encode(Pack("H*", sha1($Values . $Settings['Hash']))) != $Args['WMI_SIGNATURE']) {
    return ERROR | @Trigger_Error('[comp/www/Merchant/W1]: проверка подлинности завершилась не удачей');
}
#-------------------------------------------------------------------------------
$Invoice = DB_Select('Invoices', array('ID', 'Summ'), array('UNIQ', 'ID' => $OrderID));
#-------------------------------------------------------------------------------
switch (ValueOf($Invoice)) {
    case 'error':
        return ERROR | @Trigger_Error(500);
    case 'exception':
        return ERROR | @Trigger_Error(400);
    case 'array':
        break;
    default:
        return ERROR | @Trigger_Error(101);
}