V
V
Vova2020-01-28 21:22:20
PHP
Vova, 2020-01-28 21:22:20

Why can't I receive email via Yandex.Money?

Test payment with email does not work, https included, the whole google is covered (PLEASE, if you can’t say something other than "google", "read the documentation", "contact support" DO NOT answer, otherwise REPORT)

I can not understand How is this query built, because if I remove the email, then the test will PASS, if I move the LABEL, then it will not pass, there must be some special sequence?

this is NOT a Yandex checkout ... do not advise connecting to it.

Everywhere I see something in the style of "You can receive mail", but no one shows how.

Thanks to those who help.

<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{
  

}

Answer the question

In order to leave comments, you need to log in

3 answer(s)
S
Sergey Pliskin, 2020-01-29
@Lancerot

Email is not involved in signature generation.
Swap label and secretKey
5e30b1000c477894810215.jpeg
To receive email in the notification, you need to request it in the form (done) and transfer data via HTTPS. If the site has https, but the email does not arrive, check with which protocol the link for HTTP notifications is specified on the settings page https://money.yandex.ru/myservices/online.xml . Perhaps there you specified http, not https .
How do you get it, use it as you like, it's here $_POST['email']

S
Sergey delphinpro, 2020-01-28
@delphinpro

I can't understand how this query is built, because if I remove the email, then the test will PASS

Of course! Because the email is not involved in the construction of the hash =)

X
xmoonlight, 2020-01-28
@xmoonlight

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']);

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question