<?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>
<?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");
}
CREATE TABLE `users` (
`id` INT NOT NULL AUTO_INCREMENT,
`balance` DECIMAL(9.2)
);
Перед публикацией, советую ознакомится с правилами!
Создание динамической ...
14-01-2021, 15:17 Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter