Иконка ресурса

Платежные баллы для Фруктовой Фермы 2015-12-26

  • Автор темы pligin
  • Дата начала
Viktor
Участник
Сообщения
734
Реакции
113
Не начисляет баллы при пополнении. может кто исправить?
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Telegram
pligin
viktor70 написал(а):
Не начисляет баллы при пополнении. может кто исправить?
Нужен доступ к MySQL. Вечером посмотрю
 
DjSuzuki
Участник
Сообщения
186
Реакции
72
viktor70 написал(а):
Не начисляет баллы при пополнении. может кто исправить?
Тебе нужно в мерчанты добавить функцию зачисления баллов...к примеру
Код:
$pay_points = $ik_payment_amount*0.50;
Потом апдейт базы...
Тем самым у тебя будет начисляться в баллы 50% от суммы пополнения
 
Viktor
Участник
Сообщения
734
Реакции
113
В какое место добавить надо?
Точнее напишите!!!
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Telegram
pligin
viktor70 написал(а):
В какое место добавить надо?
перед запросом на зачисление серебра.
также проверь чтобы в этом запросе были баллы
 
Viktor
Участник
Сообщения
734
Реакции
113
pligin написал(а):
перед запросом на зачисление серебра.
также проверь чтобы в этом запросе были баллы
Не хочет работать. В общем вот сам код, если не верно поставил, то сделайте верно:
Код:
<?PHP

# Автоподгрузка классов
function __autoload($name){ include("classes/_class.".$name.".php");}

# Класс конфига
$config = new config;

# Функции
$func = new func;

# База данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);





