За последние 24 часа нас посетили 31108 программистов и 1820 роботов. Сейчас ищут 2008 программистов ...

Проблема с merchant.webmoney может у кого то такое тож было

Тема в разделе "PHP для новичков", создана пользователем 1Feniks1, 15 янв 2016.

  1. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Здравствуйте!
    Проблема в этом:
    Код (PHP):
    1. if ($_POST['LMI_PREREQUEST'] == 1) {
    2. if ($_POST['LMI_PAYEE_PURSE'] == 'номер кошелька') echo 'YES';
    3. } else {
    4. $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'].'Ae45er48EF4ewE'.$_POST['LMI_PAYER_PURSE'].$_POST['LMI_PAYER_WM'];    
    5. if (strtoupper(hash('sha256', $key)) != $_POST['LMI_HASH']) exit;
    6. $ID = (int)$_POST['id'];
    7. $Row = mysqli_fetch_assoc(mysqli_query("SELECT `points` FROM `users` WHERE `id` = $ID"));
    8. if ($Row['points']) mysqli_query("UPDET INTO `users` VALUES('', '$Row[points]', $_POST[LMI_PAYMENT_AMOUNT])");
    9. }
    10.  
    И вот в результати код доходит к
    Код (PHP):
    1. if (strtoupper(hash('sha256', $key)) != $_POST['LMI_HASH']) exit;
    2.  
    И дальше не работает..
    почему то условие не правильное.. но все проверил не сколько раз.. в чем может быть проблема?

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    значения в strtoupper(hash('sha256', $key) и $_POST['LMI_HASH'] не одинаковые?
     
  3. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Дело в том, что у меня $_POST['LMI_HASH'] не передает не чего.. пустота
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Так это webmoney должна вызывать твой скрипт, вызывает?
    И ссылку давай по какой документации (webmoney) делаешь.
     
  5. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Скорей всего, что нет..
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Прописал на сайте webmoney ссылку до своего скрипта?
     
  7. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    php и webmoney ране не работал то под руку попал этот курс и с него нахапался..
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Ну почитай на сайте webmoney, там обычно примеры и вся инструкция есть.
     
  9. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Да прописал вот здесь:
    [​IMG]

    Добавлено спустя 25 секунд:
    Re: Проблема с merchant.webmoney может у кого то такое тож было
    Хорошо...
    Спасибо
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
  11. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Я писал, что скорее всего, что нет...
    я пробивал вывести данные которые проверял $_POST['LMI_HASH'] и не чего не виводилось..
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    ничего не понял
     
  13. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Я не знаю, как проверить заходил webmoney на мой скрипт или нет..
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Там логика такая, как тебе заплатят сервер webmoney передаст твоему скрипту данные, можно записать весь массив $_POST в файл, чтобы потом посмотреть какие были значения, var_export($_POST, true) вернёт как текст массив $_POST и его можно сохранить в файл, скрипт запускает же webmoney, по этому это один из способов проверить был его запуск и с какими данными.
     
  15. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    if (strtoupper(hash('sha256', $key)) != $_POST['LMI_HASH']) exit;
    если я это отключаю, то при оплате появляется тоже ошибка.. в котором пишется так: <!DOCTYPE> <html><header><title>..</title></header><body>...
     
  16. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Зачем отключать? Это хорошая защита, если злоумышленник не знает секретной фразы и притворится webmoney, то обломается.
    Что-то не понятно в предыдущем моём сообщении, о том как проверить какие данные приходят от webmoney?
     
  17. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Дело в том что если код этот включен то у меня скрипт не работает.. так как вебмоней мне не передает параметр " КОНТРОЛЬНАЯ ПОДПИСЬ (SHA256) "
    ВОпрос, а вебмоней передает параметр после нажатие на кнопку оплатит или при посещении странице\скрипта
     
  18. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    покажи что тебе приходит от webmoney, как это сделать viewtopic.php?f=13&t=56238#p451840

    когда клиент нажимает оплатить, то сервер вебмани добавляет задание на отправку данных о платеже на твой скрипт который ты указал, это может занять кое какое время, так что пред усмотри если клиент вернулся в магазин, а вебмани ещё не сообщила что оплачено.
     
  19. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Дело в том, что мне от вебмоней не чего не приходит.. Я не знаю почему.. Я уже поменял даже скрипт который написал, ранее и не чего не помогло, тот самый результат(
    Почему так не могу понять.. все указал, адресу сайта о и при проверки Result URL пишет это:
    [​IMG]
    А вот как заполнял поля:
    [​IMG]
     
  20. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Хорошо, покажи код который записывает информацию которую передала webmoney как я тебе советовал, ты знаешь что такое отладка?
    http://phpfaq.ru/debug
     
  21. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Ну этот код уже отличается от моего, я его взял с стати одной..
    Но результат тот же.. Скрипт не проходит проверку и тому останавливает скрипт exti;
    Код (PHP):
    1. function paym(){
    2. // Оно должно совпадать с Secret Key, указанным нами в настройках кошелька.
    3. $secret_key="dflsj4k!;fm3afd";
    4. // Склеиваем строку параметров
    5. $common_string = $_POST['LMI_PAYEE_PURSE'].$_POST['LMI_PAYMENT_AMOUNT'].$_POST['LMI_PAYMENT_NO'].
    6. $_POST['LMI_MODE'].$_POST['LMI_SYS_INVS_NO'].$_POST['LMI_SYS_TRANS_NO'].
    7. $_POST['LMI_SYS_TRANS_DATE'].$secret_key.$_POST['LMI_PAYER_PURSE'].$_POST['LMI_PAYER_WM'];
    8. // Шифруем полученную строку в SHA256 и переводим ее в верхний регистр
    9. $hash = strtoupper(hash("sha256",$common_string));
    10. // Прерываем работу скрипта, если контрольные суммы не совпадают
    11.     if($hash!=$_POST['LMI_HASH']) exit;
    12.  
    13. // ЕСЛИ ЭТО ФОРМА ПРЕДВАРИТЕЛЬНОГО ЗАПРОСА, ТО ИДЕМ ДАЛЬШЕ...
    14.     IF($_POST['LMI_PREREQUEST']==1) {
    15. // Cравниваем наш настоящий кошелек с тем кошельком, который передан нам Мерчантом.
    16. // Если кошельки не совпадают, то выводим ошибку и прерываем работу скрипта.
    17.         if(trim($_POST['LMI_PAYEE_PURSE'])!="Номер кошелька") {
    18.             echo "ERR: НЕВЕРНЫЙ КОШЕЛЕК ПОЛУЧАТЕЛЯ ".$_POST['LMI_PAYEE_PURSE'];
    19.             exit;
    20.         }
    21. // Если ошибок не возникло и мы дошли до этого места, то выводим YES
    22.   echo "YES";
    23. }ELSE{// ЕСЛИ НЕТ LMI_PREREQUEST, СЛЕДОВАТЕЛЬНО ЭТО ФОРМА ОПОВЕЩЕНИЯ О ПЛАТЕЖЕ
    24. // Оно должно совпадать с Secret Key, указанным нами в настройках кошелька.
    25. $secret_key="dflsj4k!;fm3afd";
    26. // Склеиваем строку параметров
    27. $common_string = $_POST['LMI_PAYEE_PURSE'].$_POST['LMI_PAYMENT_AMOUNT'].$_POST['LMI_PAYMENT_NO'].
    28. $_POST['LMI_MODE'].$_POST['LMI_SYS_INVS_NO'].$_POST['LMI_SYS_TRANS_NO'].
    29. $_POST['LMI_SYS_TRANS_DATE'].$secret_key.$_POST['LMI_PAYER_PURSE'].$_POST['LMI_PAYER_WM'];
    30. // Шифруем полученную строку в SHA256 и переводим ее в верхний регистр
    31. $hash = strtoupper(hash("sha256",$common_string));
    32. // Прерываем работу скрипта, если контрольные суммы не совпадают
    33.   if($hash!=$_POST['LMI_HASH']) exit;
    34. $ID = (int)$_POST['id'];
    35.     $Row = mysqli_fetch_assoc(mysqli_query("SELECT `points` FROM `users` WHERE `id` = $ID"));
    36.     if ($Row['points']) mysqli_query("UPDET INTO `users` VALUES('', '$Row[points]', $_POST[LMI_PAYMENT_AMOUNT])");
    37.     }  
    38. } 
    Дело в том, что я проверял дани, с вебмоней мне не чего не приходит.. так как я подумал, что дани ключи приходят после того, как пользователь начал оплачивать, а у меня в скрипте проверяется эти дани еще до оплаты и возможно из за этого, но на сайте пишут проверку до и у них все работает..(
    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  22. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Result URL
    Код (PHP):
    1. <?php
    2. file_put_contents('wm.log', var_export($_POST, true)); 
    wm.log
    Код (PHP):
    1.   'LMI_MODE' => '1',
    2.   'LMI_PAYMENT_AMOUNT' => '0.01',
    3.   'LMI_PAYEE_PURSE' => 'Z...',
    4.   'LMI_PAYMENT_NO' => '0',
    5.   'LMI_PAYER_WM' => '4...',
    6.   'LMI_PAYER_PURSE' => 'Z...',
    7.   'LMI_PAYER_COUNTRYID' => 'MD',
    8.   'LMI_PAYER_PCOUNTRYID' => 'MD',
    9.   'LMI_PAYER_IP' => '8...',
    10.   'LMI_SYS_INVS_NO' => '675',
    11.   'LMI_SYS_TRANS_NO' => '985',
    12.   'LMI_SYS_TRANS_DATE' => '20160116 14:13:20',
    13.   'LMI_HASH' => '6A8D37FB780C751A3321215C5C809CB5028B0DCB51AD4D27529E3968F3AD18A0',
    14.   'LMI_PAYMENT_DESC' => 'тестовый товар',
    15.   'LMI_LANG' => 'ru-RU',
    16.   'LMI_DBLCHK' => 'ENUM',
    17. ) 
    Такого добился?
     
  23. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Ну я конечно сам не ожидал, что я такой ДЕБИЛ в этом!!!
    В результате вот что у меня получилось:
    поменял название файла: wm.log на wm.txt
    Дальше не на долго показало все массив с wm.txt, но мой скрипт что с webmoney не заработал почему-то, кошелек, ключ указал и т.д..
    Но все равно мой скрипт не заработал.. спустя 2 минут и wm.txt не заработал(перестало выводить)... Пол часа пробую и ноль..
    Уже думаю пустая трата времени просто этот merchant.. все делаю как в стати или в видео, но все равно у меня не работает код.. проверял весь коди что в стати или видео идентичный...
     
  24. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Я запутался, ты решил свою задачу или нет?
     
  25. 1Feniks1

    1Feniks1 Активный пользователь

    С нами с:
    27 дек 2013
    Сообщения:
    93
    Симпатии:
    1
    Re: Проблема с merchant.webmoney может у кого то такое тож б

    Нет..
    Подключил массив и все равно проверка не пройшла.. дани в массив я конечно прописал свои.. и ноль..