Перейти к содержимому


Фотография

Пустой POST в Result URL


  • Пожалуйста, авторизуйтесь для ответа.
12 ответов в данной теме

#1 Новичок ayshe (WMID 428007804377 )

  • Группа: Пользователи
  • сообщений 4
  • Регистрация: 11-апреля 11
  • Webmoney BL

Отправлено 11 апреля 2011 - 20:50

У меня формальный аттестат. Тестирую скрипты в тестовом режиме.
На Result URL приходит пустой POST. Хотя дальше мерчант постит на Success URL.

Не могу добиться ответа от тех. поддержки...
С чем это связано? У меня нет персонального аттестата? Но ведь это тестовый режим:!:
На всякий случай, в GET тоже ничего нет.

Подскажите, пожалуйста, что за фигня такая.

Спасибо.



    • 1
  • Наверх

#2 Знаток 632584157120 (WMID 632584157120 )

  • Группа: Модераторы
  • сообщений 1 797
  • Регистрация: 29-ноября 09
  • МестоположениеКZ
  • Webmoney BL

Отправлено 11 апреля 2011 - 22:53

Вероятно не подключены к мерчанту.

    • 0
  • Наверх

#3 Новичок ayshe (WMID 428007804377 )

  • Группа: Пользователи
  • сообщений 4
  • Регистрация: 11-апреля 11
  • Webmoney BL

Отправлено 12 апреля 2011 - 10:53

Вероятно не подключены к мерчанту.

Подключён. Как же я иначе задал бы Result URL и т.п.
И вообще, если бы я не был подключён, то зачем серверу слать мне пустой POST и перебрасывать на Success URL?

Если бы я не был подключён, то я бы ждал от сервера либо ответа с ошибкой, либо 400 Bad Request, либо что-то в этом роде.

Однако, спасибо за ответ.

EDIT: Настройки я вписывал согласно инструкциям на

    • 0
  • Наверх

#4 Продвинутый пользователь Zruty (WMID 213148117994 )

  • Группа: Пользователи
  • сообщений 39
  • Регистрация: 17-февраля 10
  • МестоположениеРоссия
  • Webmoney BL

Отправлено 12 апреля 2011 - 17:07

merchant.webmoney.ru дергает Result URL два раза: предзапрос и оповещение о платеже.
Предзапрос отправляется с пустой формой, если только обратное не указано в настройках.

Вы уверены, что пустая форма вам приходит два раза (и в предзапросе, и в оповещении о платеже) ?
    • 0
  • Наверх

#5 Новичок ayshe (WMID 428007804377 )

  • Группа: Пользователи
  • сообщений 4
  • Регистрация: 11-апреля 11
  • Webmoney BL

Отправлено 12 апреля 2011 - 17:22

merchant.webmoney.ru дергает Result URL два раза: предзапрос и оповещение о платеже.
Предзапрос отправляется с пустой формой, если только обратное не указано в настройках.

Вы уверены, что пустая форма вам приходит два раза (и в предзапросе, и в оповещении о платеже) ?


Да. А предзапрос в настройках мерчанта выключен. Для надёжности, я проверяю флаг предзапроса:
        if (isset($this->_req_data['LMI_PREREQUEST']) && $this->_req_data['LMI_PREREQUEST'] == 1){
$this->debug_log(__METHOD__.': skipping prerequest');
return;
}

[b]EDIT:[/b] В логах подобных записей нет. Да и не должно быть. Пробовал, кстати, включать.
пропускал предзапрос, и получал опять пустой POST

    • 0
  • Наверх

#6 Знаток 084471955240 (WMID 084471955240 )

  • Группа: Пользователи
  • сообщений 103
  • Регистрация: 07-сентября 09
  • МестоположениеРоссия
  • Webmoney BL

Отправлено 14 апреля 2011 - 17:12

А предзапрос в настройках мерчанта выключен.

Предзапрос невозможно выключить. Скорее всего Вы путаете отключение передачу параметров в предзапросе (снят флажок "Передавать параметры в предварительном запросе"), тогда запрос будет "пустым".