if (isset($_POST["m_operation_id"]) && isset($_POST["m_sign"]))
{
    $m_key = $config->secretW;
    $arHash = array($_POST['m_operation_id'],
            $_POST['m_operation_ps'],
            $_POST['m_operation_date'],
            $_POST['m_operation_pay_date'],
            $_POST['m_shop'],
            $_POST['m_orderid'],
            $_POST['m_amount'],
            $_POST['m_curr'],
            $_POST['m_desc'],
            $_POST['m_status'],
            $m_key);

    $sign_hash = strtoupper(hash('sha256', implode(":", $arHash)));
    if ($_POST["m_sign"] == $sign_hash && $_POST['m_status'] == "success")
    {
        
    $db->Query("SELECT * FROM db_payeer_insert WHERE id = '".intval($_POST['m_orderid'])."'");
    if($db->NumRows() == 0){ echo htmlspecialchars($_POST['m_orderid'])."|error"; exit;}
    
    $payeer_row = $db->FetchArray();
    if($payeer_row["status"] > 0){ echo htmlspecialchars($_POST['m_orderid'])."|success"; exit;}
    
    $db->Query("UPDATE db_payeer_insert SET status = '1' WHERE id = '".intval($_POST['m_orderid'])."'");
    
    $ik_payment_amount = $payeer_row["sum"];
    $user_id = $payeer_row["user_id"];
  
    # Настройки
    $db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
    $sonfig_site = $db->FetchArray();
  
   $db->Query("SELECT user, referer_id FROM db_users_a WHERE id = '{$user_id}' LIMIT 1");
   $user_ardata = $db->FetchArray();
   $user_name = $user_ardata["user"];
   $refid = $user_ardata["referer_id"];
 



   # Зачисляем баланс
   $serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );
  
   $db->Query("SELECT insert_sum FROM db_users_b WHERE id = '{$user_id}' LIMIT 1");
   $ins_sum = $db->FetchRow();
  
  $serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.50) ) : ($serebro+($serebro * 0.05)); // Бонус после пополнения

    $add_tree = ( $ik_payment_amount >= 299.99) ? 0 : 0; // Подарить дерево при разовом поплнении на 300 и выше рублей
   $lsb = time();
   $to_referer = ($serebro * 0.10);
   $pay_points = $ik_payment_amount*0.50;
 
  
   $db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', e_t = e_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '$lsb', insert_sum = insert_sum + '$ik_payment_amount' WHERE id = '{$user_id}'");
  
  
  
   # Зачисляем средства рефереру и дерево
   $db->Query("UPDATE db_users_b SET money_b = money_b + $to_referer, from_referals = from_referals + '$to_referer' {$add_tree_referer} WHERE id = '$refid'");
  
      # Зачисляем средства рефереру и дерево
   $db->Query("UPDATE db_users_b SET money_p = money_p + $to_referer, from_referals = from_referals + '$to_referer' {$add_tree_referer} WHERE id = '$refid'");
  
   # Статистика пополнений
   $da = time();
   $dd = $da + 60*60*24*15;
   $db->Query("INSERT INTO db_insert_money (user, user_id, money, serebro, date_add, date_del)
   VALUES ('$user_name','$user_id','$ik_payment_amount','$serebro','$da','$dd')");
  
   $db->Query("SELECT * FROM db_invcompetition_users WHERE user_id = '{$user_id}'");
$in = $db->FetchArray();

        
$a=$in["user_id"];
if($a > 0)
{
$usname = $user_name;
}
else
{
$usname = $user_name;
$db->Query("INSERT INTO db_invcompetition_users (user, user_id, points) VALUES ('$usname','$user_id','0')");
}

$db->Query("SELECT * FROM db_invcompetition WHERE status = '0' LIMIT 1");
$invcomp = $db->FetchArray();

$db->Query("SELECT COUNT(*) FROM db_invcompetition_users WHERE user_id = '{$user_id}'");
$rett = $db->FetchArray();

if ($invcomp["date_add"] >= 0 AND $invcomp["date_end"] > $da)
{
$db->Query("UPDATE db_invcompetition_users SET points = points + '$ik_payment_amount' WHERE user_id = '$user_id'");
}
else
{
$db->Query("UPDATE db_invcompetition_users SET points = points + '0' WHERE user_id = '$user_id'");
}
  
        # Конкурс
         $competition = new competition($db);
         $competition->UpdatePoints($user_id, $ik_payment_amount);
        #--------
  
         $wmset = new wmset();
         $marray = $wmset->GetSet($ik_payment_amount);
  
         $a_t = intval($marray["t_a"]);
         $b_t = intval($marray["t_b"]);
         $c_t = intval($marray["t_c"]);
         $d_t = intval($marray["t_d"]);
         $e_t = intval($marray["t_e"]);
  
        $db->Query("UPDATE db_users_b SET a_t = a_t + '$a_t', b_t = b_t + '$b_t', c_t = c_t + '$c_t', d_t = d_t + '$d_t', e_t = e_t + '$e_t',
        last_sbor = '$lsb' WHERE id = '{$user_id}'");
        

#--------
# Платежные баллы
$pp = new pay_points($db);
$pp ->UpdatePayPoints($ik_payment_amount,$user_id);


    # Обновление статистики сайта
    $db->Query("UPDATE db_stats SET all_insert = all_insert + '$ik_payment_amount' WHERE id = '1'");
    
    echo htmlspecialchars($_POST['m_orderid'])."|success";
    exit;

    }
    echo htmlspecialchars($_POST['m_orderid'])."|error";
}
?>
 
DjSuzuki
Участник
Сообщения
186
Реакции
72
viktor70 написал(а):
Не хочет работать. В общем вот сам код, если не верно поставил, то сделайте верно:
Код:
<?PHP

# Автоподгрузка классов
function __autoload($name){ include("classes/_class.".$name.".php");}

# Класс конфига
$config = new config;

# Функции
$func = new func;

# База данных
$db = new db($config->HostDB, $config->UserDB, $config->PassDB, $config->BaseDB);





