С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 572

Не удается получить ошибку при оплате Web-money

13.06.2017, 02:01. Показов 1282. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проходила видеокурс как прикрутить кошелек на сайт. После того как закончила с кодом решила проверить можно подменить кошелек и пройдет ли оплата. У автора в случае подмена кошелька оплата не проходит. А у меня проходит. Вот весь код.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
 
...
 
$p = clearData($_GET["page"],"sf");
if($p == "success") echo "Платеж осуществлен успешно!";
else if($p == "fail")
{
 exit("Невозможно совершить платеж");
}
 
if($_POST["LMI_PREREQUEST"] == 1) 
{
   if($_POST["LMI_PAYEE_PURSE"] == "номер кошелька") echo "YES";
}
else
{
  $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, amount) VALUES('$row[user]', $_POST[LMI_PAYMENT_AMOUNT])");
   }
}
?>
Меня интересует вот эта строка она отвечает за сравнения и подмену кошелька.
PHP
1
if($_POST["LMI_PAYEE_PURSE"] == "номер кошелька") echo "YES";
Без этой строки автор сказал что все будет плохо работать однако я удалила эту строку и все работает и платежи проходят. Делала подмену значения этой строки и все равно все платежи проходят. В чем дело?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2017, 02:01
Ответы с готовыми решениями:

Не удаётся получить значение true из web-службы
Здравствуйте. У меня есть web-служба написанная на C# и есть скрипт PHP, который работает с её методами. Обычно в методы возвращают...

При добавлении новой записи в бд через прогу c# выдает ошибку (не удалось преобразовать значение типа char к money)
Программа корректно редактирует запись в бд типа money, но при создании новой записи туда же, выдает ошибку Тут все из полей...

Пропала Web money
Когда переустановил комп, скачал WM а ключи не сохранил и прога просит ключи и не заходит больше что все теперь не зайду? блин денег не...

10
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
13.06.2017, 17:04
По документации http://wiki.webmoney.ru/projec... 0Interface
LMI_PAYEE_PURSE - Кошелек продавца
Отключив проверку мошенник может подменить кошелёк
0
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 572
14.06.2017, 03:01  [ТС]
У меня в этом и заключается проблема я вписываю совсем другой кошелек в проверки для тестирования и платеж все равно проходит и как исправить не знаю?
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
14.06.2017, 18:01
Лучший ответ Сообщение было отмечено Katerina1993 как решение

Решение

Вместо проверки выполнения условия, надо сделать проверку невыполнения условия

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
 
...
 
$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, amount) VALUES('$row[user]', $_POST[LMI_PAYMENT_AMOUNT])");
   }
}
?>
1
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 572
15.06.2017, 02:55  [ТС]
Теперь не чего не передает и выдает сообщение HACKER может быть он работает только с доллорами, т.е. кошелек Z. Или может проблема в кодировки у меня кодировка страницы utf-8. Заголовок страницы тоже utf-8.
PHP
1
header("Content-Type: text/html; charset=utf-8");
Или же для рублей нужно специально настройки делать. Я вообще не пониманию неужели скрипту так сложно сделать проверку на идентичность двух значений?

Добавлено через 8 минут
Вот еще html код формы отправки денег.
HTML5
1
2
3
4
5
6
7
<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="значение">
 <input type="hidden" name="LMI_PAYEE_PURSE" value="R - номер кошелька продавца">
 <input type="submit" class="wmny" value="Пополнить счет">
</form>
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
15.06.2017, 09:50
можно скачать готовый модуль вебмани, например, для друпал, и сравнить с тем, что есть
https://www.drupal.org/project... t/releases

или публикуйте полностью код вашего модуля webmoney (или сайта, допустим в архиве), а также скриншот страниц настроек приёма платежей webmoney

обычно вебмани не нужно использовать, так как кошельки блокируют и люди теряют деньги, это плохая репутация для магазина, лучше подключить оплату смс (мегафон, мтс, билайн, теле2) и картами visa
0
403 / 19 / 5
Регистрация: 17.01.2017
Сообщений: 572
18.06.2017, 06:31  [ТС]
Удалось исправить ошибку нужно было всего лишь поставить галочку "Передавать параметры в предварительном запросе". Автор видеоурока который я проходила сказал, что md5 устарел, чем мне тогда шифровать пароли если я например буду делать регистрацию с авторизацией?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
18.06.2017, 06:41
Лучший ответ Сообщение было отмечено Katerina1993 как решение

Решение

Цитата Сообщение от Katerina1993 Посмотреть сообщение
чем мне тогда шифровать пароли если я например буду делать регистрацию с авторизацией?
Вот, посмотрите:
http://php.net/manual/ru/faq.p... stpractice
1
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
18.06.2017, 08:05
шифровать пароли не обязательно, достаточно экранировать все пользовательские данные в mysql запросах
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
18.06.2017, 09:33
plohoyav, и Вам советую прочитать ту статью, по ссылке выше.
0
313 / 312 / 221
Регистрация: 11.07.2015
Сообщений: 1,107
18.06.2017, 10:55
А я вам не советую читать ту статью.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.06.2017, 10:55
Помогаю со студенческими работами здесь

Web Money в Windows 7
При попытке установить Web money пишет File not found. Подскажите что делать 2 день мучаюсь

как исправить эту ошибку (не удается получить схему для этого запроса)
SELECT Товары., Товары., Товары.количество, SUM(Nz(.количество)) AS Расход, Товары.количество - Расход...

Вывод денег с Web-money
Класть деньги на кошелек я умею, а как вывести деньги с кошелька web-money?

Web-money - вывод средств
Каким образом, с наименьшей потерей на комиссиях, удобнее снимать средства? Можно ли переводить на карточку укрсоцбанка?

Оплата через web money
Доброго времени суток! я новичок в области программирования,имеется свой сайт, хочу сделать продажу товара, через webmoney. хочу узнать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru