За последние 24 часа нас посетили 22082 программиста и 1101 робот. Сейчас ищут 760 программистов ...

Не обрабатывается URL-оповещение freekassa

Тема в разделе "Прочие вопросы по PHP", создана пользователем ShamanHead, 7 июн 2018.

Метки:
  1. ShamanHead

    ShamanHead Новичок

    С нами с:
    7 июн 2018
    Сообщения:
    5
    Симпатии:
    0
    После оплаты какого-либо товара на result.php должно прийти такое URL-Оповещение :
    Код (Text):
    1.  
    2. http://сайт/result.php?MERCHANT_ORDER_ID=some&P_PHONE=&P_EMAIL=some&CUR_ID=some&AMOUNT=some&MERCHANT_ID=some&SIGN=some&intid=some
    some - какие-либо значения.
    И приходит такой ответ на запрос(Нашел в логах заказа):
    Код (Text):
    1.  
    2. <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    3. <html><head>
    4. <title>301 Moved Permanently</title>
    5. </head><body>
    6. <h1>Moved Permanently</h1>
    7. <p>The document has moved <a href="http://сайт/result.php?MERCHANT_ORDER_ID=some&P_PHONE=&P_EMAIL=some&CUR_ID=some&AMOUNT=some&MERCHANT_ID=some&SIGN=some&intid=some">here</a>.</p>
    8. <hr>
    9. <address>Apache/2.4.10 (Unix) Server at some Port 80</address>
    10. </body></html>
    Получается, что данные должны были прийти.Но дело в том, что скрипт у меня такой:
    Код (Text):
    1.  
    2. <?php
    3. echo "<meta charset='utf-8'>";
    4.  
    5. include "includes/engine.php";
    6.  
    7. $sign = md5($engine['merchant-id'].':'.$_REQUEST['AMOUNT'].':'.$engine['secret-word-2'].':'.$_REQUEST['MERCHANT_ORDER_ID']);
    8. if ($sign != $_REQUEST['SIGN']) {
    9. die();
    10. }else{
    11. mail($_GET['P_EMAIL'], 'Оплата на сайте', 'Оплачено успешно!Ваш товар:');
    12. }
    13. ?>
    Если вкратце, то он проверяет sign и если все совпадает отправляет сообщение на почту.
    Но если отправлять URL-оповещение, то сообщение на почту не прийдет, но если самостоятельно перейти по ссылке запроса, то сообщение приходит.
    Получается, что URL-оповещение либо не пришло, либо не был опбработан[/code]
     
    #1 ShamanHead, 7 июн 2018
    Последнее редактирование: 7 июн 2018
  2. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    225
    Симпатии:
    17
    может ip адрес домена не правильно определяется, если с момента регистрации домена не прошло 48 часов
     
  3. ShamanHead

    ShamanHead Новичок

    С нами с:
    7 июн 2018
    Сообщения:
    5
    Симпатии:
    0
    Нет, домен был зарегистрирован давно.Я вот подумал, у меня сайт на http 2 а ответ идет по http 1.1 , может поэтому не доходит?
     
  4. username

    username Новичок

    С нами с:
    6 июл 2017
    Сообщения:
    225
    Симпатии:
    17
    я бы для начала сделал запись в текстовый файл всех полученных данных, чтобы проверить, приходят данные в скрипт или не приходят

    file_put_contents(__DIR__.'/file.txt', var_export($_POST,1), 8);
    --- Добавлено ---
    не знаю, что такое http2, поэтому ответить на вопрос не могу