if (isset($_POST["m_operation_id"]) && isset($_POST["m_sign"]))
{
    $m_key = $config->secretW;
    $arHash = array($_POST['m_operation_id'],
            $_POST['m_operation_ps'],
            $_POST['m_operation_date'],
            $_POST['m_operation_pay_date'],
            $_POST['m_shop'],
            $_POST['m_orderid'],
            $_POST['m_amount'],
            $_POST['m_curr'],
            $_POST['m_desc'],
            $_POST['m_status'],
            $m_key);

    $sign_hash = strtoupper(hash('sha256', implode(":", $arHash)));
    if ($_POST["m_sign"] == $sign_hash && $_POST['m_status'] == "success")
    {
       
    $db->Query("SELECT * FROM db_payeer_insert WHERE id = '".intval($_POST['m_orderid'])."'");
    if($db->NumRows() == 0){ echo htmlspecialchars($_POST['m_orderid'])."|error"; exit;}
   
    $payeer_row = $db->FetchArray();
    if($payeer_row["status"] > 0){ echo htmlspecialchars($_POST['m_orderid'])."|success"; exit;}
   
    $db->Query("UPDATE db_payeer_insert SET status = '1' WHERE id = '".intval($_POST['m_orderid'])."'");
   
    $ik_payment_amount = $payeer_row["sum"];
    $user_id = $payeer_row["user_id"];
 
    # Настройки
    $db->Query("SELECT * FROM db_config WHERE id = '1' LIMIT 1");
    $sonfig_site = $db->FetchArray();
 
   $db->Query("SELECT user, referer_id FROM db_users_a WHERE id = '{$user_id}' LIMIT 1");
   $user_ardata = $db->FetchArray();
   $user_name = $user_ardata["user"];
   $refid = $user_ardata["referer_id"];
 



   # Зачисляем баланс
   $serebro = sprintf("%.4f", floatval($sonfig_site["ser_per_wmr"] * $ik_payment_amount) );
 
   $db->Query("SELECT insert_sum FROM db_users_b WHERE id = '{$user_id}' LIMIT 1");
   $ins_sum = $db->FetchRow();
 
  $serebro = intval($ins_sum <= 0.01) ? ($serebro + ($serebro * 0.50) ) : ($serebro+($serebro * 0.05)); // Бонус после пополнения

    $add_tree = ( $ik_payment_amount >= 299.99) ? 0 : 0; // Подарить дерево при разовом поплнении на 300 и выше рублей
   $lsb = time();
   $to_referer = ($serebro * 0.10);
   $pay_points = $ik_payment_amount*0.50;
 
 
   $db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', e_t = e_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '$lsb', insert_sum = insert_sum + '$ik_payment_amount' WHERE id = '{$user_id}'");
 
 
 
   # Зачисляем средства рефереру и дерево
   $db->Query("UPDATE db_users_b SET money_b = money_b + $to_referer, from_referals = from_referals + '$to_referer' {$add_tree_referer} WHERE id = '$refid'");
 
      # Зачисляем средства рефереру и дерево
   $db->Query("UPDATE db_users_b SET money_p = money_p + $to_referer, from_referals = from_referals + '$to_referer' {$add_tree_referer} WHERE id = '$refid'");
 
   # Статистика пополнений
   $da = time();
   $dd = $da + 60*60*24*15;
   $db->Query("INSERT INTO db_insert_money (user, user_id, money, serebro, date_add, date_del)
   VALUES ('$user_name','$user_id','$ik_payment_amount','$serebro','$da','$dd')");
 
   $db->Query("SELECT * FROM db_invcompetition_users WHERE user_id = '{$user_id}'");
$in = $db->FetchArray();

       
$a=$in["user_id"];
if($a > 0)
{
$usname = $user_name;
}
else
{
$usname = $user_name;
$db->Query("INSERT INTO db_invcompetition_users (user, user_id, points) VALUES ('$usname','$user_id','0')");
}

$db->Query("SELECT * FROM db_invcompetition WHERE status = '0' LIMIT 1");
$invcomp = $db->FetchArray();

$db->Query("SELECT COUNT(*) FROM db_invcompetition_users WHERE user_id = '{$user_id}'");
$rett = $db->FetchArray();

if ($invcomp["date_add"] >= 0 AND $invcomp["date_end"] > $da)
{
$db->Query("UPDATE db_invcompetition_users SET points = points + '$ik_payment_amount' WHERE user_id = '$user_id'");
}
else
{
$db->Query("UPDATE db_invcompetition_users SET points = points + '0' WHERE user_id = '$user_id'");
}
 
        # Конкурс
         $competition = new competition($db);
         $competition->UpdatePoints($user_id, $ik_payment_amount);
        #--------
 
         $wmset = new wmset();
         $marray = $wmset->GetSet($ik_payment_amount);
 
         $a_t = intval($marray["t_a"]);
         $b_t = intval($marray["t_b"]);
         $c_t = intval($marray["t_c"]);
         $d_t = intval($marray["t_d"]);
         $e_t = intval($marray["t_e"]);
 
        $db->Query("UPDATE db_users_b SET a_t = a_t + '$a_t', b_t = b_t + '$b_t', c_t = c_t + '$c_t', d_t = d_t + '$d_t', e_t = e_t + '$e_t',
        last_sbor = '$lsb' WHERE id = '{$user_id}'");
       

#--------
# Платежные баллы
$pp = new pay_points($db);
$pp ->UpdatePayPoints($ik_payment_amount,$user_id);


    # Обновление статистики сайта
    $db->Query("UPDATE db_stats SET all_insert = all_insert + '$ik_payment_amount' WHERE id = '1'");
   
    echo htmlspecialchars($_POST['m_orderid'])."|success";
    exit;

    }
    echo htmlspecialchars($_POST['m_orderid'])."|error";
}
?>
Вот это:
Код:
$db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', e_t = e_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '$lsb', insert_sum = insert_sum + '$ik_payment_amount' WHERE id = '{$user_id}'");
Замени на это:
Код:
$db->Query("UPDATE db_users_b SET money_b = money_b + '$serebro', e_t = e_t + '$add_tree', to_referer = to_referer + '$to_referer', last_sbor = '$lsb', insert_sum = insert_sum + '$ik_payment_amount', pay_points = pay_points + '$pay_points' WHERE id = '{$user_id}'");
 
Viktor
Участник
Сообщения
734
Реакции
113
Вот теперь сработало. Только ещё надо, чтобы с реферала пополнение в баллы было, подскажите где и что вписать! рефов 1 уровень, а так же со всех пополнений участинков дополнительно 5% например.
 
DjSuzuki
Участник
Сообщения
186
Реакции
72
  • #10
viktor70 написал(а):
Вот теперь сработало. Только ещё надо, чтобы с реферала пополнение в баллы было, подскажите где и что вписать! рефов 1 уровень, а так же со всех пополнений участинков дополнительно 5% например.
Так это все в модуле есть
 
Viktor
Участник
Сообщения
734
Реакции
113
  • #11
а не работает нифига.
 
Viktor
Участник
Сообщения
734
Реакции
113
  • #13
вот сам код, мне надо с реферала только первого уровня начисление и со всех участников проекта:

Код:
<?PHP
class pay_points{

    var $db;
    
    function __construct($db){
    
        $this->db = $db;
    
    }
    
    function SetToAll($sum){
    
        $sum = floatval($sum);
        $sum = round($sum, 2);
        $sum = $sum * 0.05;
        
        $t24 = time() - 60*60*24;
        
        $this->db->Query("SELECT COUNT(*) FROM db_users_a WHERE date_login > '$t24'");
        $users_activ = $this->db->FetchRow();
        
        $sum_per_user = ($sum / ($users_activ+1));
        
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_per_user}' WHERE id IN(SELECT id FROM db_users_a WHERE date_login > '$t24') ");
        
    }
    
    
    function UpdatePayPoints($sum, $user_id){
    
        $sum = floatval($sum);
        $sum = round($sum, 2);
        $user_id = intval($user_id);
        
        $this->db->Query("SELECT referer_id FROM db_users_a WHERE id = '{$user_id}'");
        $referer_id_1 = $this->db->FetchRow();
        
        $this->db->Query("SELECT referer_id FROM db_users_a WHERE id = '{$referer_id_1}'");
        $referer_id_2 = $this->db->FetchRow();
        
        $this->db->Query("SELECT referer_id FROM db_users_a WHERE id = '{$referer_id_2}'");
        $referer_id_3 = $this->db->FetchRow();
        
        # ќбновл¤ем поинты
        
        # 1
        $sum_for_1 = $sum * 0.4;
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_for_1}' WHERE id = '{$referer_id_1}'");
        
        # 2
        $sum_for_2 = $sum * 0.1;
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_for_2}' WHERE id = '{$referer_id_2}'");
        
        # 3
        $sum_for_3 = $sum * 0.05;
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_for_3}' WHERE id = '{$referer_id_3}'");
        
        $this->SetToAll($sum);
        
    }
    
}
?>
 
