Файл: billing/online_twopay.php
Строк: 82
<?
$full_home_path = dirname(__FILE__);
require_once($full_home_path."/_rootload.php");
$input = '';
foreach ($_GET as $field=>$value) {
$value = iconv("windows-1251", "utf-8", $value);
$input .= $field." ".$value."n";
}
$input = "Входящие параметры:nn$input";
mconnect();
EnableLanguages();
$bill = GetBillById(intval($_GET["v1"]));
$twopay_id=GetSetting("twopay_id");
$twopay_secret=GetSetting("twopay_secret");
if (!$_GET["v1"]) { $error_msg = "Отсутствует номер счета биллинг-системы."; $kod="2";}
else if (!$bill->id) { $error_msg = "Счет # ".$_GET["v1"]." не найден."; $kod="5"; $kodcomment="cant find bill #".$_GET["v1"];}
if ($_GET["command"] == "status") {
$hash = md5($_GET["command"].$_GET["v1"].$twopay_secret);
if (!$kod) {
if ($hash != $_GET["md5"]) { $error_msg = "Неправильная контрольная подпись."; $kod="3";}
else if ($bill->merchantmoney <= 0) { $error_msg = "Не найдена сумма платежа в валюте магазина."; $kod="5";}
}
if ($kod) { $amount = "0"; } else { $amount = $bill->merchantmoney; }
header("Content-type: text/xml");
print "<?xml version="1.0" encoding="windows-1251"?><response><amount>".$amount."</amount></response>";
} else if ($_GET["command"] == "pay") {
$hash = md5($_GET["command"].$_GET["v1"].$_GET["id"].$twopay_secret);
if (!$kod) {
if ($hash != $_GET["md5"]) { $error_msg = "Неправильная контрольная подпись."; $kod="3"; }
else if ($bill->merchantmoney != $_GET["sum"]) { $error_msg = "Неправильная сумма оплаты."; $kod="4"; }
}
if (!$kod) {
$kod = 0;
MakeBillPayed($bill->id,1,"2Pay Merchant (".$_GET["id"].")");
}
header("Content-type: text/xml");
print "<?xml version="1.0" encoding="windows-1251"?><response><id>".$_GET["id"]."</id><sum>".$_GET['sum']."</sum><result>".$kod."</result><comment>".$kodcomment."</comment></response>";
} else { $error_msg = "Неправильная команда платежа."; }
if ($error_msg) {
$manager_email=GetSetting('manager_email');
$msg = "Автоматическая оплата через 2Pay Merchant отклонена биллинг-системой по причине:nn$error_msgnn$inputnnMD5 by RootPanel: ".$hash."nnIP: $ipnn--nRootPanel";
$subject = "Ошибка автоматической оплаты [2Pay]";
$admEmails=GetAdminEmailsWhereTrueParam("senderror");
if (count($admEmails) > 0) {
WriteMailLog($subject,$msg);
}
while (list($i,$em) = @each($admEmails)) {
sendmail($em,'',$manager_email,$subject,$msg);
}
}
mclose();
?>