Webmoney: Как узнать оплачен ли платеж?

deepslam

Новичок
Webmoney: Как узнать оплачен ли платеж?

Добрый день!
Делаю системку с оплатой по webmoney , в форме передаю result url (т.к. каждый раз разное может быть) , secret key не задается в настройках кошелька , т.к. скриптом будет пользоваться не один человек и не один wmid.

В общем все работает, но вот не могу сделать защиту от того, что человек просто возьмет и скопирует result url в браузер (((

merchant.webmoney.ru не передает, что человек пришел именно с него ( Параметры $_REQUEST также пустые...

На сайте webmoney вычитал , что нужно смотреть с какого IP запрос , не подскажете как это посмотреть? (в phpinfo не увидел упоминаний об IP)

Заранее благодарен за ответы.
 

podust

Новичок
Наверное, вам нужны $_SERVER['HTTP_REFERER'] или $_SERVER['REMOTE_ADDR'] - хотя эти параметры также легко подделать.
 

deepslam

Новичок
они пустые ((((

-~{}~ 22.02.08 20:49:

REMOTE_ADDR - 127.0.0.1 , тестирую на локалке . HTTP_REFERER пустой
 

iamFake

Mind Of Liberty
http://sourceforge.net/projects/merchant-php/

посмотри принцип взаимодействия с WM, достаточно просто и понятно...
 

Alexandre

PHPПенсионер
REMOTE_ADDR - 127.0.0.1 , тестирую на локалке
:)
вспоминается анекдот:
хакерский чат...
ГОСТЬ вошел в чат.
ГОСТЬ: эй вы, дайте мне чей-нибудь ай-пи, я его замочу
КТО_ТО: 127.0.0.1
...
ГОСТЬ вышел из чата.
$_SERVER['REMOTE_ADDR'] - хотя эти параметры также легко подделать.
как подделать IP сайта WEBMONEY или любого другого сайта?
 

deepslam

Новичок
Скачивал его как раз , там есть файл success.php , в нем следующая проверка (привожу упрощенный вариант):

PHP:
if(isset($_POST['LMI_PAYMENT_NO']) && preg_match('/^\d+$/',$_POST['LMI_PAYMENT_NO']) == 1){
У меня этих полей не приходит на сайт (((
Также вся проблема в том, что там под конкретный кошелек и конкректный Result URL , а у меня Result URL генерируется свой под каждый товар , поэтому четко прописать его в форме я не могу.
 

QQQ

Новичок
deepslam
через мерчанта можно свои поля для контроля передавать... id сессии например... или любой параметр сгенерённый тобой

почитай внимательно API WMa
 

deepslam

Новичок
Да, сейчас сижу , читаю, отпишусь о результатах тогда :)
Спасибо за интерес к этой теме.
 

fixxxer

К.О.
Партнер клуба
на сайте вебмани есть пример кода на пхп, там правда навигация "как всегда", но найти можно

смысл там в том что у каждого кошелька есть secret который конкатенируется с данными платежа и от этого всего считается хэш
 

deepslam

Новичок
я про это тоже прочитал, только скрипт мне поля эти не передает , хотя может я что то не так сделал (скорее всего) , поэтому изучаю дальше.
А заставить и объяснить каждому будущему пользователю, чтобы они сами вбивали secret key у себя , так не подойдет.
 

GooG2e

Новичок
Все примеры десять раз прочитал.
Есть вот такой код
PHP:
else if($act=='result'){
				file_put_contents('tester.txt','1');
				var_dump($_GET);
				var_dump($_POST);
			}
Это конечно не весь код, но тот кусок, который отвечает за ответ WebMoney на запрос Result_URL(открываю в браузере все как надо). При попытке же оплатить он мне выдает пустую строку. Что можете посоветовать?
Ссылка вот такого вида http://85.159.41.58/donate.php?t=webmoney&act=result
 

Dovg

Продвинутый новичок
почти 4 года прошло.

Если он действительно выдает "пустую строку", то скорей всего $act не равен "result"
 

GooG2e

Новичок
да вот в этом то и проблема. Так на самом деле и есть - если act!=result, то не должно ничего вывестись, но я же все зада норм.
Я не пойму кто и где тупит. Просто сначало Webmoney вообще открывал donate.php без всяких параметров(проверял по ответу)(при это было включено разрешение замены Result_url через форму), потом отключил это разрешение стало вот эту дребедень выдавать. Кто-то может посоветовать решение?
P.S.Причем act какой-то передается т.к. если его не передавать вообще, то ответ другой получается
P.S.S.Вообще хз куда он передает - сделал, чтобы после отработки ветки выводил var_dump($_GET);var_dump($_POST);
А он мне выдал array(0) { } array(0) { }, хотя в данном случае должна быть html страница.
 
Сверху