• Данный материал предоставлен сайтом исключительно в ознакомительных целях.
    Администрация не несет ответственности за его содержимое. По всем жалобам пишите на почту abusevhguru@yandex.ru

Скрипт Подключение FREEKASSA

REDUX-DEV

Premium
Сообщения
232
Реакции
98

REDUX-DEV

  • 232
  • 98
да как он бл*ять может помагать если он написал неправильную инструкцию!! Люди раздуплитесь уже..
КАК ОН МОЖЕТ ПОМОЧЬ ЕСЛИ НЕ ЗНАЕТ КАК ЭТО СДЕЛАТЬ? Он перед этой инструкцией создал 3 темы с вопросами по этой теме...
Полупокер ты)
 

eminemja

Пользователь
Сообщения
53
Реакции
2

eminemja

  • 53
  • 2
[СпсQUOTE="KESHEVSKY, post: 473702, member: 45443"]
Добрый день!
Сегодня хочу показать вам как подключать FreeKassa - платежную систему, как вашему сайту.
Ну что, начнем!

Как мы знаем, пополнение идет следующим образом :
1. Пользователь вводит в поле сумму, которую требуется пополнить.
2. Нажимает на кнопку "Пополнить".
3. Идет перенаправление на сайт FK, где дальше мы выбираем способ оплаты ( QIWI, BankTransfer и т.д. ).
4. После выбора способы оплаты, пользователь нажимает на кнопку "Оплатить".
5. Далее, при при помощи обработчика, ссылку на которого мы указали в нашей уже "Активной" кассе, происходит исполнение кода.
Посмотреть вложение 5058
Посмотреть вложение 5059
Посмотреть вложение 5060
Посмотреть вложение 5061
Посмотреть вложение 5062

Код:
<?php
// Конечно не желательно все в кучу делать, лучше вот следующий код сделать в файле config.php
// Тут у нас идет подключение к базе данных, а данный подключения занесены в переменную $bsd

$bd_server = 'localhost'; $bd_login = 'пользователь БД'; $bd_pass = 'ваш пароль от БД'; $bd_name = 'название вашей БД';
$bsd = mysqli_connect($bd_server, $bd_login, $bd_pass)
or die("<p>Ошибка подключения к базе данных!</p>");
mysqli_select_db($bsd, $bd_name)
or die("<p>Ошибка выбора базы данных!</p>");
mysqli_query($bsd, "SET NAMES utf8");


// END



    $merchant_id = '123456'; // ID вашего магазина
    $merchant_secret = 'CodeSecret'; // Наше секретное слово ( в 1 спойлере есть скрин где он находится )

    function getIP() {
  if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) return $_SERVER['HTTP_CF_CONNECTING_IP'];
  if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
  return $_SERVER['REMOTE_ADDR'];
    }
    if (!in_array(getIP(), array('136.243.38.147', '136.243.38.149', '136.243.38.150', '136.243.38.151', '136.243.38.189', '136.243.38.108'))) {
    die("hacking attempt!"); // Своего рода небольшая проверка
    }

    $sign = md5($merchant_id.':'.$_REQUEST['AMOUNT'].':'.$merchant_secret.':'.$_REQUEST['MERCHANT_ORDER_ID']); // Авторизация в FK и шифрование

    if ($sign != $_REQUEST['SIGN']) {
    die('Wrong sign'); // Если авторизация в FK не прошла в логе будте "Wrong sign"
    }

// Идет выполнения кода, если успешная оплата!
// $bsd - Данные от БД ( выше указывались данные от БД )
$pay_id = $_POST['intid'];
$amount = $_POST['AMOUNT']; // Сумма пополнения
$user_id = $_POST['MERCHANT_ORDER_ID']; // Номер заказа
$users = mysqli_query($bsd, "SELECT * FROM `users` WHERE id='$user_id'"); // Выборка всех пользователей нашего сайта из БД

      if ( $users->num_rows == 1 ){ // Если значение получилось равно 1, то выполняется FULL код после пополнения :

// Добавление пользователю на баланс денежки
          mysqli_query($bsd, "UPDATE `users` SET `balance` = `balance` + $amount WHERE id='$user_id'");

// Занесение в историю пополнений на сайте
          mysqli_query($bsd, "INSERT INTO `deposits` (`pay_id`, `user_id`, `size`, `data`) VALUES ('$pay_id', '$user_id', '$amount', NOW());");

      }else{

          die("Пользователь в БД не найден");

      }
    die('YES');



Все файлы будут в архиве ( всего 3 файла )
Обработчик, успех, ошибка.
Если что-то будет не понятно, то обращайтесь в телеграмм, указанный ниже.
Если кому-то помог не откажусь от симпы :)
( Если кому-то что-то не понятно, помогу бесплатно )

TG : @mrakk1337


[/QUOTE]
Классно
 

jhon ghost

Новичок
Сообщения
2
Реакции
0

jhon ghost

  • 2
  • 0
приветствую, можете объяснить как подключить и как это работает ??
 

RowBow

Новичок
Сообщения
2
Реакции
0

RowBow

  • 2
  • 0
Высер это твой код.
Ты вдумайся в свои слова:

"что бы люди поняли как вообще работает код"

