@darkersoul
web - программист

Почему не приходят http-уведомления при оплате из формы Яндекс.Деньги?

Привет! Очень нужна помощь!
Нужно получать уведомления о платежах и их информацией на почту. Собственно все настроил:
1. Код формы
<iframe frameborder="0" allowtransparency="true" scrolling="no" src="https://money.yandex.ru/embed/shop.xml?account=41001778973611&quickpay=shop&payment-type-choice=on&mobile-payment-type-choice=on&writer=seller&targets=%D1%82%D0%B5%D1%81%D1%82&default-sum=1&button-text=01&comment=on&hint=&fio=on&mail=on&phone=on&address=on&successURL=http%3A%2F%2Fya.ru" width="450" height="253"></iframe>


2. Настроил адрес страницы со скриптом, куда должны приходить уведомления тут - https://money.yandex.ru/myservices/online.xml (пробовал с https и без)

3. Ну и собственно сам скрипт, который получает уведомления от Яндекс.
// возможно некоторые из нижеперечисленных параметров вам пригодятся
// $_POST['operation_id'] - номер операция
// $_POST['amount'] - количество денег, которые поступят на счет получателя
// $_POST['withdraw_amount'] - количество денег, которые будут списаны со счета покупателя
// $_POST['datetime'] - тут понятно, дата и время оплаты
// $_POST['sender'] - если оплата производится через Яндекс Деньги, то этот параметр содержит номер кошелька покупателя
// $_POST['label'] - лейбл, который мы указывали в форме оплаты
// $_POST['email'] - email покупателя (доступен только при использовании https://)

$sha1 = sha1( $_POST['notification_type'] . '&'. $_POST['operation_id']. '&' . $_POST['amount'] . '&643&' . $_POST['datetime'] . '&'. $_POST['sender'] . '&' . $_POST['codepro'] . '&' . $secret_key. '&' . $_POST['label'] );

if ($sha1 != $_POST['sha1_hash'] ) {
	// тут содержится код на случай, если верификация не пройдена
	$f=fopen('notify.txt','w+');
	foreach($_POST as $k=>$row)$dump .="$k => $row\n";
	fwrite($f,$dump);
	fclose($f);
	exit();
}

// тут код на случай, если проверка прошла успешно
$f=fopen('notify.txt','w+');
foreach($_POST as $k=>$row)$dump .="$k => $row\n";
fwrite($f,$dump);
fclose($f);
exit();


В итоге - тестовые уведомления регистрируются, а при реальных платежах через эту форму - ничего не происходит.
Опирался на док https://tech.yandex.ru/money/doc/dg/reference/noti...
  • Вопрос задан
  • 1913 просмотров
Пригласить эксперта
Ответы на вопрос 3
Keanor
@Keanor
Ведущий разработчик
Насколько я помню, после тестирования они вручную подключают магазин для боевых оплат.

Напишите менеджеру, они оперативно помогают решать подобные проблемы.
Ответ написан
@awenn2015
Веб-программист самоучка
Не помню что бы в Яндекс Деньги были тестовые платежи, сейчас работаю с ней капец как не хватает тестовых платежей
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы