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; #------------------------------------------------------------------------------- #------------------------------------------------------------------------------- }
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); }
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) { #-------------------------------------------------------------------------------
} #----------------------------------------------------------------------- $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']); #-------------------------------------------------------------------------------
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; }
#------------------------------------------------------------------------------- $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);
$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;
$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) { #-------------------------------------------------------------------------------
<?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)); //------------------------------------------------------------------------------
$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();
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}'));
#------------------------------------------------------------------------------- $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); }