dimns / yandexmoneyhttpnotification
Когда сайтов много, а кошелёк один. PHP-библиотека для получения HTTP-уведомлений от Яндекс.Денег и перенаправление их на нужный сайт.
1.0.0
2016-04-26 14:45 UTC
Requires
- php: >=5.3.0
This package is auto-updated.
Last update: 2024-11-15 03:38:22 UTC
README
Когда сайтов много, а кошелёк один. PHP-библиотека для получения HTTP-уведомлений от Яндекс.Денег и перенаправление их на нужный сайт.
Без использования библиотеки YandexMoneyHttpNotification Яндекс.Деньги позволяет принимать платежи только с одного сайта для одного кошелька.
Используя библиотеку YandexMoneyHttpNotification вы сможете принимать платежи на один кошелёк, но с любого количества различных сайтов.
Требования
- PHP 5.3 или выше.
Установка через Composer
- Установите Composer.
- Подключите пакет в ваш проект командой
php composer.phar require dimns/yandexmoneyhttpnotification
илиcomposer require dimns/yandexmoneyhttpnotification
(если composer установлен глобально). - Подключите автозагрузку в вашем проекте (если еще не сделали этого):
require 'vendor/autoload.php';
.
Использование
// Клиентская часть на каждом вашем сайте, генерирует кнопки оплаты $yamnotif = new \DimNS\YandexMoneyHttpNotification\Client('Номер кошелька', 'Секретный ключ'); echo $yamnotif->generateButton('mysite#123', 'Пополнение личного счёта', 500, 'http://mysite.tld/payments/success', 's'); // Серверная часть, которая будет обрабатывать запросы от всех сайтов // Указывается здесь: https://money.yandex.ru/myservices/online.xml // Это один из возможных вариантов обработки уведомлений $yamnotif = new \DimNS\YandexMoneyHttpNotification\Server('Секретный ключ'); // Платёж успешно проведён, уведомление получено if ($yamnotif->check($_POST) == '200 OK') { // Получаем метку, в которой указан сайт и номер заказа (или любая другая информация) $data = explode('#', $_POST['label']); switch ($data[0]) { // Уведомление для сайта case 'mysite': // Перенаправим информацию необходимому сайту $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_URL => 'http://mysite.tld/payments/paid', CURLOPT_RETURNTRANSFER => true, CURLOPT_POST => true, CURLOPT_POSTFIELDS => [ 'secretkey' => 'Секретный ключ сайта', 'datetime' => $_POST['datetime'], 'operation_id' => $_POST['operation_id'], 'user_id' => $data[1], // ИД пользователя 'amount' => $_POST['withdraw_amount'], // Сумма, списанная с плательщика ], ]); $return = json_decode(curl_exec($ch), true); curl_close($ch); break; } }