Автор Тема: Модуль платежный баллов (PayPoints)  (Прочитано 4199 раз)

0 Пользователей и 1 Гость просматривают эту тему.

stranikАвтор темы

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме
  • Дата регистрации: Янв. 2017
  • Сообщений: 1
  • Страна: ru
  • Репутация +0/-0
  • Пол: Мужской
Модуль платежный баллов (PayPoints)
« : 08 Января 2017, 11:43:46 »
Есть модуль _class.pay_points ( платежные баллы) , но не могу понять как сделать чтобы отчисления шли самому пользователю который пополнил баланс.
К примеру отчисления идут рефералам 30%,10%,5% , а как сделать чтобы пользователь сам получал процент от своей пополненной суммы?
Понимаю, что надо дописать код _class.pay_points.php, но как сделать не знаю. Может у кого была такая же проблема.
Вот этот код
<?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.3;
      $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);
      
   }
   
}
?>
 

ardaleon

  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Более 50 сообщений Репутация более 5
  • Дата регистрации: Янв. 2016
  • Расположение: Харьков
  • Возраст: 36
  • Сообщений: 70
  • Страна: ua
  • Поблагодарили: 5 раз(а)
  • Репутация +7/-2
  • Пол: Мужской
  • WEB разработчик
  • Дата рождения:
    1987-07-19
Модуль платежный баллов (PayPoints)
« Ответ #1 : 08 Января 2017, 12:32:35 »
<?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.3;
      $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}'");
     
      # >USVER
      $sum_for_4 = $sum * 1.00;
      $this->db->Query("UPDATE db_users_b SET pay_points = pay_points + '{$sum_for_4}' WHERE id = '{$user_id}'");
     
      $this->SetToAll($sum);
     
   }
   
}
?>
пробуй
a:0:{}
 

admiralunev

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме
  • Дата регистрации: Окт. 2016
  • Расположение: Mariupol
  • Сообщений: 2
  • Страна: ua
  • Репутация +0/-0
  • Пол: Мужской
Модуль платежный баллов (PayPoints)
« Ответ #2 : 08 Января 2017, 17:24:32 »
a:0:{}
 

romanvad

  • *
  • Оффлайн
  • Награды Более 7 лет на форуме Более 10 сообщений
  • Дата регистрации: Янв. 2017
  • Сообщений: 19
  • Страна: ru
  • Репутация +0/-0
  • Пол: Мужской
Модуль платежный баллов (PayPoints)
« Ответ #3 : 29 Марта 2017, 11:34:49 »
Подскажите почему  обсолютно всем  зачисляются 50 баллов. Даже если новый участник регистрируется ему все  равно  50  падает. Как  и где  это  убрать. Желательно  в личку скиньте  пож
 

takebet

Модуль платежный баллов (PayPoints)
« Ответ #4 : 24 Июля 2017, 11:55:25 »
есть у кого рабочий модуль платёжных баллов? А то что скачано, не работает зачисление баллов при пополнении. Не пойму в чём причина, вроде настроено всё верно.
 

kvozimir

  • снова в skype --> kvozimir
  • *
  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Более 2000 сообщений Топ 10 по созданным темам Топ 10 по сообщениям Репутация  более 25 Более 50 созданных тем Благодарность от форума За помощь пользователям За время в онлайне на форуме
  • Дата регистрации: Фев. 2016
  • Возраст: 32
  • Сообщений: 2028
  • Страна: ru
  • Поблагодарили: 242 раз(а)
  • Репутация +40/-1
  • Пол: Мужской
  • Дата рождения:
    1992-04-18
    Социальные сети:
    ВКонтакте
Модуль платежный баллов (PayPoints)
« Ответ #5 : 24 Июля 2017, 12:38:53 »
в мерчант код зачисления баллов вставлял?

 

takebet

Модуль платежный баллов (PayPoints)
« Ответ #6 : 24 Июля 2017, 13:47:49 »
в мерчант код зачисления баллов вставлял?
Там две строки только:
# Платежные баллы
$pp = new pay_points($db);
$pp ->UpdatePayPoints($ik_payment_amount,$user_id);
 

APTEMOH

  • *
  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Болеее 500 сообщений Топ 10 по сообщениям За помощь пользователям Репутация более 15 Более 10 созданных тем
  • Дата регистрации: Сен. 2015
  • Расположение: Расположение
  • Сообщений: 529
  • Страна: th
  • Поблагодарили: 64 раз(а)
  • Репутация +19/-2
  • Пол: Мужской
    Социальные сети:
    ВКонтакте
Модуль платежный баллов (PayPoints)
« Ответ #7 : 24 Июля 2017, 14:38:53 »
Файл в папке classes?
Кеширование есть? (ддос защита)

takebet

Модуль платежный баллов (PayPoints)
« Ответ #8 : 24 Июля 2017, 14:44:18 »
Файл в папке classes?
Кеширование есть? (ддос защита)
да, защита стоит. С защитой не будет работать?

