Администрация портала пометила данную новость где фигурирует информация о проекте со статусом SCAM
Мы хотим предупредить своих пользователях о возможных проблемах с использованием данного сервиса!
В данной статье мы рассмотрим работу с обработчиком платежей, именно от него зависит пополнение баланса ваших пользователей.
Для начала нужно зарегистрироваться и создать новую кассу, делается это очень легко и просто
Теперь наша касса появилась в списке, она еще не активирована, так как требуется модерация сайта и его подтверждение
Переходим у управлению кассой и переходим в раздел Настройки
Здесь нужно установить галочку что мы будем использовать одинаковое секретное слово, так же включаем тестовый режим и подтверждения платежа. Не забудьте отключить тестовый режим после старта вашего проекта!
Что бы активировать проект, нужно на сайте разместить кнопку сервиса, после чего нажать кнопку активации, на этом настройки в магазине закончились, копируем секретное слово и ID магазина
Теперь на сервере создаем файл freekassa.php или назовите его как угодно, только не забудьте указать потом полный путь к нему в настройках магазина, в разделе URL оповещения
Берем код из документации FREE KASSA
<?php
$merchant_id = '177'; // ID вашего магазина
$merchant_secret = 'supersecret'; // Секретное слово которое сгенерировали
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("hacking attempt!");
}
$sign = md5($merchant_id.':'.$_REQUEST['AMOUNT'].':'.$merchant_secret.':'.$_REQUEST['MERCHANT_ORDER_ID']);
if ($sign != $_REQUEST['SIGN']) {
die('wrong sign');
}
// Здесь мы уже выполняем нужный код, например для работы с бд
die('YES');
И вроде ничего сложного нет, но у новичков может возникнуть проблема для подключения и создания ссылки для оплаты в боте или сайте. Для сайта достаточно создать форму:
<?php
$merchant_id = '7012'; // ID вашего магазина
$secret_word = 'secret'; // Секретное слово
$order_id = '154'; // Номер заказа или ID юзера например
$order_amount = '100.11'; // Сумма которую пользователь хочет заплатить
$sign = md5($merchant_id.':'.$order_amount.':'.$secret_word.':'.$order_id); // Формируем подпись
// Далее создаем форму для пользователя
?>
<form method='get' action='https://www.free-kassa.ru/merchant/cash.php'>
<input type='hidden' name='m' value='<?php=$merchant_id?>'>
<input type='hidden' name='oa' value='<?php=$order_amount?>'>
<input type='hidden' name='o' value='<?php=$order_id?>'>
<input type='hidden' name='s' value='<?php=$sign?>'>
<input type='hidden' name='i' value='1'>
<input type='hidden' name='lang' value='ru'>
<input type='submit' name='pay' value='Оплатить'>
</form>
Этого кода уже достаточно что бы начать принимать платежи. Для приема платежей через бота, например у вас какой-то магазин то тут можно взять за основу нашу прошлую статью Готовый обработчик платежей ANYPAY.io для ботов ВК и сайтов и немного перепишем под FREEKASSA
<?php
// ============ KOTOFF.NET ============== //
// БИБЛИОТЕКИ ПРИ НЕОБХОДИМОСТИ
require_once('simplevk-master/autoload.php');
require './vendor/autoload.php';
use DigitalStar\vk_api\VK_api as vk_api;
use Krugozor\Database\Mysql\Mysql as Mysql;
// =============================
$merchant_id = '177'; // ID магазина
$merchant_secret = 'supersecret'; // Секретное слово
// Соединение с СУБД для работы с бд используется библиотека из архива
$db = Mysql::create("localhost", "логин", "пароль")->setDatabaseName("имябазы")->setCharset("utf8mb4");
// можно удалить, если используете свое или для сайта ============
const VK_KEY = "токен от группы вк для работы в ботах"; // Токен сообщества
const VERSION = "5.101"; // Версия API VK
$vk = vk_api::create(VK_KEY, VERSION);
$p_id = 2000000001; // ИД беседы или юзера для доп. оповещения
// ================================================================
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("hacking attempt!");
}
$sign = md5($merchant_id.':'.$_REQUEST['AMOUNT'].':'.$merchant_secret.':'.$_REQUEST['MERCHANT_ORDER_ID']);
if ($sign != $_REQUEST['SIGN']) {
die('wrong sign');
}
//Так же, рекомендуется добавить проверку на сумму платежа и не была ли эта заявка уже оплачена или отменена
//Оплата прошла успешно, можно проводить операцию.
$ammount = $_REQUEST['AMOUNT'];// Сумма прихода
$pay_id = $_REQUEST['MERCHANT_ORDER_ID'];// ID плательщика, передается в ссылке на оплату
$method = $_REQUEST['CUR_ID']; // ID эелектронной валюты, список есть в документации FREEKASSA
// Например если пользователь оплатил QIWI То это номер 155
if ($method == 155) {$qiwi = 'QIWI';}
// Оплата прошла успешно, можно проводить операцию и зачислять средства на баланс!
$db->query("UPDATE `users` SET balance = balance + ?i WHERE ids = ?i LIMIT 1", $ammount, $pay_id); // Пополняем баланс юзера, переписать под свой запрос!
$user_info = $vk->userInfo($pay_id);
$first_name = $user_info['first_name'];
$last_name = $user_info['last_name'];
$vk->sendMessage($p_id, "Пришел платеж с FREEKASSA\n\nСумма прихода: $ammount\nID плательщика: $pay_id\nВК: @id$user_id ($first_name $last_name)"); // Сообщаем себе о новом платеже, можно удалить при желании
$vk->sendMessage($user_id, "Ваш баланс пополнен на $ammount рублей. Красавчик :)"); // Сообщаем юзеру что его баланс пополнен :) Он красавчик :))))
die('YES');
А для формирования ссылки для оплаты потребуется следующий код:
<?php
require_once('simplevk-master/autoload.php');
require './vendor/autoload.php';
use DigitalStar\vk_api\VK_api as vk_api; // Основной класс
use Krugozor\Database\Mysql\Mysql as Mysql;
// Соединение с СУБД и получение объекта-"обертки" над "родным" mysqli
$db = Mysql::create("localhost", "логин", "пасс")->setDatabaseName("бд")->setCharset("utf8mb4");
const VK_KEY = "ключ сообщества"; // Токен сообщества
const CONFIRM_STR = "код подверждения"; // Тот самый ключ из сообщества
const VERSION = "5.101"; // Версия API VK
$vk = vk_api::create(VK_KEY, VERSION)->setConfirm(CONFIRM_STR);
$vk->initVars($peer_id, $message, $payload, $user_id, $type, $data); // Инициализация переменных
if ($data->type == 'message_new') { //Проверяем, если это сообщение от пользователя
$sum = 100; // 100 рублей например
$shop_id = '123'; // id проекта
$secret_key = 'KEY'; // секретный ключ который мы генерировали
$sign = md5('RUB:'.$sum.':'.$secret_key.':'.$shop_id.':'.$id.'');
$url = "https://www.free-kassa.ru/merchant/cash.php?m=$shop_id&oa=$sum&o=$id&s=$sign";
$vk->sendMessage($peer_id, "Для пополнения баланса на $sum рублей, перейдите по ссылке $url\n");
}
Остается создать таблицу с юзерами и полем balance
CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT,
`balance` DECIMAL(9.2)
);
На этом все, исходники как всегда можно скачать ниже
FREEKASSA блокирует аккаунты пользователей по своему усмотрению, кроме блокировки кассы, автоматически блокируется и их собственный кошелек FKWallet, ведь с кассы можно деньги вывести только туда. Мы не рекомендуем пользоваться данной кассой!
Все остальные действия совершаете на свой страх и риск. Проект помечен как SCAM
FreeKassa SKAM
Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter