KOTOFF.NET
  • Главная
  • Пользователи
  • Контакты
  • Статистика
  • Правила
  • О нас
  • Вход / Регистрация

Готовый обработчик платежей ANYPAY.io для ботов ВК и сайтов

Статьи / PHP

И так мы рассмотрим подключение магазина и настройку скрипта (обработчика) платежей для автоматического приема платежей, если 1 пункт вы уже выполнили и вам нужен только обработчик, перейдите к разделу 2.

1.Подключение магазина.
Если подключаете группу ВК с установленным ботом, то вам нужно будет писать в поддержку ANYPAY, только так можно подключить группу без сайта, в случае с сайтом, просто заполняем форму добавление нового магазина, при этом сайт должен быть полностью работоспособным и все ссылки должны быть рабочими.


После того, как Ваш магазин одобрят, переходим в настройки 



Генерируем ключ, сохраняем его и так же записываем ID проекта, они нам еще пригодятся. Не забывайте включить Подтверждение платежа

2. Настройка обработчика.

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

?>

Все предельно просто и понятно, для упрощения задачи, я все прокомментировал  в коде, именно это и есть обработчик, в архиве он называется как anypay.php и именно он будет указываться в настройках вашего магазина 

Для формирования ссылки на оплату используется следующий не хитрый код:

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

В данном коде необходимо так же указать ID плательщика, это может быть ID пользователя Вконтакте. В архиве так же лежит небольшой код с ботом
<?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");

}

А теперь бонус!
Тут я покажу как работать с API AnyPay, этого достаточно что бы понять остальную документацию, так как там я считаю описано не совсем корректно в отношении простых смертных, но стоит разобраться с 1 методом, другие станут понятнее :)
Открываем настройки профиля и переходим к вкладке API


Записываем API ID и API ключ, включаем API и идем в редактор кода и пишем следующий код:
<?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>

Все предельно просто, для других методов остается добавить только новые параметры следуя документации на сайте, а данным кодом мы выведем свой баланс на ANYPAY. На этом у меня все, если было полезно и вы хотите больше видеть подобных статей, ставьте лайк, они бесплатные!  😉 



anypay-kotoff_net.rar
  • Сергей Котов
  • 22.09.2020
  • 14 169
  • 4
Создание бота ВК на inline кнопках и обновление на версию API 5.103+ подробная инструкция и примеры
Создание бота ВК на inline кнопках и обновление на версию API 5.103+ подробная инструкция и примеры
2-11-2019, 06:01, Статьи / PHP
Простой игровой бот для ВК, создаем игру для Вконтакте + исходники! | Часть 1
Простой игровой бот для ВК, создаем игру для Вконтакте + исходники! | Часть 1
19-04-2020, 22:05, PHP
Подключение к базе данных MySQL и работа с ней. Используем ее для ботов VK
Подключение к базе данных MySQL и работа с ней. Используем ее для ботов VK
5-04-2019, 20:16, Статьи / PHP
Python и LongPoll VK, или как запустить скрипт ВК и настроить Python, для новичков
Python и LongPoll VK, или как запустить скрипт ВК и настроить Python, для новичков
29-06-2019, 08:34, Статьи / Python
  1. chun2maru

    chun2maru Гость 30 августа 2021 18:34

    Не одобрили бота в тех-поддержке сервиса :)
    Подскажите - какие ещё можно подключить платёжки (желательно бесплатные)
    1. Фиксик

      Фиксик Гость 8 августа 2022 17:07

      А ты сделай на сайт этот шаблон какой-то и отправь запрос они примут

  2. Гость Игорь

    Гость Игорь Гость 17 ноября 2021 14:51

    Напиши мне в телеграм ****

    вот мой телеграм

    подскажу пару способов.  ☺️


    1. Сергей Котов

      Сергей Котов@Сергей Котов 17 ноября 2021 17:33

      Напишите нам всем об этих способах, думаю всем будет интересно узнать о них сразу здесь и не задавать вопросы в мессенджерах  

{login}

Твой комментарий..

Заказывай!
Разработка ботов на заказ, любой сложности, обращаться:
 VK KOTOFF.net - Сообщество, в личные сообщения или по контактам указанным там 
 mail: [email protected]

Рекламный блок
  • Новости
  • Платная категория
  • Блог
  • Игры
  • Обновления
  • Программы
  • Статьи
    • PHP
    • Python
    • JS
  • Дизайн
    • PSD исходники
  • DLE
    • Шаблоны
    • Модули
    • Хаки
  • Магазин
    • Скрипты
Комментарии
Система комментариев на PHP
Полезная статья
Создание простого Telegram-бота с клавиатурой и inline-кнопками [Часть 2]
Класс, хорошая тема
Динамическая обложка для группы ВК, последний подписчик, топ комментатор и прочее
Как отключить вывод результата cron в папку modules/cron в Open Server? Крон запускает несколько
Динамическая обложка для группы ВК, последний подписчик, топ комментатор и прочее
Планируете ли вернуться к динамической обложке?
Скрипт для скачивания видео с YouTube на PHP
Уже не работает.
Все комментарии..
Полный список последних комментариев
Лучшие новости
Всего публикаций: 115
Добавлено за сутки: +0
Записей в блоге: 1
Добавлено за сутки: +0
Комментариев: 936
Добавлено за сутки: +0
Пользователей: 4124
Добавлено за сутки: +0
Полная статистика..
Подробная статистика сайта
Loading...

Нашли ошибку?
Вы можете сообщить об этом администрации.
Выделив текст нажмите CTRL+Enter

Полезные ссылки
  • О проекте
  • Наши контакты
  • Администрация
  • Рекламные материалы
  • Идеи и предложения
  • Ответы на вопросы
Информация
  • Условия сделки
  • Способы оплаты
  • Поддержка / F.A.Q
  • Онлайн документация
  • Статистика сайта
  • Список пользователей
Услуги/Работа
  • Разработка ботов ВК
  • Обновление проекта
  • Консультация/поддержка
KOTOFF.net

Copyright © Footer 2019-2023. All right reserved.
KOTOFF.net - Уроки по PHP, SQL, IT новости
Быстрый вход

Используйте социальные сети для быстрой регистрации и авторизации.

Google
ВКонтакте
Яндекс
Mail.ru
Создать аккаунт / Регистрация
Авторизация

Я забыл свой пароль