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-09-15 03:08:38 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; } }