Файл: payment/pay/robokassa.php
Строк: 34
<?php
require ($_SERVER['DOCUMENT_ROOT'].'/core/sys.php');
/*
#1 - ZYCqgq584VRgVkIj19NY
#2 - p8D7lwsBu8LR7gPaA8FK
--------------------
#1 - YXt8fXrhnP55AiV6V2Ek
#2 - ybx61zv7V6iRsDA3yLJN
*/
$mrh_pass2 = "p8D7lwsBu8LR7gPaA8FK"; // пароль #2
// чтение параметров
$out_summ = $_REQUEST["OutSum"]; // по умолчанию (не трогать)
$inv_id = $_REQUEST["InvId"]; // по умолчанию (не трогать)
$shp_item = $_REQUEST["Shp_item"]; // по умолчанию (не трогать)
$crc = $_REQUEST["SignatureValue"]; // по умолчанию (не трогать)
$shp_mulo = $_REQUEST["shp_mulo"]; // принимаем дополнительный параметр
$shp_names = $_REQUEST["shp_names"]; // принимаем дополнительный параметр
$shp_phone = $_REQUEST["shp_phone"]; // принимаем дополнительный параметр
$crc = strtoupper($crc); // переводим ключ в верхний регистр
$my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_pass2:Shp_item=$shp_item:shp_mulo=$shp_mulo:shp_names=$shp_names:shp_phone=$shp_phone")); // формируем новый ключ
if ($my_crc != $crc) // проверка корректности подписи
{
echo "bad signn";
exit(); // останавливаем выполнение скрипта, если подписи не совпадают
}
$pay = $db->prepare('SELECT * FROM `pay` WHERE `id` = ?');
$pay -> execute([$inv_id]);
$pay = $pay -> fetch(PDO :: FETCH_ASSOC);
$client = $db->prepare('SELECT * FROM `platform` WHERE `id` = ?');
$client -> execute([$pay['platform']]);
$client = $client -> fetch(PDO :: FETCH_ASSOC);
if( $curl = curl_init() ) {
curl_setopt($curl, CURLOPT_URL, $client['success']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, "MNM_PAY_ID=$id&MNM_PRICE={$_REQUEST['AMOUNT']}&MNM_VAR={$pay['var']}&MNM_DATE_PAY={$time}&MNM_PLATFORM={$client['id']}&MNM_COM={$pay['com']}");
$out = curl_exec($curl);
curl_close($curl);
}
if($out == 'NO'){
header('location :'.$client['error']);
$sql = $db->prepare('UPDATE `pay` SET `status` = ?,`ot` = ? WHERE `id` = ?');
$sql -> execute(['bad',$out,$id]);
exit();
}else{
$sql = $db->prepare('UPDATE `pay` SET `ot` = ? WHERE `id` = ?');
$sql -> execute([$out,$id]);
}
$time = vremja($pay['value']);
$money = $db->prepare('UPDATE `platform` SET `money` = ? WHERE `id` = ?');
$money -> execute([$client['money']+$pay['summa'],$client['id']]);
$us = $db->prepare('UPDATE `users` SET `money` = ? WHERE `id` = ?');
$us -> execute([$user['money']-($pay['summa']+$pay['summa']*0.05),$user['id']]);
die('YES');