65 lines
3.0 KiB
PHP
65 lines
3.0 KiB
PHP
|
<?php
|
|||
|
include 'config.php';
|
|||
|
// the function returns an MD5 of parameters passed
|
|||
|
// функция возвращает MD5 переданных ей параметров
|
|||
|
function ref_sign() {
|
|||
|
$params = func_get_args();
|
|||
|
$prehash = implode("::", $params);
|
|||
|
return md5($prehash);
|
|||
|
}
|
|||
|
|
|||
|
// filtering junk off acquired parameters
|
|||
|
// парсим полученные параметры на предмет мусора
|
|||
|
foreach($_REQUEST as $request_key => $request_value) {
|
|||
|
$_REQUEST[$request_key] = substr(strip_tags(trim($request_value)), 0, 250);
|
|||
|
}
|
|||
|
|
|||
|
// service secret code
|
|||
|
// секретный код сервиса
|
|||
|
$secret_code = "cnfhsqrke,";
|
|||
|
|
|||
|
// collecting required data
|
|||
|
// собираем необходимые данные
|
|||
|
$purse = $_REQUEST["s_purse"]; // sms:bank id идентификатор смс:банка
|
|||
|
$order_id = $_REQUEST["s_order_id"]; // operation id идентификатор операции
|
|||
|
$amount = $_REQUEST["s_amount"]; // transaction sum сумма транзакции
|
|||
|
$clear_amount = $_REQUEST["s_clear_amount"]; // billing algorithm алгоритм подсчета стоимости
|
|||
|
$inv = $_REQUEST["s_inv"]; // operation number номер операции
|
|||
|
$phone = $_REQUEST["s_phone"]; // phone number номер телефона
|
|||
|
$sign = $_REQUEST["s_sign_v2"]; // signature подпись
|
|||
|
|
|||
|
// making the reference signature
|
|||
|
// создаем эталонную подпись
|
|||
|
$reference = ref_sign($secret_code, $purse, $order_id, $amount, $clear_amount, $inv, $phone);
|
|||
|
|
|||
|
// validating the signature
|
|||
|
// проверяем, верна ли подпись
|
|||
|
if($sign == $reference) {
|
|||
|
// success, proceeding
|
|||
|
// обрабатываем полученные данные
|
|||
|
$thing = substr($order_id,0,3);
|
|||
|
$owner = substr($order_id,3,strlen($order_id)-3);
|
|||
|
switch ($thing) {
|
|||
|
case "101":
|
|||
|
mysql_query("INSERT INTO `inventory` (`owner`,`name`, `type`,`maxdur`,`img`) values ('{$owner}','Раритетная открытка', 200, 1,'card03.gif');");
|
|||
|
break;
|
|||
|
case "102":
|
|||
|
mysql_query("INSERT INTO `inventory` (`owner`,`name`, `type`,`maxdur`,`minu`,`maxu`,`img`) values ('{$owner}','Ель', 3, 1,1,3,'el1.gif');");
|
|||
|
break;
|
|||
|
case "103":
|
|||
|
mysql_query("INSERT INTO `inventory` (`owner`,`name`, `type`,`maxdur`,`minu`,`maxu`,`img`) values ('{$owner}','Ель с игрушками', 3, 1,1,5,'elka_w2.gif');");
|
|||
|
break;
|
|||
|
case "104":
|
|||
|
mysql_query("INSERT INTO `inventory` (`owner`,`name`, `type`,`maxdur`,`img`) values ('{$owner}','Сувенир <Сфера БК>', 200, 1,'shar6.gif');");
|
|||
|
break;
|
|||
|
case "105":
|
|||
|
mysql_query("INSERT INTO `inventory` (`owner`,`name`, `type`,`maxdur`,`img`,`goden`,`dategoden`,`magic`) values ('{$owner}','Бутерброд "Новогодний"', 50, 5,'food_l8.gif','15','".(time()+1296000)."',8);");
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
// else {
|
|||
|
// failure, reporting error
|
|||
|
// неправильно составлен запрос
|
|||
|
//}
|
|||
|
?>
|