<?php
 
@ini_set("display_errors", "1"); error_reporting(E_ALL);
//@ini_set("display_errors", "0"); error_reporting(0);
 
include_once("config.php");
include_once("/netup/utm5/bin/urfa/URFAClient.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);
	}
	try {
	  $urfa_admin = new URFAClient_Admin($Setting['UTMCore_Login'], $Setting['UTMCore_Password'], $Setting['UTMCoreHost'], $Setting['UTMCorePort']);
	} catch (Exception $exception) { 
		// Ошибка подключенияк биллингу, отправляем сигнал о системной ошибке
		$Result["id"] = -1;
		$Result["status"] = -2;
		return($Result);		
	} 
	$payment_time = time();
	$burn_date = 0;
	$sign_admin = trim($Setting['PaymentPrefixForAdmin']." ".$Message." TariffID=".$TariffID);
	$sign_user = trim($Setting['PaymentPrefixForUser']." ".$Message);
	$turn_on_inet = 0;
	$payment_transaction = $urfa_admin->rpcf_add_payment_for_account($AccountID, $Summa, $payment_time, $burn_date, 
		$Setting['UTMPayment_Method_ID'], $sign_admin, $sign_user, $TransactionID, $turn_on_inet); //0x3110
	if (isset($payment_transaction['payment_transaction_id'])) {
//		SendMessageToUser($AccountID,"Вы подписались на услугу 24h.tv ".$Message); // Отправка сообщения пользователю (реализовать нужно самостоятельно
		// Платеж удался, отправляем номер транзакции и статус=1
		$Result["id"] = $payment_transaction['payment_transaction_id'];
		$Result["status"] = 1;
		return($Result);
	} else {
		// Платеж не удался, отправляем сигнал о системной ошибке
		$Result["id"] = -1; 
		$Result["status"] = -2;
		return($Result);
	}
 
}
 
/home/u18456/wiki.flintnet.ru/www/data/pages/api_24h.tv_source_urfa-php_utm5_api.php.txt · Последние изменения: 2016/12/02 19:45 От kayfolom
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki