PHP code example of dimns / yandexmoneyhttpnotification

1. Go to this page and download the library: Download dimns/yandexmoneyhttpnotification library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

dimns / yandexmoneyhttpnotification example snippets


// Клиентская часть на каждом вашем сайте, генерирует кнопки оплаты
$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;
    }
}