if (!CModule::IncludeModule('sale')) { echo CUtil::PhpToJSObject(array('ERROR' => 'MODULE SALE NOT INCLUDED!')); die; } $paySystemID = isset($_POST['PAY_SYSTEM_ID']) ? intval($_POST['PAY_SYSTEM_ID']) : 0; if ($paySystemID <= 0) { echo CUtil::PhpToJSObject(array('ERROR' => 'PAY_SYSTEM_ID ID NOT FOUND!')); die; } $dbResult = CCrmQuote::GetList(array(), array('ID' => $quoteID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('*', 'UF_*')); $quoteFields = is_object($dbResult) ? $dbResult->Fetch() : null; if (!is_array($quoteFields)) { echo CUtil::PhpToJSObject(array('ERROR' => 'QUOTE IS NOT FOUND!')); die; } $paymentData = CCrmQuote::PrepareSalePaymentData($quoteFields); if (!is_array($paymentData)) { echo CUtil::PhpToJSObject(array('ERROR' => 'COULD NOT PREPARE PAYMENT DATA!')); die; } $dbPaySysAction = CSalePaySystemAction::GetList(array(), array('PAY_SYSTEM_ID' => $paySystemID, 'PERSON_TYPE_ID' => $quoteFields['PERSON_TYPE_ID']), false, false, array('ACTION_FILE', 'PARAMS', 'ENCODING')); $paySysActionFields = $dbPaySysAction->Fetch(); if (!is_array($paySysActionFields)) { echo CUtil::PhpToJSObject(array('ERROR' => 'COULD NOT FIND PAYMENT SYSTEM ACTION!')); die; } $actionFilePath = isset($paySysActionFields['ACTION_FILE']) ? $paySysActionFields['ACTION_FILE'] : ""; if (!is_string($actionFilePath) || $actionFilePath === '') { echo CUtil::PhpToJSObject(array('ERROR' => 'COULD NOT FIND PAYMENT SYSTEM ACTION FILE!')); die; }
} if (!CModule::IncludeModule('sale')) { ShowError(GetMessage('CRM_MODULE_NOT_INSTALLED_SALE')); return; } $CCrmQuote = new CCrmQuote(); if ($CCrmQuote->cPerms->HavePerm('QUOTE', BX_CRM_PERM_NONE, 'READ')) { ShowError(GetMessage('CRM_PERMISSION_DENIED')); return; } global $APPLICATION; $APPLICATION->RestartBuffer(); $quoteID = intval($arParams["QUOTE_ID"]); $dbResult = CCrmQuote::GetList(array(), array('ID' => $quoteID, 'CHECK_PERMISSIONS' => 'N'), false, false, array('*', 'UF_*')); $arQuote = is_object($dbResult) ? $dbResult->Fetch() : null; $paymentData = is_array($arQuote) ? CCrmQuote::PrepareSalePaymentData($arQuote) : null; $paySystemID = isset($_REQUEST['PAY_SYSTEM_ID']) ? intval($_REQUEST['PAY_SYSTEM_ID']) : 0; if (is_array($paymentData) && $paySystemID > 0) { $dbPaySysAction = CSalePaySystemAction::GetList(array(), array("PAY_SYSTEM_ID" => $paySystemID, "PERSON_TYPE_ID" => $arQuote["PERSON_TYPE_ID"]), false, false, array("ACTION_FILE", "PARAMS", "ENCODING")); if ($arPaySysAction = $dbPaySysAction->Fetch()) { if (strlen($arPaySysAction["ACTION_FILE"]) > 0) { CSalePaySystemAction::InitParamArrays($paymentData["ORDER"], 0, $arPaySysAction["PARAMS"], array("PROPERTIES" => $paymentData["PROPERTIES"], "BASKET_ITEMS" => $paymentData["CART_ITEMS"], "TAX_LIST" => $paymentData["TAX_LIST"])); $pathToAction = $_SERVER["DOCUMENT_ROOT"] . $arPaySysAction["ACTION_FILE"]; $pathToAction = str_replace("\\", "/", $pathToAction); while (substr($pathToAction, strlen($pathToAction) - 1, 1) == "/") { $pathToAction = substr($pathToAction, 0, strlen($pathToAction) - 1); } if (file_exists($pathToAction)) { if (is_dir($pathToAction)) { if (file_exists($pathToAction . "/payment.php")) { include $pathToAction . "/payment.php";