Почему в webhook'ah о зачислении платежа от yandex.money, не приходит email?

В HTTP(s) уведомлении о зачислении платежа от yandex, не приходит email. Перепробовал кучу вариантов, все данные о платеже приходят, кроме email.
SSL на сайте есть, так что конфиденциальные данные приходят, такие как например, ФИО, а вот e-mail хоть и запрашивается у клиента, но не приходит. Пробовал и готовые формы от Яндекса, тоже самое. Их техподдержка пробовала тестовые платежи и подтвердила что всё проходит, а e-mail нет и на этом успокоилась.
Вот код формы:
<form method="POST" action="https://money.yandex.ru/quickpay/confirm.xml">
    <input type="hidden" name="receiver" value="******************">
    <input type="hidden" name="formcomment" value="Благодарность за ролики">
    <input type="hidden" name="short-dest" value="Благодарность за ролики">
    <input type="hidden" name="label" value="сайт.ru">
    <input type="hidden" name="quickpay-form" value="shop">
    <input type="hidden" name="targets" value="Благодарность за ролики">
    <input type="text" name="sum" value="5" data-type="number">
    <input type="text" name="comment">
    <input type="hidden" name="need-fio" value="false">
    <input type="hidden" name="need-email" value="true"> 
    <input type="hidden" name="need-phone" value="false">
    <input type="hidden" name="need-address" value="false">
    <label><input class="yandex-money" type="radio" name="paymentType" value="PC">Яндекс.Деньгами</label>
    <label><input class="card-visa-mc" type="radio" name="paymentType" value="AC">Картой Visa или MasterCard</label>
    <label><input class="mobile-money" type="radio" name="paymentType" value="MC">Со счета мобильного телефона</label>
    <input type="submit" value="Оплатить">
</form>

Вот обработчик:

<?php
$secret='*************************************';
if ($_POST) {
$params='notification_type&operation_id&amount&currency&datetime&sender&codepro';
$params=explode('&',$params);
$forHASH=array();
foreach($params as $key=>$p) {
 if (isset($_POST[$p])) array_push($forHASH,$_POST[$p]);
}
if ($secret!="") array_push($forHASH,$secret);
if (isset($_POST['label'])) array_push($forHASH,$_POST['label']);
$forHASH=implode('&',$forHASH);
if ($_POST['sha1_hash']===sha1($forHASH) && $_POST['codepro']!=='true') { //transact ok.
         ////////////////////////////////
         ///////  Платёж прошел /////////
         ////////////////////////////////
           	$status="Успешно!";
           	$notification_type = $_POST["notification_type"]; 
			$operation_id = $_POST["operation_id"];
			$amount = $_POST["amount"];
			$currency = $_POST["currency"];
			$datetime = $_POST["datetime"];
			$sender = $_POST["sender"];
			$codepro = $_POST["codepro"];
			$label = $_POST["label"];
			$mail = $_POST["mail"];
			$unaccepted = $_POST["unaccepted"];
			$sha1_hash = $_POST["sha1_hash"];
			$test_notification = $_POST["test_notification"];
if (empty($mail)) {$mail="Пусто";}
if (empty($test_notification)) {$test_notification="Пусто";}
if (empty($label)) {$label="Пусто";}
$data = "$status<br />$mail - E-Mail<br />$notification_type - тип нотификации<br />$operation_id - ID операции<br />$amount - сумма<br />$currency -Код валюты<br />$datetime - дата+время<br />$sender -отправитель<br />$codepro - наличие кода протекции<br />$label - метка платежа<br />$test_notification - тестовая нотификация<br />==================================================================\r\n<br />";
$test_wr = fopen ('pay2.html', 'a+');
fwrite ($test_wr, $data);
        fclose ($test_wr);
  }
}

Может у кого есть такой способ оплаты? Приходит ли email плательщика у вас?
  • Вопрос задан
  • 365 просмотров
Решения вопроса 1
email string Адрес электронной почты отправителя перевода. Если email не запрашивался, параметр содержит пустую строку.


$mail = $_POST["mail"];

Найдите одно отличие.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы