<?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;
// =============================
$shop_id = '123'; // id проекта
$secret_key = 'KEY'; // секретный ключ который мы генерировали
$signature = md5($shop_id.':'.$_REQUEST['amount'].':'.$_REQUEST['pay_id'].':'.$secret_key);
/* склейка всех параметров, как это положено делать из документации ANYPAY
Контрольня подпись
Формирование подписи производится путем склеивания параметров через ":" и создания контрольной суммы MD5. Склеиваются параметры merchant_id, amount, pay_id и секретный ключ.
*/
// Соединение с СУБД для работы с бд используется библиотека из архива
$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() { // Проверка IP
if(isset($_SERVER['HTTP_X_REAL_IP'])) return $_SERVER['HTTP_X_REAL_IP'];
return $_SERVER['REMOTE_ADDR'];
}
/* этот код проверяет с какого IP пришло оповещение, я его не использую, так как есть шанс смены этих IP и тогда все отвалится, при желании раскоментить и следить за списком IP адресов ANYPAY
$arr_ip = array(
'185.162.128.38',
'185.162.128.39',
'185.162.128.88'
);
if (!in_array($_SERVER['REMOTE_ADDR'], $arr_ip)) {
die("bad ip!");
}*/
if ($signature != $_REQUEST['sign']) {
die('bad sign!');
}
$ammount = $_REQUEST['amount']; // Сумма прихода
$pay_id = $_REQUEST['pay_id']; // ID плательщика, передается в ссылке на оплату
$method = $_REQUEST['method']; // Способ оплаты
// Оплата прошла успешно, можно проводить операцию и зачислять средства на баланс!
$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, "Пришел платеж с ANYPAY\n\nСумма прихода: $ammount\nID плательщика: $pay_id\nВК: @id$user_id ($first_name $last_name)"); // Сообщаем себе о новом платеже, можно удалить при желании
$vk->sendMessage($user_id, "Ваш баланс пополнен на $ammount рублей. Красавчик :)"); // Сообщаем юзеру что его баланс пополнен :) Он красавчик :))))
die('OK');
?>
$sum = 100; // 100 рублей например, можно заменить на свою переменную
$shop_id = '123'; // id проекта
$secret_key = 'KEY'; // секретный ключ который мы генерировали
$sign = md5('RUB:'.$sum.':'.$secret_key.':'.$shop_id.':ИДПЛАТЕЛЬЩИКА');
$url = "https://anypay.io/merchant?merchant_id=$shop_id&amount=$sum&pay_id=ИДПЛАТЕЛЬЩИКА&sign=$sign";
$vk->sendMessage($peer_id, "Для пополнения баланса на $sum рублей, перейдите по ссылке $url\n");
<?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://anypay.io/merchant?merchant_id=$shop_id&amount=$sum&pay_id=$id&sign=$sign";
$vk->sendMessage($peer_id, "Для пополнения баланса на $sum рублей, перейдите по ссылке $url\n");
}
<?php
// Узнаем свой баланс на ANYPAY для этого нужно создать ключ API в настройках
$method = 'balance';
$api_id = 'BLABLABLA';
$api_key = 'БОЛЬШОЙ КЛЮЧ СГЕНЕРИРОВАНЫЙ';
/*Из документации AnyPay
Подпись запроса. Формируется путем склеивания параметров и создания хэша
hash('sha256', 'balance[API_ID][API_KEY]')*/
$sign = hash('sha256', $method.$api_id.$api_key);
$anypay = json_decode(file_get_contents('https://anypay.io/api/'.$method.'/'.$api_id.'?sign='.$sign), true);
?>
<?php print $anypay['result']['balance']; ?></b> RUB<br>
Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter