За последние 24 часа нас посетили 63069 программистов и 1741 робот. Сейчас ищет 921 программист ...

Cannot read property 'submit' of null at window.onload

Тема в разделе "JavaScript и AJAX", создана пользователем Wolfin, 13 июл 2017.

  1. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Что еще вы на форум заменили, чтобы никто не смог вам помочь?..
     
  2. Wolfin

    Wolfin Новичок

    С нами с:
    13 июл 2017
    Сообщения:
    19
    Симпатии:
    2
    Адрес:
    зачем вам это знать?
    Пользователь выбирает сумму платежа и попадает на pay.php, он же делает переадресацию на фри касса, по идеи этот файл считывает данные об оплате, составляет ссылку. success.php и fail.php вспомогательные. Если с оплатой что-то не так юзера переадресовывает на fail.php. Также и с success.php, только наоборот. И тот, и другой связаны с lpo, а в pay уже нету ошибки ( файл в котором сама форма lpo ). Но проблема в submit.
    --- Добавлено ---
    Файл success.php должен получать информацию о платеже и зачислять деньги на баланс. В файле есть своя уникальная ссылка на каждый ID оплаты payment/success?id=2232 сумма и т.д.
     
  3. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Как я понял работает это так:
    1. Пользователь на Вашем сайте нажимает сделать платеж
    2. Грузится файл pay.php - генерирует страницу с формой lpo
    3. Из браузера пользователя отправляется скриптом форма lpo на фки-кассу
    4. И вот дальше вопрос: С фри-кассы в браузер пользователя должно прийти подтверждение?
    5. Но пользователь уже будет не на Вашей странице, а на фри-кассе.

    Раньше оплата работала?
    Может нужен ajax-запрос на фри-кассу?
    Наверняка браузер пользователя вообще в этом процессе лишний.
     
  4. Wolfin

    Wolfin Новичок

    С нами с:
    13 июл 2017
    Сообщения:
    19
    Симпатии:
    2
    Адрес:
    зачем вам это знать?
    Файл success.php должен получать информацию о платеже и зачислять деньги на баланс. В файле есть своя уникальная ссылка на каждый ID оплаты (payment/success?id=2232
    1. + (пишет сумму пополнения и тогда нажимает)
    2. +
    3. +
    4. +++
    5. ИД и 2 секретных кода от Free-Kassa связаны. И в админ-панели есть вкладка пополнение баланса, где после пополнения хрестик, типо оплата не прошла успешно.
     
  5. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Значит проблема с фри-кассой? Раньше этот код работал (и почему http, а не https)? Лично я не знаю, что им нужно в запросе отсылать, чтобы совершить платеж.
    Еще вопрос: Как запрос отправляется в файл success? Пользователь, что-то для этого должен сделать?
     
  6. Wolfin

    Wolfin Новичок

    С нами с:
    13 июл 2017
    Сообщения:
    19
    Симпатии:
    2
    Адрес:
    зачем вам это знать?
    Нет, после оплаты сначало на одном сайте надо 10 сек. подождать, потом на Фри-кассе, а потом открывается success с уникальным кодом
     
  7. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    То-есть, сейчас все останавливается на фри-кассе?
    И почему бы в файле pay.php вот это:
    PHP:
    1.        <script>
    2.             window.onload = function() {
    3.             document.getElementById('lpo').submit();
    4.             }
    5.         </script>
    6. ...
    7.           <form id="lpo" method="GET" action="http://www.free-kassa.ru/merchant/cash.php">
    8.         <input type="hidden" name="m" value="<?=$fk_merchant_id?>">
    9.         <input type="hidden" name="oa" value="<?=$order_amount?>">
    10.         <input type="hidden" name="o" value="<?=$order_id?>">
    11.         <input type="hidden" name="s" value="<?=$hash?>">
    12.         <input type="submit" value="..." style="background: transparent;border: none;text-align: center;font-size: 14px;margin: 15px 0 15px;font: 14px/15px 'OpenSans-Regular';line-height: 17px;color: #3d3d3d;">
    13.     </form>
    не заменить вот на это:

    PHP:
    1.        <script>
    2.             window.onload = function() {
    3.            window.location="http://www.free-kassa.ru/merchant/cash.php?m=<?=$fk_merchant_id?>&oa=<?=$order_amount?>&o=<?=$order_id?>&s=<?=$hash?>";
    4.             }
    5.         </script>
     
  8. Wolfin

    Wolfin Новичок

    С нами с:
    13 июл 2017
    Сообщения:
    19
    Симпатии:
    2
    Адрес:
    зачем вам это знать?
    вы правильно подметили, я заменил, тот же эффект, но компактнее : )
    но если этот код если вставить в success, оно перенаправляет сюда:
    http://www.free-kassa.ru/merchant/cash.php?m=&oa=&o=&s=
    --- Добавлено ---
    короче дело такое, я только что провёл оплату на 1р. )) И сначало после киви перенаправляет на: SimplePay, потом на Free-Kassa, и уже после этого на .......com/payment/success?MERCHANT_ORDER_ID='мойстимайди'18&intid=и тут ещё один код.
     
  9. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    В success так и будет, потому что переменные не определены.

    То-есть, все работает?
     
  10. Wolfin

    Wolfin Новичок

    С нами с:
    13 июл 2017
    Сообщения:
    19
    Симпатии:
    2
    Адрес:
    зачем вам это знать?
    нет
    --- Добавлено ---
    не пополняется
     
  11. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Возможно, все потому что во фрикассе другая ссылка и другие названия полей и еще какой-то флаг load:
    В доке к апи фрикассы так же есть поля us_* - это те параметры, которые фрикасса вернет на url магазина

    Нет. Не то. Вот Ваша форма:
    PHP:
    1. <?php
    2. $merchant_id = '7012';
    3. $secret_word = 'secret';
    4. $order_id = '154';
    5. $order_amount = '100.11';
    6. $sign = md5($merchant_id.':'.$order_amount.':'.$secret_word.':'.$order_id);
    7.  
    8. ?>
    9.  
    10.                         <form method='get' action='http://www.free-kassa.ru/merchant/cash.php'>
    11.                         <input type='hidden' name='m' value='<?php=$merchant_id?>'>
    12.     <input type='hidden' name='oa' value='<?php=$order_amount?>'>
    13.     <input type='hidden' name='o' value='<?php=$order_id?>'>
    14.     <input type='hidden' name='s' value='<?php=$sign?>'>
    15.     <input type='hidden' name='i' value='1'>
    16.     <input type='hidden' name='lang' value='ru'>
    17.     <input type='hidden' name='us_login' value='<?php=$user['login']?>'>
    18.     <input type='submit' name='pay' value='Оплатить'>
    19.                         </form>
    i - валюта платежа. 1 - вебмани
    https://www.free-kassa.ru/docs/api.php#ex_currencies
     
    #36 Maputo, 15 июл 2017
    Последнее редактирование: 15 июл 2017
  12. Wolfin

    Wolfin Новичок

    С нами с:
    13 июл 2017
    Сообщения:
    19
    Симпатии:
    2
    Адрес:
    зачем вам это знать?
    Всё работает с этим кодом, но баланс всёравно не пополняется.
     
  13. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    @Wolfin, поле i(валюта) указано?
     
  14. Wolfin

    Wolfin Новичок

    С нами с:
    13 июл 2017
    Сообщения:
    19
    Симпатии:
    2
    Адрес:
    зачем вам это знать?
    Указана, но мне нужно, чтобы человек выбирал валюту, а не только ВебМани.
     
  15. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    У кнопки submit указан атрибут name?
     
  16. Wolfin

    Wolfin Новичок

    С нами с:
    13 июл 2017
    Сообщения:
    19
    Симпатии:
    2
    Адрес:
    зачем вам это знать?
    Submit - должна быть не кнопка.
    document.getElementById('lpo').submit();
     
  17. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    хорошо. У Вас есть такой элемент в форме?
    HTML:
    1.  <input type='hidden' name='pay' value='Оплатить'>