Для надёжности, я проверяю флаг предзапроса:

Если в настройках флаг "Передавать параметры в предварительном запросе" снят, то LMI_PREREQUEST и другие данные не передаются в предзапросе

$this->_req_data

Что такое "$this->_req_data"? Скорее всего у Вас еще и ошибка в формировании этой переменной.
    • 0
  • Наверх

#7 Знаток x3mal (WMID 101623542134 )

  • Группа: Пользователи
  • сообщений 328
  • Регистрация: 25-апреля 10
  • МестоположениеУкраина
  • Webmoney BL

Отправлено 14 апреля 2011 - 20:20

Напиши что-нибудь в таком роде:

$wmid=$_POST['LMI_PAYER_WM'];
if ($wmid<>''){
...
}


    • 0
  • Наверх

#8 Новичок r.osmanov (WMID 314414494494 )

  • Группа: Пользователи
  • сообщений 1
  • Регистрация: 14-апреля 11
  • Webmoney BL

Отправлено 14 апреля 2011 - 23:56

Эврика! Получилось! :D

Какая же дурацкая причина была. Ему в предзапросе надо было вернуть строку "YES".
В настройках мерчанта предзапрос у меня был снят. Включил и сделал так:

    if (isset($this->_req_data['LMI_PREREQUEST']) && $this->_req_data['LMI_PREREQUEST'] == 1){ 
            // Yeah, this one *required*! 
            die("YES"); 
        }

А
$this->_req_data = (empty($_POST) ? $_GET : $_POST);

Спасибо!

--
P.S.
Это я начинал тему под другим ником.

    • 0
  • Наверх

#9 Новичок Boltik (WMID 826555644646 )

  • Группа: Пользователи
  • сообщений 2
  • Регистрация: 16-апреля 13
  • Webmoney BL

Отправлено 16 апреля 2013 - 14:04

У меня возникла похожая проблема: приходят пустные GET и POST-запросы.

 

форма перед оплатой
<form id="pay" name="pay" method="POST" action="https://merchant.web...lmi/payment.asp">
 <input type="hidden" name="LMI_PAYMENT_AMOUNT" value="5">
 <input type="hidden" name="LMI_PAYMENT_DESC" value="Заказ 412 от 16.04.2013">
 <input type="hidden" name="LMI_PAYMENT_NO" value="412">
 <input type="hidden" name="LMI_PAYEE_PURSE" value="R700799475401">
 <input type="hidden" name="LMI_SIM_MODE" value="0">
 <input type="hidden" name="LMI_RESULT_URL" value="http://www.ipro.su/p...nt/webmoney.php">
 <input type="hidden" name="LMI_SUCCESS_URL" value="http://www.ipro.su/personal/order/">
 <input type="hidden" name="LMI_FAIL_URL" value="http://www.ipro.su/personal/order/">
 <input type="hidden" name="LMI_PAYER_EMAIL" value="">
 <input type="hidden" name="LMI_PAYER_PHONE_NUMBER" value="">
 <input type="hidden" name="LMI_SUCCESS_METHOD" value="1">
 <input type="hidden" name="LMI_FAIL_METHOD" value="1">
 <input type="submit" value="Оплатить заказ">
</form>


кусок кода принимающий ответ.
if (isset($_REQUEST['LMI_PREREQUEST']) && $_REQUEST['LMI_PREREQUEST'] == 1) die("YES");
$APPLICATION->IncludeComponent("bitrix:sale.order.payment.receive", "", array(
        "PAY_SYSTEM_ID" => 9,
        "PERSON_TYPE_ID" => "3"
    ),
    false
);


    • 0
  • Наверх

#10 Новичок Идрис (WMID 309429240938 )

  • Группа: Пользователи
  • сообщений 2
  • Регистрация: 27-октября 14
  • Webmoney BL

Отправлено 11 июня 2015 - 18:29

