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


Фотография

Не удается совершить платеж через форму.


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

#1 Пользователь 282578846857 (WMID 282578846857 )

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

Отправлено 15 июня 2017 - 16:54

Не удается совершить платеж через форму все время выдает ошибку HACKER в чем может быть проблема вот код.

 
$p = clearData($_GET["page"],"sf");

if($p == "success") echo "Платеж осуществлен успешно!";
else if($p == "fail")
{
 exit("Невозможно совершить платеж");
}



if($_POST["LMI_PREREQUEST"] == 1) 
{
   if($_POST["LMI_PAYEE_PURSE"] !== "номер кошелька") die('HACKER');
   echo "YES";
}
else
{
   if($_POST["LMI_PAYEE_PURSE"] !== "номер кошелька") die('HACKER');
   $key = $_POST['LMI_PAYEE_PURSE'].$_POST['LMI_PAYMENT_AMOUNT'].$_POST['LMI_PAYMENT_NO']. $_POST['LMI_MODE'].$_POST['LMI_SYS_INVS_NO'].$_POST['LMI_SYS_TRANS_NO'].$_POST['LMI_SYS_TRANS_DATE'].'test123'.$_POST['LMI_PAYER_PURSE'].$_POST['LMI_PAYER_WM'];
   if(strtoupper(hash('sha256',$key)) != $_POST['LMI_HASH']) exit;
   $id = trim($_POST["user_id"]);
   
   $row = mysql_fetch_array(mysql_query("SELECT user FROM acc WHERE id=$id"));
   if($row["user"])
   {
      
      mysql_query("INSERT into payment (user, time, amount) VALUES('$row[user]', ".time().", $_POST[LMI_PAYMENT_AMOUNT])");
      $sql = "SELECT money FROM acc WHERE id=$id";
      $res = mysql_query($sql);
      $row = mysql_fetch_array($res);
      
      $money = $row["money"]+$_POST[LMI_PAYMENT_AMOUNT];
      mysql_query("UPDATE acc SET money=$money WHERE id=$id");
   
   }
}

Код формы html

<form action="https://merchant.webmoney.ru/lmi/payment.asp" method="POST">
 <input type="text" name="LMI_PAYMENT_AMOUNT" value="50.00">
 <input type="hidden" name="user_id" value="1">
 <input type="hidden" name="LMI_PAYMENT_DESC_BASE64" value="0J/QvtC/0L7Qu9C90LXQvdC40LUg0YHRh9C10YLQsA==">
 <input type="hidden" name="LMI_PAYEE_PURSE" value="R - номер кошелька">
 <input type="submit" class="wmny" value="Пополнить счет">
</form>

 


    • 0
  • Наверх

#2 Знаток ! добрый торговец ! (WMID 217358758215 )

  • Группа: Пользователи
  • сообщений 9 850
  • Регистрация: 18-мая 09
  • МестоположениеЭфиопия
  • Webmoney BL

Отправлено 15 июня 2017 - 21:22

Не удается совершить платеж через форму все время выдает ошибку HACKER в чем может быть проблема вот код.

Это не ошибка, это комплимент :)
Надеюсь, вы вместо *R - номер кошелька* и *номер кошелька*, номер своего кошелька указываете?
Еще какие-то скрипты к данному скрипту подключены, где может срабатывать ошибка die('HACKER')?
В настройках мерчанта стоит галка *Передавать параметры в предварительном запросе*?
    • 1
  • Наверх

#3 Пользователь 282578846857 (WMID 282578846857 )

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

Отправлено 18 июня 2017 - 06:34

Оказывается нужно было поставить галочку "Передавать параметры в предварительном запросе"?


    • 0
  • Наверх

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

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

Отправлено 19 июня 2017 - 22:05

Вы передаёте в LMI_PAYEE_PURSE "R - номер кошелька", а проверяете

if($_POST["LMI_PAYEE_PURSE"] !== "номер кошелька") die('HACKER');

Ведь "R - номер кошелька" !== "номер кошелька", поэтому и видите ошибку.

Нужно, если передаёте "R - номер кошелька", то и сравнивать с "R - номер кошелька" :lol:

Только "R - номер кошелька" укажите свой номер кошелька, а не этот набор букв с пробелами и тире.


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