<?php @ini_set("display_errors", "1"); error_reporting(E_ALL); //@ini_set("display_errors", "0"); error_reporting(0); include_once("config.php"); // Получаем ID пользователя (в контексте UTM5 - Номер лицевого счета) по его IP адресу function UTM_GetUserIDByIP($IP) { global $Setting; $query = "Select service_links.account_id From service_links Inner Join iptraffic_service_links ON service_links.id = iptraffic_service_links.id "; $query.= "Inner Join ip_groups ON iptraffic_service_links.ip_group_id = ip_groups.ip_group_id "; $query.= "Where ip_groups.is_deleted = '0' AND iptraffic_service_links.is_deleted = '0' AND service_links.is_deleted = '0' AND "; $query.= "inet_ntoa(4294967295 & ip_groups.ip) = '$IP'"; $db_connect = mysql_connect($Setting['db_host'], $Setting['db_user'], $Setting['db_password']) or die ("Connect failed"); mysql_select_db($Setting['db_base'], $db_connect); $mysql_res = mysql_query($query, $db_connect); $row = mysql_fetch_array($mysql_res); if (isset($row['account_id'])) { return($row['account_id']); } else { return(0); } } function UTM_GetUserIDByLoginAndPassword($login, $password) { //Зарезервировано для будущего использования return(0); } // Проверка наличия средств на балансе лицевого счета function UTM_CheckUserBalance($AccountID, $Summa) { global $Setting; if ($Setting['Balance=Balance+Credit']) { $query = "SELECT (balance + credit) as account_balance FROM accounts WHERE is_deleted = 0 AND id = 1"; } else { $query = "SELECT (balance) as account_balance FROM accounts WHERE is_deleted = 0 AND id = 1"; } $db_connect = mysql_connect($Setting['db_host'], $Setting['db_user'], $Setting['db_password']) or die ("Connect failed"); mysql_select_db($Setting['db_base'], $db_connect); $mysql_res = mysql_query($query, $db_connect); $row = mysql_fetch_array($mysql_res); if (isset($row['account_balance'])) { $AccountBalance = $row['account_balance']; if ($AccountBalance>=$Summa) { return(1); } else { return(0); } } else { return(-1); } } // Функция списания средств с лицевого счета пользователя function UTM_ContributeFunds($AccountID, $Summa, $Message, $TransactionID, $TariffID ) { global $Setting; // Проверяем наличие средств if (UTM_CheckUserBalance($AccountID, $Summa)!=1) { $Result["id"] = -1; $Result["status"] = -1; // Возвращаем статус "не оплачен(-1)" return($Result); } $Summa = -$Summa; $Result = array( "id" => -1, "status" => -1); $query = "SELECT payment_absolute, payment_ext_number FROM payment_transactions WHERE method = '".$Setting['UTMPayment_Method_ID']."' AND payment_ext_number = '$TransactionID' AND account_id = 'AccountID'"; $db_connect = mysql_connect($Setting['db_host'], $Setting['db_user'], $Setting['db_password']) or die ("Connect failed"); mysql_select_db($Setting['db_base'], $db_connect); $mysql_res = mysql_query($query, $db_connect); $row = mysql_fetch_array($mysql_res); if (isset($row['payment_absolute']) && $row['payment_absolute']==$Summa) { // Платёж уже внесен, возвращаем отсутсиве ошибки, выходим. $Result["id"] = $row['payment_ext_number']; $Result["status"] = 1; return($Result); } $sign_admin = trim($Setting['PaymentPrefixForAdmin']." ".$Message." TariffID=".$TariffID); $sign_user = trim($Setting['PaymentPrefixForUser']." ".$Message); $exec_string = $Setting['UTMPayment_tool_path']." -h ".$Setting['UTMCoreHost']." -P ".$Setting['UTMCorePort']." -l ".$Setting['UTMCore_Login']. " -p ".$Setting['UTMCore_Password']." -b ".$Summa." -a ".$AccountID." -m ".$Setting['UTMPayment_Method_ID']." -L '".$sign_admin."' -k '".$sign_user. "' -e ".$TransactionID; system($exec_string, $payment_result_int); if ($payment_result_int==0) { // SendMessageToUser($AccountID,"Вы подписались на услугу 24h.tv ".$Message); // Отправка сообщения пользователю (реализовать нужно самостоятельно // Платеж удался, отправляем номер транзакции и статус=1 $Result["id"] = 1; $Result["status"] = 1; return($Result); } else { // Платеж не удался, отправляем сигнал о системной ошибке $Result["id"] = -1; $Result["status"] = -2; return($Result); } }