Добавлено сообщение: [time]24 Июля 2017, 15:20:19[/time]
Проверил без защиты, всё-равно не работают баллы.

Добавлено сообщение: 24 Июля 2017, 17:30:14
Ещё актуально: платежные баллы не зачисляются!
 

romcka8

  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Болеее 500 сообщений Топ 10 по сообщениям Более 10 созданных тем
  • Дата регистрации: Фев. 2016
  • Сообщений: 648
  • Страна: 00
  • Поблагодарили: 22 раз(а)
  • Репутация +2/-0
  • Пол: Мужской
Модуль платежный баллов (PayPoints)
« Ответ #9 : 25 Июля 2017, 12:00:41 »
да, защита стоит. С защитой не будет работать?

Добавлено сообщение: [time]24 Июля 2017, 15:20:19[/time]
Проверил без защиты, всё-равно не работают баллы.

Добавлено сообщение: 24 Июля 2017, 17:30:14
Ещё актуально: платежные баллы не зачисляются!
А что именно нужно сделать?
 

takebet

Модуль платежный баллов (PayPoints)
« Ответ #10 : 25 Июля 2017, 15:07:13 »
А что именно нужно сделать?
В общем на данный момент сделал зачисление баллов при пополнении самому себе. Нужно сделать чтобы от реферала зачисление баллов 40% работало и от всех участников 5%.
Так как модуль стандартный, то именно в мерчанте не хватает записей. На данный момент вот код мерчанта:

"Открыть код"
<?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*1.00;
 
   
   $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}'");
   
   
   
   # Зачисляем средства рефереру и дерево
   $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";
}
?>
[свернуть]

Добавлено сообщение: 26 Июля 2017, 00:41:21
Всё, решил проблему с баллами: главное, это верно всё настроить в мерчанте. Например: если на сайте нет конкурсов, а в мерчанте стоит код конкурсов, то его надо убрать, тогда баллы будут работать. Если кому нужен файл мерчанта с баллами, пишите в личку.
 

fact

  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!!
  • Дата регистрации: Окт. 2017
  • Сообщений: 2
  • Страна: ru
  • Репутация +0/-0
  • Пол: Мужской
Модуль платежный баллов (PayPoints)
« Ответ #11 : 27 Октября 2017, 13:32:02 »
как спрятать платежные баллы то есть что бы счет баллов был скрытый примерно как в https://kolxoz.net/ балов не видно пока они есть и показаны если на счету серебра больше чем доступно баллов
 

kvozimir

  • снова в skype --> kvozimir
  • *
  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Более 2000 сообщений Топ 10 по созданным темам Топ 10 по сообщениям Репутация  более 25 Более 50 созданных тем Благодарность от форума За помощь пользователям За время в онлайне на форуме
  • Дата регистрации: Фев. 2016
  • Возраст: 32
  • Сообщений: 2028
  • Страна: ru
  • Поблагодарили: 242 раз(а)
  • Репутация +40/-1
  • Пол: Мужской
  • Дата рождения:
    1992-04-18
    Социальные сети:
    ВКонтакте
Модуль платежный баллов (PayPoints)
« Ответ #12 : 28 Октября 2017, 10:08:23 »
что то я не вижу их...как они  там реализованы
 

fact

  • *
  • Оффлайн
  • Награды Более 6 лет на форуме !!!
  • Дата регистрации: Окт. 2017
  • Сообщений: 2
  • Страна: ru
  • Репутация +0/-0
  • Пол: Мужской
Модуль платежный баллов (PayPoints)
« Ответ #13 : 28 Октября 2017, 14:50:13 »
ВОТ ТАК КОГДА ХВАТАЕТ БАЛОВ ДЛЯ ВЫПЛАТЫ http://prntscr.com/h3354r А ВОТ ТАК КОГДА НЕ ХВАТАЕТ http://prntscr.com/h335rl
 

kvozimir

  • снова в skype --> kvozimir
  • *
  • *
  • Оффлайн
  • Награды Более 8 лет на форуме Более 2000 сообщений Топ 10 по созданным темам Топ 10 по сообщениям Репутация  более 25 Более 50 созданных тем Благодарность от форума За помощь пользователям За время в онлайне на форуме
  • Дата регистрации: Фев. 2016
  • Возраст: 32
  • Сообщений: 2028
  • Страна: ru
  • Поблагодарили: 242 раз(а)
  • Репутация +40/-1
  • Пол: Мужской
  • Дата рождения:
    1992-04-18
    Социальные сети:
    ВКонтакте
Модуль платежный баллов (PayPoints)
« Ответ #14 : 29 Октября 2017, 18:58:27 »
интересно,в принципе не сложно реализвать
 

takebet

Модуль платежный баллов (PayPoints)
« Ответ #15 : 30 Октября 2017, 00:49:35 »
Рабочий модуль баллов:
Скачать