Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

api_24h.tv_source_payment_tool_utm5_api.php [2016/12/02 19:39]
kayfolom создано
api_24h.tv_source_payment_tool_utm5_api.php [2016/12/02 19:41] (текущий)
kayfolom
Строка 1: Строка 1:
<code php> <code php>
 +<?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);
 + }
 +
 +}
</code> </code>
 
/home/u18456/wiki.flintnet.ru/www/data/pages/api_24h.tv_source_payment_tool_utm5_api.php.txt · Последние изменения: 2016/12/02 19:41 От 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