Работа с http уведомлениями Яндекс Денег. Класс для тестирования уведомлений. сам класс тут: https://gist.github.com/sanmai/3293429 Лучше всего работает на сервере реальном. Действие скрипта равносильно нажатию на кнопку "протестировать" http уведомления в кошельке ЯД. https://sp-money.yandex.ru/myservices/online.xml По сути для тестов можно и понажимать кнопку, но так удобнее. вот какие параметры получает скрипт, который указывается в строке - адрес уведомления: http://s020.radikal.ru/i722/1311/db/85e591c8f9bb.jpg Получать параметры можно простым $_REQUEST.
Сначала в примере выводятся заголовки ответа сервера, а потом в об
<?php
/////////////////////////ПРЕДСТАВИМ ЧТО ЭТО СЕРВЕР ЯД////////////////////////////////////////
require_once('YandexNotification.php'); // подключаем библиотеку для работы с API Yandex
// получение уведомлений для скрипта можно настроить в кошельке по адресу
// https://sp-money.yandex.ru/myservices/online.xml
// создаём уведомление (как будто кто то перевел деньги и ЯД нам на сервер отправляет уведомление)
$notification = new YandexNotification();
// указываем параметры
$notification->codepro = false;
$notification->label = 53243;
// отправляем уведомления на ваш сайт
$notification->dispatch(
'http://sell-engine.ru/yatest.php',
'W++nWTixJp9P1cgEG7KFARz2' // уведомление будет подписано указанным секретом
);
//////////////////////////////ПРЕДСТАВИМ ЧТО ЭТО НАШ САЙТ//////////////////////////////////
// получаем уведомление от ЯД на своем сайте и выводим что за операция с деньгами произошла
$pay = new stdClass(); // Создаём объект
foreach( $_REQUEST as $key=>$val ) $pay->$key =$val; //получаем переменные
// сначала проверим а действительно ли это уведомление от ЯД пришло.
// так как мы поключаем наш сайт к ЯД, то мы знаем секретное слово
// которое можно узнать вот тут: https://sp-money.yandex.ru/myservices/online.xml
//Поместим секретное слово в наш обьект:
$pay->notification_secret='W++nWTixJp9P1cgEG7KFARz2';
//вычислим при получении уведомления секрет, который должен совпасть не с нашим словом
// а с результатом вот этих операций:
// вот тут подробно описано это: http://api.yandex.ru/money/doc/dg/reference/notification-p2p-incoming.xml
///$pay->our_secret=$pay->notification_type
$pay->notification_secret_our=$pay->notification_type."&".$pay->operation_id."&".$pay->amount."&".$pay->currency."&".$pay->datetime."&".$pay->sender."&".$pay->codepro."&".$pay->notification_secret."&".$pay->label;
$pay->notification_secret_our=sha1($pay->notification_secret_our);
echo "<br>Наша строка секрета готовая для сравнения=".$pay->notification_secret_our;
echo "<br>Секретное слово (зашифровано), которое получили от ЯД=".$pay->sha1_hash;
if ($pay->notification_secret_our==$pay->sha1_hash)
echo "<br>(мы получили уведомление с нашего кошелька)";
else
echo "<br>(мы получили уведомление с НЕИЗВЕСТНОГО ИСТОЧНИКА)";
echo "<br>тип уведомления =".$pay->notification_type;
echo "<br>id операции=".$pay->operation_id;
echo "<br>сумма=".$pay->amount;
echo "<br>защищен кодом протекции=".$pay->codepro;
echo "<br>Время перевода=".$pay->datetime;
echo "<br>Кто перевел (номер счета)=".$pay->sender;
echo "<br>Метка платежа=".$pay->label;
echo "<br>------------------------";
?>