PHP [FREEKASSA]: Notification payments

Fermin

Известный
Автор темы
10
22
Доброго времени суток. Наверняка есть люди, которые используют модуль FREEKASSA для приема платежей на своем сайте. В этой теме я бы хотел показать и рассказать, как подкрутить к этому модулю уведомления о платежах в личные сообщения вконтакте. Думаю, кому-нибудь это пригодится. Также готовый сурс модуля (уже с Notipay) я прикреплю в архиве. Статья рассчитана на людей, у которых уже стоит FK, в ней не будет рассказано о том, как прикрутить FK к своему сайту (при необходимости запилю отдельно).

За основу я брал SAMP модуль FK:

35566

link

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

35571


Далее, создаем ключ доступа [Настройки->Работа с API -> Ключи доступа] (сразу же сохраняем его куда-нибудь в txt пока):

35577


"Настройки" -> "Работа с API" -> "Callback API", в поле Адрес: указываем путь к Notipay.php, в поле секретный ключ задаете свой секрет кей.

35572

Теперь настройте Notipay.php

35573



Как только вы заполнили Notipay и Callback API настройки сервера, жмете подтвердить (на странице CallBackAPI). На этом настройка сообщества завершена.

Теперь перейдем к FK, в файл lib/FreekassaModel.php , в функцию CreatePayment() вставляем следующий код:

lib/FreekassaModel.php:
include 'notipay.php';

        $otwet = "На ваш проект [I]YourNameProject[/I] внесли сумму в размере: ".$this->mysqli->real_escape_string($sum)." руб. Оплачивал:  ".$this->mysqli->real_escape_string($account)."";

        // отправка уведомления об пополнении                     
         $request_params = array(
            'message' => $otwet,           
            'user_id' => 'ваш ид вконтакте (цифрами)',
            'access_token' => $token,
            'v' => '5.0'
        );
    

        $get_params = http_build_query($request_params);

        file_get_contents('https://api.vk.com/method/messages.send?' . $get_params);

        //Возвращаем "ok" серверу Callback API
        echo('ok');
Настройка FK модуля завершена.

Вот, как эти уведомления выглядят на деле:

35592


В прикрепленном архиве вы найдете файл Notipay.php, а также FreekassaModel.php, удачного использования.
 

Вложения

Jason2222

Участник
171
2
Не понял... Все сделал по инструкции, после оплаты не идет уведомление. Группа закрыта, но сообщения открыты и есть разрешение на получение сообщения. Не могу понять причину. Call Api подтверждает все.

upd. создал отдельно через standalone приложение, проще намного.
 
Последнее редактирование:

Quasper

Активный
313
95
Хммм, одно не могу понять. Нахуя коллбэк апи настраивать? ведь используется тупо вк апи для отправки уведомлений
 

Jason2222

Участник
171
2
самый простой и удобный способ:
1. перейти в настройки группы и создать ключ (для сообщений)
2. использовать ключ указанном ниже коде
PHP:
$message = "Success.";
$user_id = "1234567";

$request_params = array(
        'message' => $message,         
        'user_id' => $user_id,
        'random_id' => rand(1000000000, 9999999999),
        'access_token' => 'тот самый ключ',
        'v' => '5.45'
);
$get_params = http_build_query($request_params);
file_get_contents("https://api.vk.com/method/messages.send?".$get_params);