DjSuzuki
Участник
Сообщения
186
Реакции
72
  • #14
viktor70 написал(а):
вот сам код, мне надо с реферала только первого уровня начисление и со всех участников проекта:

Код:
<?PHP
class pay_points{

    var $db;
   
    function __construct($db){
   
        $this->db = $db;
   
    }
   
    function SetToAll($sum){
   
        $sum = floatval($sum);
        $sum = round($sum, 2);
        $sum = $sum * 0.05;
       
        $t24 = time() - 60*60*24;
       
        $this->db->Query("SELECT COUNT(*) FROM db_users_a WHERE date_login > '$t24'");
        $users_activ = $this->db->FetchRow();
       
        $sum_per_user = ($sum / ($users_activ+1));
       
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_per_user}' WHERE id IN(SELECT id FROM db_users_a WHERE date_login > '$t24') ");
       
    }
   
   
    function UpdatePayPoints($sum, $user_id){
   
        $sum = floatval($sum);
        $sum = round($sum, 2);
        $user_id = intval($user_id);
       
        $this->db->Query("SELECT referer_id FROM db_users_a WHERE id = '{$user_id}'");
        $referer_id_1 = $this->db->FetchRow();
       
        $this->db->Query("SELECT referer_id FROM db_users_a WHERE id = '{$referer_id_1}'");
        $referer_id_2 = $this->db->FetchRow();
       
        $this->db->Query("SELECT referer_id FROM db_users_a WHERE id = '{$referer_id_2}'");
        $referer_id_3 = $this->db->FetchRow();
       
        # ќбновл¤ем поинты
       
        # 1
        $sum_for_1 = $sum * 0.4;
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_for_1}' WHERE id = '{$referer_id_1}'");
       
        # 2
        $sum_for_2 = $sum * 0.1;
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_for_2}' WHERE id = '{$referer_id_2}'");
       
        # 3
        $sum_for_3 = $sum * 0.05;
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_for_3}' WHERE id = '{$referer_id_3}'");
       
        $this->SetToAll($sum);
       
    }
   
}
?>
Все работает там
 