Можно какнибудь попроще! вот я на денвере тестирую я как бы оплату настроил все настроил! но мне нужен необходимый мне ответ, например у меня есть товар и при покупке нужно такое действие чтоб я получил например какой товар купили! кто купил и прочее тоесть мне нужно чтоб! после оплаты получать пост запрос например и обрабатывать его! чтоб этот человек который купил получил свой товар! но я непойму как мне принять небходимый пост запрос или передать его! и что такое result url? это обработка страницы или нет? 


    • 0
  • Наверх

#11 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 13 июня 2015 - 20:49

Result URL - это URL (на веб-сайте продавца), на который сервис Web Merchant Interface посылает HTTP POST или SMTP-оповещение о совершении платежа с его детальными реквизитами.

 

Но позвольте спросить: вот Вы

на денвере тестируете, как бы оплату настроили все настроили!

Что Вы указывали в Result URL в настройках кошелька, если всё настроили?

Ваш денвер виден для Мерчанта WebMoney?


Сообщение отредактировал ^-^: 13 июня 2015 - 20:50

Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх

#12 Новичок Эля (WMID 187988978232 )

  • Группа: Пользователи
  • сообщений 1
  • Регистрация: 15-июня 15
  • Webmoney BL

Отправлено 08 июля 2015 - 15:34

У меня всё подключено в тестовом режиме, если в Result URL ввести email, то информация приходит, а если http:// адрес, то $_POST всегда пусто.

Пока что мой callback-скрипт просто ведёт логи:

ini_set("log_errors", 1);
ini_set("error_log", "error.log");
file_put_contents('wm.txt', 'Got request from:'.$_SERVER['REMOTE_ADDR']."\r\n", FILE_APPEND);
file_put_contents('wm.txt', json_encode($_POST)."\r\n", FILE_APPEND);
 
ни сообщения об ошибке, ни единого параметра в $_POST. :(
Но IP записывается.
 
UPD:
добавила эту строку:
file_put_contents('wm.txt', 'php://input '.file_get_contents('php://input')."\r\n", FILE_APPEND);
 
Вот мой php://input:
LMI_MODE=1&LMI_PAYMENT_AMOUNT=1.00&LMI_PAYEE_PURSE=Z304538670140&LMI_PAYMENT_NO=0&LMI_PAYER_WM=187988978232&LMI_PAYER_PURSE=Z192574923738&LMI_PAYER_COUNTRYID=UA&LMI_PAYER_PCOUNTRYID=UA&LMI_PAYER_IP=188.115.163.145&LMI_SYS_INVS_NO=109&LMI_SYS_TRANS_NO=455&LMI_SYS_TRANS_DATE=20150708+16%3A54%3A23&LMI_HASH=2744E6F2AC8C6579329B82CF0AC8B76CD04EB70CB18F21D7DA99BAD97C7000DD&LMI_PAYMENT_DESC=%CF%EE%E6%E5%F0%F2%E2%EE%E2%E0%ED%E8%E5+Plan+Z+Online&LMI_LANG=ru-RU&LMI_DBLCHK=SMS&radio=USD&submit-button=&USER_ID=4

Всё на месте, но в $_POST по-прежнему пусто.

Проблема с www или не-www меня. скорее всего, не касается, так как в обоих вариантах написания Result URL результат тот же, и в папке со скриптом лежит .htaccess с командой RewriteEngine Off. Отключение mod_rewrite глобально также не помогает.

Я-то конечно могу распарсить php://input, но как-то это неправильно, хотелось бы знать, что не так.

Заранее спасибо.


Сообщение отредактировал Эля: 08 июля 2015 - 17:13

    • 0
  • Наверх

#13 Знаток ^-^ (WMID 273407224562 )

  • Группа: Пользователи
  • сообщений 6 059
  • Регистрация: 10-сентября 13
  • Webmoney BL

Отправлено 09 июля 2015 - 00:19

А "Передавать параметры в предварительном запросе" галочка стоит?

Или это уже Уведомление о совершённом платеже?


Сообщение отредактировал ^-^: 09 июля 2015 - 00:22

Бесплатный SSL на 3 мес. / Сертификат SSL от 299 руб.
    • 0
  • Наверх