@Lanserot
как еж в тумане

Почему я не могу получить email через Яндекс.Деньги?

Тестовая оплата при email не проходит, https всключе, весь гугл облазил (ПОЖАЛУЙСТА, если не можете сказать что-то кроме "погугли", "почитай документацию", "обратись в поддержку" НЕ отвечайте, в противном случае РЕПОРТ)

я не могу понять как строится этот запрос, потому что, если я уберу email, то тест ПРОЙДЕТ, если я перемещу LABEL, то он не пройдет, должна быть какая-то особая последовательность?

это НЕ яндекс касса... не советуйте подключиться к ней.

Везде вижу, что то в стиле "Вы можете принять маил", но никто не показывает как.

Благодарю тех кто поможет.
<form method="POST" action="https://money.yandex.ru/quickpay/confirm.xml">
                                <input type="hidden" name="receiver" value="4100175469*****">
                                <input type="hidden" name="label" value="label">
                                <input type="hidden" name="quickpay-form" value="donate">
                                <input type="hidden" name="targets"
                                       value="targets">
                                <input type="hidden" name="sum" value="sum" data-type="number">
                                <input type="hidden" name="comment" value="comment">
                                <input type="hidden" name="need-email" value="true">
                                <input style="display: none" type="radio" data-toggle="yadMo" 
                                       value="yadMo"
                                       name="paymentType" value="PC">
                                <input style="display: none" type="radio" data-toggle="yadBa" 
                                       name="paymentType" value="AC">
                                <input style="display: none" type="radio" data-toggle="yadTe" 
                                       name="paymentType" value="MC">
                                <button type="button" class="send-yad">
                                   клик
                                </button>
                            </form>

$sha1 = sha1( $_POST['notification_type'] .
    '&'. $_POST['operation_id'].
    '&' . $_POST['amount'] .
    '&' . $_POST['currency'] .
     '&' . $_POST['datetime'] .
    '&'. $_POST['sender'] .
    '&' . $_POST['codepro'] .
    '&' . $_POST['label'] .
    '&' .  $site[0]['secretKey'].
    '&' . $_POST['email']  );

if ($_POST['sha1_hash'] != $sha1 || $_POST['codepro'] === true || $_POST['unaccepted'] === true) {
    exit('error');
}else{
  

}
  • Вопрос задан
  • 227 просмотров
Решения вопроса 1
pligin
@pligin
быдлокодер
Email не участвует в формировании подписи.
Label и secretKey поменяйте местами
5e30b1000c477894810215.jpeg
Для получения email в оповещении нужно его запросить в форме (сделано) и передавать данные по HTTPS. Если на сайте имеется https, но email не приходит, проверьте с каким протоколом указана ссылка для HTTP оповещений на странице настроек https://money.yandex.ru/myservices/online.xml . Возможно там Вы указали http, а не https .
Как получите используйте его как угодно, он тут $_POST['email']
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
delphinpro
@delphinpro Куратор тега PHP
frontend developer
я не могу понять как строится этот запрос, потому что, если я уберу email, то тест ПРОЙДЕТ

Разумеется! Потому что имейл не участвует в построении хеша =)
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
notification_type&operation_id&amount&currency&datetime&sender&codepro&notification_secret&label

$sha1 = sha1( $_POST['notification_type'] .
    '&'. $_POST['operation_id'].
    '&' . $_POST['amount'] .
    '&' . $_POST['currency'] .
     '&' . $_POST['datetime'] .
    '&'. $_POST['sender'] .
    '&' . $_POST['codepro'] .
    '&' .  $site[0]['secretKey'].
    '&' . $_POST['label']);
Ответ написан
Ваш ответ на вопрос

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

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