<?php
global $MESS;

use Bitrix\Main\Localization\Loc;

Loc::loadMessages(__FILE__);

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true)
    die();

$CSalePaySystemAction = new CSalePaySystemAction();

$eshop_id = $CSalePaySystemAction->GetParamValue("IM.ESHOP_ID");
$secret_key = $CSalePaySystemAction->GetParamValue("IM.SEKRET_KEY");
$order_id = $CSalePaySystemAction->GetParamValue("IM.ORDER_ID");

$arOrder = CSaleOrder::GetByID(IntVal($order_id));

$merchantReceipt = array(
    'inn' => // Указать ИНН своего магазина
    'group' => 'Main',
    'content' => array(
        'type' => 1,
        'positions' => array(),
        'customerContact' => $arOrder['USER_EMAIL']
    ),
);
$dbBasketItems = CSaleBasket::GetList(array(), array("ORDER_ID" => $order_id), false, false, array());

while ($arItems = $dbBasketItems->Fetch()) {

    $Product = CCatalogProduct::GetByID($arItems['PRODUCT_XML_ID']);
    //определяем ставку НДС, если используются не стандартные ставки CMS добавить их VAT_ID и указать значение всоответсвии с протоколом http://wiki.intellectmoney.ru/pages/viewpage.action?pageId=4849803#id-ПротоколприемаплатежейIntellectmoney-merchantReceipt4.5ФормированиеmerchantReceipt 
    if ($Product['VAT_ID'] == 2) {
        $stavkaNDS = 1;
    } else {
        $stavkaNDS = 6;
    }

    $orderProducts[] = $arItems;
    $merchantReceipt['content']['positions'][] = array(
        'quantity' => $arItems['QUANTITY'],
        'price' => $arItems['PRICE'],
        'tax' => $stavkaNDS,
        //Если кодировка UTF-8 убрать iconv
        'text' => substr(iconv("cp1251", "UTF-8", $arItems['NAME']), 0, 128),
    );
}
// Определяем есть ли доставка, если ест вносим в чек со ставкой НДС 18%
if ($arOrder['PRICE_DELIVERY'] != 0) {
    $merchantReceipt['content']['positions'][] = array(
        'quantity' => 1,
        'price' => $arOrder['PRICE_DELIVERY'],
        'tax' => 1,
        //Если кодировка UTF-8 убрать iconv
        'text' => substr(iconv("cp1251", "UTF-8",'Доставка'), 0, 128),
    );
}
$merchantReceipt = json_encode($merchantReceipt);

if ($CSalePaySystemAction->GetParamValue("IM.IS_TEST") == 'Y') {
    $currency = 'TST';
} else {
    $currency = $arOrder["CURRENCY"];
}

$serviceName = Loc::getMessage("IM.PAYMENT_PAYMENT_FOR_ORDER", array("#DATE#" => date('Y-m-d'), "#ORDER_ID#" => $order_id));

$recipientAmount = number_format($arOrder['PRICE'], 2, '.', '');
$success_url = $CSalePaySystemAction->GetParamValue("IM.SUCCESS_URL");
$preference = $CSalePaySystemAction->GetParamValue("IM.PREFERENCE");

$lang = $CSalePaySystemAction->GetParamValue("IM.LANGUAGE");
$lang = empty($lang) ? 'ru' : strtolower($lang);

if ($CSalePaySystemAction->GetParamValue("IM.HOLD_MODE") == 'Y') {
    $holdMode = '1';
    $day = $CSalePaySystemAction->GetParamValue("IM.HOLD_MODE_DATE");
    if (intval($day) && $day > 0 && $day < 31) {
        $expireDate = date('Y-m-d 00:00:00', strtotime('+' . $day . ' day'));
    } else {
        $expireDate = date('Y-m-d 00:00:00', strtotime('+3 day'));
    }
}
$user_email = $CSalePaySystemAction->GetParamValue("IM.EMAIL");

$pre_hash = md5(join('::', array($eshop_id, $order_id, $serviceName, $recipientAmount, $currency, $secret_key)));
?>

<form id="pay" name="pay" method="POST" action="https://merchant.intellectmoney.ru/<? echo $lang; ?>/">
    <input type="hidden" name="eshopId" value="<? echo $eshop_id; ?>">
    <input type="hidden" name="orderId" value="<? echo $order_id; ?>">
    <input type="hidden" name="serviceName" value="<? echo $serviceName; ?>">
    <input type="hidden" name="recipientAmount" value="<? echo $recipientAmount; ?>">
    <input type="hidden" name="recipientCurrency" value="<? echo $currency; ?>">
    <input type="hidden" name="user_email" value="<? echo $user_email; ?>">
    <input type="hidden" name="successUrl" value="<? echo $success_url; ?>">
    <input type="hidden" name="preference" value="<? echo $preference; ?>">
    <?php if($holdMode){ ?>
    <input type="hidden" name="holdMode" value="1">
    <input type="hidden" name="expireDate" value="<? echo $expireDate; ?>">
    <?php } ?>
    <input type="hidden" name="hash" value="<? echo $pre_hash; ?>">
    <input type="hidden" name="merchantReceipt" value="<? echo htmlspecialchars($merchantReceipt); ?>" >
</form>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script>
if (window.jQuery) {
        $(document).ready(function() { $("#pay").submit(); });
}
else{
        google.load("jquery", "1.4.3");
        google.setOnLoadCallback(function() {
                $("#pay").submit(); 
        });
}
</script>