Your IP : 3.135.218.210


Current Path : /home/bitrix/ext_www/crm.klimatlend.ua/bitrix/modules/sale/payment/assist/
Upload File :
Current File : /home/bitrix/ext_www/crm.klimatlend.ua/bitrix/modules/sale/payment/assist/result.php

<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
include(GetLangFileName(dirname(__FILE__)."/", "/assist.php"));

$assist_Shop_IDP = CSalePaySystemAction::GetParamValue("SHOP_IDP");
$assist_LOGIN = CSalePaySystemAction::GetParamValue("SHOP_LOGIN");
$assist_PASSWORD = CSalePaySystemAction::GetParamValue("SHOP_PASSWORD");
$password = CSalePaySystemAction::GetParamValue("SHOP_SECRET_WORLD");

$ORDER_ID = intval($GLOBALS["SALE_INPUT_PARAMS"]["ORDER"]["ID"]);

set_time_limit(0);

$sHost = "payments.paysecure.ru";
$sUrl = "/orderstate/orderstate.cfm";
$dtm = AddToTimeStamp(Array("MM" => -1), false);
$sVars = "Ordernumber=".$ORDER_ID."&Merchant_ID=".$assist_Shop_IDP."&login=".$assist_LOGIN."&password=".$assist_PASSWORD."&FORMAT=3&StartYear=".date('Y', $dtm)."&StartMonth=".date('n', $dtm)."&StartYDay=".date('j', $dtm)."";

$aDesc = array(
	"In Process" => array(GetMessage("SASP_IP"), GetMessage("SASPD_IP")),
	"Delayed" => array(GetMessage("SASP_D"), GetMessage("SASPD_D")),
	"Approved" => array(GetMessage("SASP_A"), GetMessage("SASPD_A")),
	"PartialApproved" => array(GetMessage("SASP_PA"), GetMessage("SASPD_PA")),
	"PartialDelayed" => array(GetMessage("SASP_PD"), GetMessage("SASPD_PD")),
	"Canceled" => array(GetMessage("SASP_C"), GetMessage("SASPD_C")),
	"PartialCanceled" => array(GetMessage("SASP_PC"), GetMessage("SASPD_PC")),
	"Declined" => array(GetMessage("SASP_DEC"), GetMessage("SASPD_DEC")),
	"Timeout" => array(GetMessage("SASP_T"), GetMessage("SASPD_T")),
);

$sResult = QueryGetData($sHost, 80, $sUrl, $sVars, $errno, $errstr, "POST");
if ($sResult <> "")
{
	require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/xml.php");
	$objXML = new CDataXML();
	$objXML->LoadString($sResult);
	$arResult = $objXML->GetArray();
	if (count($arResult)>0 && $arResult["result"]["@"]["firstcode"] == "0")
	{
		$aRes = $arResult["result"]["#"]["order"][0]["#"];
		if (intval($aRes["ordernumber"][0]["#"]) == $ORDER_ID)
		{
			$arFields = Array();
			$check = ToUpper(md5(toUpper(md5($password).md5($assist_Shop_IDP.$aRes["ordernumber"][0]["#"].$aRes["orderamount"][0]["#"].$aRes["ordercurrency"][0]["#"].$aRes["orderstate"][0]["#"]))));
			if($aRes["checkvalue"][0]["#"] == $check)
			{
				$arOrder = CSaleOrder::GetByID($ORDER_ID);
				$arFields = array(
						"PS_STATUS" => ($aRes["orderstate"][0]["#"] == "Approved"?"Y":"N"),
						"PS_STATUS_CODE" => mb_substr($aRes["orderstate"][0]["#"], 0, 5),
						"PS_STATUS_DESCRIPTION" => $aDesc[$aRes["orderstate"][0]["#"]][0],
						"PS_STATUS_MESSAGE" => $aDesc[$aRes["orderstate"][0]["#"]][1],
						"PS_SUM" => DoubleVal($aRes["orderamount"][0]["#"]),
						"PS_CURRENCY" => $aRes["ordercurrency"][0]["#"],
						"PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))),
					);

				if ($arOrder["PAYED"] != "Y" && CSalePaySystemAction::GetParamValue("AUTOPAY") == "Y" && $arFields["PS_STATUS"] == "Y" && Doubleval($arOrder["PRICE"]) == DoubleVal($arFields["PS_SUM"]))
				{
					CSaleOrder::PayOrder($arOrder["ID"], "Y");
				}
			}
			if(!empty($arFields))
				CSaleOrder::Update($ORDER_ID, $arFields);

			return true;
		}
	}
}

return false;
?>