Ты идиот? Ты выложил нерабочий код с супер хуевым синтаксисом и не правильными комментариями и хочешь что бы люди его понимали? Да на гитхабе полно рабочих решений с нормальным читабельным кодом, зачем ты свой мусор нерабочий выкладываешь людям?
Никто твой код даже не читал а уже накидали лайков и комментов.. ужс
Привет! А где взять рабочий код и куда его лучше вставить на сайте?...,я пока ещё профан в этом,но очень надо,так-как пеер мой сайт на пополнения не подключает...
 

RowBow

Новичок
Сообщения
2
Реакции
0

RowBow

  • 2
  • 0
Может,кто подскажет..,вот это правильный код? Надо ли в нём прописывать данные кассы id-secret,или я правильно понимаю,что он перенаправляет на config.php,в котором прописаны эти данные и если да,то на какие файлы мне ссылаться здесь :

ссылки и методы.jpg

<?

# Старт сессии
session_start();

# Константа для Include
define('FastCore',true);

# Подгрузка классов системы
spl_autoload_register(function ($lfc) {
require 'core/'.$lfc.'.php';
});

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

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

# База данных
$db = new db($config->db_host, $config->db_user, $config->db_pass, $config->db_name);

# Убираем айпи клоуда, и пишем реальный айпи юзера
if (isset($_SERVER['HTTP_CF_CONNECTING_IP'])) $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_CF_CONNECTING_IP'];

function getIP() {
if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
return $_SERVER['REMOTE_ADDR'];
}
if (!in_array(getIP(), array('136.243.38.147', '136.243.38.149', '136.243.38.150', '136.243.38.151', '136.243.38.189', '136.243.38.108'))) {
die("Попался лошара, хер ты взломаешь)");
}


$merchant_id = $config->fk_id;
$merchant_secret = $config->fk_key2;

$sign = md5($merchant_id.':'.$_REQUEST['AMOUNT'].':'.$merchant_secret.':'.$_REQUEST['MERCHANT_ORDER_ID']);

if ($sign != $_REQUEST['SIGN']) {
die('wrong sign');
}

$m_orderid = $_REQUEST['MERCHANT_ORDER_ID'];

$id = intval($m_orderid);
$num = $db->query("SELECT * FROM `db_insert` WHERE `id` = '$id'")->numRows();

if($num == 0) { echo $_POST['m_orderid'].'|error'; exit(); }

$data = $db->query("SELECT * FROM `db_insert` WHERE `id` = '$id'")->fetchArray();

# Если статус уже 1 прекращаем работу и говорим что депозит сделан
if($data['status'] == 1){ exit($_POST['MERCHANT_ORDER_ID'].'|success');}
# Если сумма в бд не равняется сумме в ПС то прекращаем работу и выводим ошибку
if($data['sum'] != $_POST['AMOUNT']){ exit($_POST['MERCHANT_ORDER_ID'].'|error');}

$uid = $data['uid'];
$sum = $data['sum'];
$time = time();


# Начисление с бонусом
$bonx = $db->query("SELECT * FROM `db_percent` WHERE `type` = '1' ORDER BY `sum_a` BETWEEN {$sum} AND {$sum}
OR {$sum} BETWEEN `sum_a` AND `sum_b`")->fetchArray();

$bonus = $bonx['sum_x'];
$sum_x = ($sum + ($sum * $bonus));

# Реф-система
$uref = new income_ref($db);
$uref->uRef($uid, $sum);

# Делаем депозит юзеру
$db->query("UPDATE `db_users` SET `sum_in` = `sum_in` + '$sum', `speed` = `speed` + '$sum_x' , last_sbor = '$time' WHERE `id` = '$uid'");

# Пишем в статистику
$db->query("UPDATE `db_insert` SET `status` = '1', `sum_x` = '$sum_x', `end` = '$time' WHERE `id` = '$id'");
$db->query("UPDATE `db_stats` SET `inserts` = `inserts` + '$sum' WHERE `id` = '1'");

echo $m_orderid."|success"; // Успешная оплата
exit;
?>

Многие делятся кодами,но не показывают в какой файл и в каком месте его вставлять..,что для меня,как для новичка,самое проблемное и коды эти в итоге бесполезны...
 

REDUX-DEV

Premium
Сообщения
232
Реакции
98

REDUX-DEV

  • 232
  • 98
а что подключить freekassa к сайту нужно бд?
Подключение в БД всегда должно быть, где данные будут храниться ?
Конкретно для платежей : fk_history например для хранения самих транзакций и их статуса проведения ( Например : "Выполнено" "Ожидается" "Отклонено" )
Также например для настроек в вебе : fk_settings - все данные для подключения кассы ( секретное слово, id кассы и так далее ).
Стоит немного изучить вообще структуру и логику работы кассы (-касс). - она у всех практически одна.
 

le0n

Пользователь
Сообщения
62
Реакции
0

le0n

  • 62
  • 0
Подключение в БД всегда должно быть, где данные будут храниться ?
Конкретно для платежей : fk_history например для хранения самих транзакций и их статуса проведения ( Например : "Выполнено" "Ожидается" "Отклонено" )
Также например для настроек в вебе : fk_settings - все данные для подключения кассы ( секретное слово, id кассы и так далее ).
Стоит немного изучить вообще структуру и логику работы кассы (-касс). - она у всех практически одна.
Можете написать в лс?
 
Сверху