ВОПРОС Как подключить free kassa?

miko21

Участник
Здравствуйте!
Помогите пожалуйста настроить фрикассу.
Вопросы и ответы на сайте по Фрикассе идут от 2016 года.
Но сегодня 25.08.2021 год.
Ссылка на оплату Фрикассы поменялась на pay.freekassa.ru
и вообще как правильно настроить?
Мой обработчик файл freekassa.php


<?php

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 0);
ini_set('display_startup_errors', 0);


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

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

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

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

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

$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['MERCHANT_ORDER_ID'].'|error'; exit(); }

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

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));

# Формируем реферер
$us_data = $db->query("SELECT rid FROM db_users WHERE id = '$uid' LIMIT 1")->fetchArray();
$rid = $us_data['rid'];
$income = ($sum * 0.05);

# Обновляем реферера
$db->query("UPDATE `db_users` SET `money_p` = `money_p` + '$income', `income` = `income` + '$income' WHERE `id` = '$rid'");

# Обновляем пользователя
$db->query("UPDATE `db_users` SET `sum_in` = `sum_in` + '$sum', `ref_to` = `ref_to` + '$income', `money_b` = `money_b` + '$sum_x' 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;
?>

Вот мой файл insert.php


<?php if(!defined('FastCore')){exit('Oops!');}

$opt['title'] = 'Пополнить баланс';
?>

<!-- Header -->
<div class="header bg-gradient-primary pb-6">
<div class="container-fluid">
<div class="header-body">
<!-- Card инфо -->
<div class="row">
<div class="col-12">
<div class="card bg-default">
<div class="card-body">
<div class="text-white">
<p>Пополните свой баланс покупки удобным для вас способом с помощью платежной системы PAYEER или FREE-KASSA.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>

<!-- Page content -->
<div class="container-fluid mt--6">
<?php

# Способ платежа
$py = $pg->segment[2] ?? NULL;

if($py == 'payeer') {
$py_list = 'Payeer, Яндекс.Деньги, Qiwi, Advcash, VISA, MASTERCARD, МИР, MAESTRO, BITCOIN, ETHEREUM, DASH, LITECOIN, Ripple, МТС, ТЕЛЕ2, МЕГАФОН, БИЛАЙН, Связной, Евросеть и наличные платежи Москва.';
$py_prc = '0';
}

if($py == 'freekassa') {
$py_list = 'FKWALLET, Яндекс.Деньги, Qiwi, Payeer, Advcash, Perfect Money, VISA, BITCOIN, ETHEREUM, Monero, Dogecoin, DASH, LITECOIN, Steam Pay, Exmo, МТС, ТЕЛЕ2, МЕГАФОН, БИЛАЙН, Сбербанк Онлайн.';
$py_prc = '0';
}

# Выбран способ оплаты
if ($py) {

$sys_arr = array('payeer' => 'payeer', 'freekassa' => 'freekassa');
$sys_py = $sys_arr[$pg->segment[2]] ?? FALSE;
$opt['title'] = 'Пополнить через '.$sys_py.'';

# Оплата через Payeer
$csrfCheck = $func->csrfVerify();
if (isset($_POST['sum']) && $py == 'payeer' && $csrfCheck == TRUE) {

$sum = round(floatval($_POST["sum"]),2);
$sys = 'payeer';
$sum_x = '0';

# Заносим в БД
$db->query("INSERT INTO db_insert (uid, login, sum, sum_x, sys, `add`, status) VALUES ('$uid','$login','$sum','$sum_x','$sys','".time()."','0')");

$desc = base64_encode($_SERVER["HTTP_HOST"]." - USER ".$login);
$m_shop = $config->py_shop;
$m_orderid = $db->LastInsert();
$m_amount = number_format($sum, 2, ".", "");
$m_curr = "RUB";
$m_desc = $desc;
$m_key = $config->py_secret;

$arHash = array(
$m_shop,
$m_orderid,
$m_amount,
$m_curr,
$m_desc,
$m_key
);
$sign = strtoupper(hash('sha256', implode(":", $arHash)));
?>
<center>
<div class="col-lg-6">
<div class="card mt-3">
<div class="card-profile-image"> <img class="bg-white" src="/img/pay/<?=$sys_py?>.png"> </div>
<div class="p-2 pt-4 pb-4">
<div class="card-title">Сейчас вы попадете на страницу для дальнейшей оплаты.</div>
<form method="GET" action="//payeer.com/api/merchant/m.php">
<input type="hidden" name="m_shop" value="<?=$config->py_shop; ?>">
<input type="hidden" name="m_orderid" value="<?=$m_orderid; ?>">
<input type="hidden" name="m_amount" value="<?=number_format($sum, 2, ".", "")?>">
<input type="hidden" name="m_curr" value="RUB">
<input type="hidden" name="m_desc" value="<?=$desc; ?>">
<input type="hidden" name="m_sign" value="<?=$sign; ?>">
<input type="submit" name="m_process" value="Оплатить через Payeer" class="btn btn-lg btn-primary text-uppercase">
</form>
</div>
</div>
</div><br/><br/><br/>
</center>

<?php
return;
}

# Оплата через FK
$csrfCheck = $func->csrfVerify();
if (isset($_POST['sum']) && $py == 'freekassa' && $csrfCheck == TRUE) {

$sum = round(floatval($_POST["sum"]),2);
$sys = 'freekassa';
$sum_x = '0';

# Заносим в БД
$db->query("INSERT INTO db_insert (uid, login, sum, sum_x, sys, `add`, status) VALUES ('$uid','$login','$sum','$sum_x','$sys','".time()."','0')");

$order_id = $db->LastInsert();
$fk_merchant_id = $config->fk_id;
$fk_merchant_key = $config->fk_key;

# Это соль
$hash = md5($fk_merchant_id.':'.$sum.':'.$fk_merchant_key.':'.$order_id);
?>
<center>
<div class="col-lg-6">
<div class="card mt-3">
<div class="card-profile-image"> <img class="bg-white" src="/img/pay/<?=$sys_py?>.png"> </div>
<div class="p-2 pt-4 pb-4">
<div class="card-title">Сейчас вы попадете на страницу для дальнейшей оплаты.</div>
<form method="GET" action="https://www.free-kassa.ru/merchant/cash.php">
<input type="hidden" name="m" value="<?=$fk_merchant_id?>">
<input type="hidden" name="oa" value="<?=$sum?>">
<input type="hidden" name="s" value="<?=$hash?>">
<input type="hidden" name="us_id" value="<?=$uid;?>">
<input type="hidden" name="o" value="<?=$order_id;?>" />
<input type="submit" value="Оплатить через FreeKassa" class="btn btn-lg btn-danger text-uppercase">
</form>
</div>
</div>
</div><br/><br/><br/>
</center>

<?php
return;
}
?>

<div class="row text-center text-uppercase">
<div class="col-lg-6">
<div class="card">
<div>
<div class="row justify-content-center">
<div class="col-lg-3 order-lg-2 p-1">
<div class="card-profile-image"> <img class="bg-white" src="/img/pay/<?=$sys_py?>.png"> </div>
</div>
</div>
</div>

<h5 class="card-header">Пополнить баланс через <b><?=$sys_py; ?></b></h5>
<div class="card-body bg-secondary">

<script type="text/javascript">
var cf= 1;
function generateThis() {
var sum=document.getElementById("getsum").value;
var mn=sum*cf;
var pro=0;
<?php
$bbb= $db->query('SELECT * FROM db_percent WHERE type = 1 ORDER BY sum_a < sum_a DESC LIMIT 7')->fetchAll();
foreach ($bbb as $inb) {
?>
if(sum><?=$inb['sum_a']-1; ?>){ mn=sum*cf;pro=<?=$inb['sum_x']; ?>;}
<?php } ?>
$("#d1").html(pro *100);
$("#d2").html( (sum*1+(mn=sum*pro)).toFixed(2));
}
</script>
<form action="" method="post">

<?php $func->csrf(); ?>
<div class="text-left h5">Сумма пополнения:</div>
<div class="input-group mb-2">
<div class="input-group-prepend"><span class="input-group-text"><i class="fa fa-ruble-sign"></i></span></div>
<input type="number" class="form-control" value="100" min="1" max="15000" name="sum" onkeyup="generateThis();" id="getsum" />
</div>

<div class="p-2 h3">
Получаете: <b id="d2">100</b> <small>РУБ.</small>
<span class="badge badge-warning p-1" style="font-size: 100%"> <small>Бонус</small> +<b id="d1">0</b>%</span><br/>
</div>

<input type="submit" value="Перейти к оплате" class="btn btn-lg btn-primary"/>
</form>
</div>
</div>
</div>

<div class="col-lg-6">
<div class="card">
<h5 class="card-header">Способы оплаты:</h5>
<div class="card-body"><?=$py_list; ?><hr class="my-4">
<b>Коммисия при пополнении <?=$py_prc; ?>%</b>
</div>
</div>
</div>

</div>
<?php
return;
}
?>
<div class="row">
<div class="col-lg-6 col-md-12">
<a href="/user/insert/payeer" class="card bg-white mb-2">
<h5 class="card-header text-center text-uppercase p-2">ПЛАТЕЖНАЯ СИСТЕМА - PAYEER</h5>
<div class="card-body pb-1" style="background: url(/img/pay/payeer.png) no-repeat center center;background-size: 250px;"><br/><br/><br/></div>
<div class="text-center"><span class="btn btn-primary mb-2">Выбрать</span></div></a>
</div>
<div class="col-lg-6 col-md-12">
<a href="/user/insert/freekassa" class="card bg-white mb-2">
<h5 class="card-header text-center text-uppercase p-2">ПРИЕМ ПЛАТЕЖЕЙ - FREE-KASSA</h5>
<div class="card-body pb-1" style="background: url(/img/pay/freekassa.png) no-repeat center center;background-size: 250px;"><br/><br/><br/></div>
<div class="text-center"><span class="btn btn-primary mb-2">Выбрать</span></div></a>
</div>


<div class="col-12">
<div class="card mt-4">
<div class="card-header border-0"><h3 class="mb-0">История платежей</h3></div>
<div class="table-responsive"><div>
<table class="table align-items-center table-flush">
<thead class="thead-light" align="center">
<tr>
<th scope="col"> Оплачено </th>
<th scope="col"> Зачисление </th>
<th scope="col"> Способ </th>
<th scope="col"> Дата платежа </th>
<th scope="col">Статус</th>
</tr>
</thead>
<tbody align="center">
<?php
$status_array = array(0 => '<i class="bg-warning"></i> Ожидается', 1 => '<i class="bg-success"></i> Пополнено'); // статусы
$img_array = array('payeer' => 'py', 'freekassa' => 'fk'); // платежки
$insert = $db->query("SELECT * FROM db_insert WHERE uid = '$uid' ORDER BY id DESC LIMIT 20")->fetchAll();
foreach($insert as $ins) {
?>
<tr>
<td class="notranslate"><span class="fas fa-ruble-sign"></span> <?=sprintf("%.2f",$ins['sum']); ?></td>
<td class="notranslate"><span class="fas fa-coins"></span> <?=sprintf("%.2f",$ins['sum_x']); ?> </td>
<td class="avatar-group p-0"><div class="avatar avatar-sm bg-white p-0"> <img alt="PS" src="/img/pay/icon/<?=$img_array[$ins['sys']]; ?>.png"> </div></td>
<td> <?=date("d.m.Y в H:i",$ins['add']); ?> </td>
<td class="status"><span class="badge badge-dot mr-4"> <?=$status_array[$ins['status']]; ?> </span></td>
</tr>
<?php
}
?>
</tbody>
</table>
</div></div>
</div>
</div>

</div>

Помогите пожалуйста решить вопрос с подключением Фрикассы!

Спасибо!
 

pligin

Команда форума
Администратор
Вопросы и ответы на сайте по Фрикассе идут от 2016 года.
Но сегодня 25.08.2021 год.
Потому что с того момента ничего не поменялось

Ссылка на оплату Фрикассы поменялась на pay.freekassa.ru
Это ты сам придумал? Загляни в документацию фрикассы и удивись

и вообще как правильно настроить?
Мой обработчик файл freekassa.php
Какое отношение имеет обработчик к форме оплаты и настройке фрикассы?
 

emu400

Местный
возможно давно подключали вот и работает, а новые магазины не работают ( я лично писал им и они мне дали ссылку и сказали смотрите документацию):(
 

rostby

Участник
Подскажите, возможно кто-то разобрался?
Они реально переехали на новый домен и формирование ссылки на оплату изменилось.

Не могу понять как привести ссылку к уму, как в документации.
Где и какие параметры вводить? Возможно в файле? Или в самом модуле (нужно ли обновить если он стоит уже 2а года)

Тех поддержка на вопросы не отвечает - только ссылка на документ, в котором я не понимаю, что от меня требуется и в какую сторону думать =)

Помогите пожалуйста.
 

Навис

Местный
подключение по новому - отличается двумя кодами)) надо добавить пару строк в шифрование md5, ссылка и подпись - на пополнение будет сформирована правильно.
 

Навис

Местный
Минус free-kassa, пробовал подключить по старому, подключил но валюту не меняют и не подключают остальные способы пополнение. написали мол переходите на новую фрее-кассу))

На новой фри-кассе, способов пополнения столько же как и у Payeer! при попытке пополнить баланс через яндекс - платеж блокируется))
Комиссия больше чем у Payeer, так что - самая популярная платежка это паер, нет смысла подключать фри-кассу.
 

rostby

Участник
подключение по новому - отличается двумя кодами)) надо добавить пару строк в шифрование md5, ссылка и подпись - на пополнение будет сформирована правильно.
Подскажите, где эти файлы искать? =) попробую поколупаться, может исходя из кода пойму =)
 
Верх