Viktor
Участник
Сообщения
734
Реакции
113
  • #15
Почему тогда не начисляет за реферала? смотрю именно по базе. за пополнение начислено, а рефереру не пошло. Надо что ли 24 часа выждать?
 
DjSuzuki
Участник
Сообщения
186
Реакции
72
  • #16
viktor70 написал(а):
Почему тогда не начисляет за реферала? смотрю именно по базе. за пополнение начислено, а рефереру не пошло. Надо что ли 24 часа выждать?
Может у тебя значения в базе другие или что...но файл рабочий
 
Viktor
Участник
Сообщения
734
Реакции
113
  • #17
$usid и $user_id это разные значения? или без разницы?
 
Viktor
Участник
Сообщения
734
Реакции
113
  • #19
блин. всё перепробовал, никак не могу понять, почему от реферала реферу не идёт начисление.
 
pligin
Участник
Сообщения
3.654
Реакции
1.336
Telegram
pligin
  • #20
viktor70 написал(а):
вот сам код, мне надо с реферала только первого уровня начисление и со всех участников проекта:

Код:
<?PHP
class pay_points{

    var $db;
   
    function __construct($db){
   
        $this->db = $db;
   
    }
   
    function SetToAll($sum){
   
        $sum = floatval($sum);
        $sum = round($sum, 2);
        $sum = $sum * 0.05;
       
        $t24 = time() - 60*60*24;
       
        $this->db->Query("SELECT COUNT(*) FROM db_users_a WHERE date_login > '$t24'");
        $users_activ = $this->db->FetchRow();
       
        $sum_per_user = ($sum / ($users_activ+1));
       
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_per_user}' WHERE id IN(SELECT id FROM db_users_a WHERE date_login > '$t24') ");
       
    }
   
   
    function UpdatePayPoints($sum, $user_id){
   
        $sum = floatval($sum);
        $sum = round($sum, 2);
        $user_id = intval($user_id);
       
        $this->db->Query("SELECT referer_id FROM db_users_a WHERE id = '{$user_id}'");
        $referer_id_1 = $this->db->FetchRow();
       
        $this->db->Query("SELECT referer_id FROM db_users_a WHERE id = '{$referer_id_1}'");
        $referer_id_2 = $this->db->FetchRow();
       
        $this->db->Query("SELECT referer_id FROM db_users_a WHERE id = '{$referer_id_2}'");
        $referer_id_3 = $this->db->FetchRow();
       
        # ќбновл¤ем поинты
       
        # 1
        $sum_for_1 = $sum * 0.4;
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_for_1}' WHERE id = '{$referer_id_1}'");
       
        # 2
        $sum_for_2 = $sum * 0.1;
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_for_2}' WHERE id = '{$referer_id_2}'");
       
        # 3
        $sum_for_3 = $sum * 0.05;
        $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_for_3}' WHERE id = '{$referer_id_3}'");
       
        $this->SetToAll($sum);
       
    }
   
}
?>
а как в мерчанте вызываешь функцию начисления баллов?
 
Сверху