Пользователь admin разместил новый ресурс:
Платежные баллы - Модуль Платежные баллы для Фруктовой Фермы
Платежные баллы - Модуль Платежные баллы для Фруктовой Фермы
Узнать больше об этом ресурсе...Модуль Платежные баллы для Фруктовой Фермы
Viktor
Участник
- Сообщения
- 734
- Реакции
- 113
Нужен доступ к MySQL. Вечером посмотрюviktor70 написал(а):Не начисляет баллы при пополнении. может кто исправить?
DjSuzuki
Участник
- Сообщения
- 186
- Реакции
- 72
Тебе нужно в мерчанты добавить функцию зачисления баллов...к примеруviktor70 написал(а):Не начисляет баллы при пополнении. может кто исправить?
Код:
$pay_points = $ik_payment_amount*0.50;
Тем самым у тебя будет начисляться в баллы 50% от суммы пополнения
Viktor
Участник
- Сообщения
- 734
- Реакции
- 113
перед запросом на зачисление серебра.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
DjSuzuki
Участник
- Сообщения
- 186
- Реакции
- 72
Так это все в модуле естьviktor70 написал(а):Вот теперь сработало. Только ещё надо, чтобы с реферала пополнение в баллы было, подскажите где и что вписать! рефов 1 уровень, а так же со всех пополнений участинков дополнительно 5% например.
Viktor
Участник
- Сообщения
- 734
- Реакции
- 113
DjSuzuki
Участник
- Сообщения
- 186
- Реакции
- 72
Да все работает в файле class.pay_pointsviktor70 написал(а):а не работает нифига.
Viktor
Участник
- Сообщения
- 734
- Реакции
- 113
вот сам код, мне надо с реферала только первого уровня начисление и со всех участников проекта:
Код:
<?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
Все работает там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
DjSuzuki
Участник
- Сообщения
- 186
- Реакции
- 72
Может у тебя значения в базе другие или что...но файл рабочийviktor70 написал(а):Почему тогда не начисляет за реферала? смотрю именно по базе. за пополнение начислено, а рефереру не пошло. Надо что ли 24 часа выждать?
Viktor
Участник
- Сообщения
- 734
- Реакции
- 113
DjSuzuki
Участник
- Сообщения
- 186
- Реакции
- 72
Разныеviktor70 написал(а):$usid и $user_id это разные значения? или без разницы?
Viktor
Участник
- Сообщения
- 734
- Реакции
- 113
а как в мерчанте вызываешь функцию начисления баллов?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); } } ?>