%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/bitrix/modules/sale/ru/payment/z_payment/
Upload File :
Create Path :
Current File : //home/bitrix/www/bitrix/modules/sale/ru/payment/z_payment/z_payment_result.php

<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) die();?><?
////////////////////////////////////////////////////////////////
//              Модуль Z-PAYMENT для 1C-Bitrix                //
////////////////////////////////////////////////////////////////
//      Z-PAYMENT, система приема и обработки платежей        //
//      All rights reserved © 2002-2007, TRANSACTOR LLC       //
////////////////////////////////////////////////////////////////

define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

$lmi_prerequest = $_REQUEST['LMI_PREREQUEST'];
$lmi_payee_purse = $_REQUEST['LMI_PAYEE_PURSE'];
$lmi_payment_amount = $_REQUEST['LMI_PAYMENT_AMOUNT'];
$lmi_payer_purse = $_REQUEST['LMI_PAYER_PURSE'];
$lmi_payer_wm = $_REQUEST['LMI_PAYER_WM'];
$lmi_payment_no = $_REQUEST['LMI_PAYMENT_NO'];
$lmi_mode = $_REQUEST['LMI_MODE'];
$id_pay = $_REQUEST['ID_PAY'];
$client_mail = $_REQUEST['CLIENT_MAIL'];
$custom = $_REQUEST['custom'];
$lmi_sys_trans_no = $_REQUEST['LMI_SYS_TRANS_NO'];
$lmi_sys_invs_no = $_REQUEST['LMI_SYS_INVS_NO'];
$lmi_sys_trans_date = $_REQUEST['LMI_SYS_TRANS_DATE'];
$lmi_hash = $_REQUEST['LMI_HASH'];
$lmi_secret_key = $_REQUEST['LMI_SECRET_KEY'];


if (CModule::IncludeModule("sale"))
{
	$bCorrectPayment = True;

	$err=0;
	$err_text= '';

	if ($arOrder = CSaleOrder::GetByID(IntVal($lmi_payment_no)))	
	{
		$bCorrectPayment = False;
		$err=1;
		$err_text= 'ERR: НЕТ ТАКОГО ЗАКАЗА';
	}

	if ($bCorrectPayment) 
		CSalePaySystemAction::InitParamArrays($arOrder, $arOrder["ID"]);

	$IdM = CSalePaySystemAction::GetParamValue("ZP_SHOP_ID");
	$sk  = CSalePaySystemAction::GetParamValue("ZP_MERCHANT_KEY");
	$CruR  = CSalePaySystemAction::GetParamValue("ZP_CODE_RUR");

	if(strlen($sk) <=0)
	{
		$bCorrectPayment = False;
		$err=4;
		$err_text='ERR: ОШИБКА АВТОРИЗАЦИИ';
	}

	// Проверяем, не произошла ли подмена суммы.
	$order_amount =CCurrencyRates::ConvertCurrency($arOrder["PRICE"], $arOrder["CURRENCY"] , $CruR);

	if ($order_amount != $lmi_payment_amount)
	{
		$err=2;
		$err_text='ERR: НЕВЕРНАЯ СУММА : '.htmlspecialcharsbx($lmi_payment_amount);
	}  

	//проверяем ID магазина
	if($lmi_payee_purse != $IdM) 
	{
		$err=3;
		$err_text='ERR: НЕВЕРЕН ID МАГАЗИНА : '.htmlspecialcharsbx($lmi_payee_purse);
	}


	if($lmi_prerequest == 1) //форма предварительного запроса
	{ 
		if ($err != 0) 
			echo $err_text; 
		else 
			echo 'YES';
	}
	else 
	{


		$common_string = $lmi_payee_purse.$lmi_payment_amount.$lmi_payment_no.$lmi_mode.$lmi_sys_invs_no.$lmi_sys_trans_no.$lmi_sys_trans_date.$sk.$lmi_payer_purse.$lmi_payer_wm;
				$hash =ToUpper(md5($common_string));

	if ($err==0)	{
						if ($hash == $lmi_hash) 
										{
									$strPS_STATUS_DESCRIPTION = "";
										$strPS_STATUS_DESCRIPTION .= "Идентификатор магазина - ".$lmi_payee_purse."; ";
									$strPS_STATUS_DESCRIPTION .= "Внутренний номер платежа  в системе Z-PAYMENT - ".$lmi_sys_invs_no."; ";
									$strPS_STATUS_DESCRIPTION .= "Внутренний номер счета в системе Z-PAYMENT - ".$lmi_sys_trans_no."; ";
									$strPS_STATUS_DESCRIPTION .= "дата платежа - ".$lmi_sys_trans_date."";

									$strPS_STATUS_MESSAGE = "";
									$strPS_STATUS_MESSAGE .= "кошелек покупателя или его e-mail  - ".$lmi_payer_purse."; ";

										$arFields = array(
													"PS_STATUS" => "Y",
													"PS_STATUS_CODE" => "-",
												"PS_STATUS_DESCRIPTION" => $strPS_STATUS_DESCRIPTION,
												"PS_STATUS_MESSAGE" => $strPS_STATUS_MESSAGE,
													"PS_SUM" => $lmi_payment_amount,
												"PS_CURRENCY" => $arOrder["CURRENCY"],
												"PS_RESPONSE_DATE" => Date(CDatabase::DateFormatToPHP(CLang::GetDateFormat("FULL", LANG))),
													"USER_ID" => $arOrder["USER_ID"]
													);

			// You can comment this code if you want PAYED flag not to be set automatically
			
				CSaleOrder::PayOrder($arOrder["ID"], "Y");
				CSaleOrder::Update($arOrder["ID"], $arFields);
												}
					}
	}
}

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>

Zerion Mini Shell 1.0