Пустой POST в Result URL
#1 Новичок
Отправлено 11 апреля 2011 - 20:50
На Result URL приходит пустой POST. Хотя дальше мерчант постит на Success URL.
Не могу добиться ответа от тех. поддержки...
С чем это связано? У меня нет персонального аттестата? Но ведь это тестовый режим:!:
На всякий случай, в GET тоже ничего нет.
Подскажите, пожалуйста, что за фигня такая.
Спасибо.
#2 Знаток
Отправлено 11 апреля 2011 - 22:53
#3 Новичок
Отправлено 12 апреля 2011 - 10:53
Подключён. Как же я иначе задал бы Result URL и т.п.Вероятно не подключены к мерчанту.
И вообще, если бы я не был подключён, то зачем серверу слать мне пустой POST и перебрасывать на Success URL?
Если бы я не был подключён, то я бы ждал от сервера либо ответа с ошибкой, либо 400 Bad Request, либо что-то в этом роде.
Однако, спасибо за ответ.
EDIT: Настройки я вписывал согласно инструкциям на
#4 Продвинутый пользователь
Отправлено 12 апреля 2011 - 17:07
Предзапрос отправляется с пустой формой, если только обратное не указано в настройках.
Вы уверены, что пустая форма вам приходит два раза (и в предзапросе, и в оповещении о платеже) ?
#5 Новичок
Отправлено 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
#6 Знаток
Отправлено 14 апреля 2011 - 17:12
Предзапрос невозможно выключить. Скорее всего Вы путаете отключение передачу параметров в предзапросе (снят флажок "Передавать параметры в предварительном запросе"), тогда запрос будет "пустым".А предзапрос в настройках мерчанта выключен.
Если в настройках флаг "Передавать параметры в предварительном запросе" снят, то LMI_PREREQUEST и другие данные не передаются в предзапросеДля надёжности, я проверяю флаг предзапроса:
Что такое "$this->_req_data"? Скорее всего у Вас еще и ошибка в формировании этой переменной.$this->_req_data
#7 Знаток
Отправлено 14 апреля 2011 - 20:20
$wmid=$_POST['LMI_PAYER_WM'];
if ($wmid<>''){
...
}
#8 Новичок
Отправлено 14 апреля 2011 - 23:56
Какая же дурацкая причина была. Ему в предзапросе надо было вернуть строку "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.
Это я начинал тему под другим ником.
#9 Новичок
Отправлено 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
);
#10 Новичок
Отправлено 11 июня 2015 - 18:29
Можно какнибудь попроще! вот я на денвере тестирую я как бы оплату настроил все настроил! но мне нужен необходимый мне ответ, например у меня есть товар и при покупке нужно такое действие чтоб я получил например какой товар купили! кто купил и прочее тоесть мне нужно чтоб! после оплаты получать пост запрос например и обрабатывать его! чтоб этот человек который купил получил свой товар! но я непойму как мне принять небходимый пост запрос или передать его! и что такое result url? это обработка страницы или нет?
#11 Знаток
Отправлено 13 июня 2015 - 20:49
Result URL - это URL (на веб-сайте продавца), на который сервис Web Merchant Interface посылает HTTP POST или SMTP-оповещение о совершении платежа с его детальными реквизитами.
Но позвольте спросить: вот Вы
на денвере тестируете, как бы оплату настроили все настроили!
Что Вы указывали в Result URL в настройках кошелька, если всё настроили?
Ваш денвер виден для Мерчанта WebMoney?
Сообщение отредактировал ^-^: 13 июня 2015 - 20:50
#12 Новичок
Отправлено 08 июля 2015 - 15:34
У меня всё подключено в тестовом режиме, если в Result URL ввести email, то информация приходит, а если http:// адрес, то $_POST всегда пусто.
Пока что мой callback-скрипт просто ведёт логи:
Но IP записывается.
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
#13 Знаток
Отправлено 09 июля 2015 - 00:19
А "Передавать параметры в предварительном запросе" галочка стоит?
Или это уже Уведомление о совершённом платеже?
Сообщение отредактировал ^-^: 09 июля 2015 - 00:22