Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не работает отправка формы посредством CURL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
rasl89
Отправлено: 08 Июня, 2020 - 20:00:11
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


Помог: 1 раз(а)




Отправляю форму при помощи curl на мерчант платежки, форма не уходит, возвращает на главную, не могу найти причину, помогите пожалуйста. Возможна проблема с массивом.

PHP:
скопировать код в буфер обмена
  1.  
  2. ini_set('display_errors', 1);
  3. global $current_user;
  4. $info = '';
  5. if (isset($_POST['m_amount'])) {
  6.     $domain = 'https://payeer.com/merchant/';
  7.     $fields = [
  8.         'm_shop' => '001',
  9.         'm_orderid' => $current_user->user_login.'|'.date('m.d.y|H:i:s'),
  10.         'm_amount' => number_format($_POST['m_amount'], 2, ".", ""),
  11.         'm_curr' => 'RUB',
  12.         'm_desc' => base64_encode($current_user->user_login),
  13.         'm_key' => '001',
  14.     ];
  15.     $sign = strtoupper(hash('sha256', implode(':', array_keys($fields))));
  16.     $fields['m_sign'] = $sign;
  17.  
  18.     $ch = curl_init($domain);
  19.     curl_setopt($ch, CURLOPT_POST, 1);
  20.     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($fields));
  21.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  22.     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  23.     curl_setopt($ch, CURLOPT_HEADER, false);
  24.     $html = curl_exec($ch);
  25.     if (curl_errno($ch)) {
  26.         $info = 'curl has error: '.curl_error($ch);
  27.     } else {
  28.         $info = $html;
  29.     }
  30.     curl_close($ch);
  31. }
  32.  


CODE (html):
скопировать код в буфер обмена
  1. <form name="et-form" class="et-form" method="post" action="/" >
  2.  
  3.             <div class="plateg">
  4.                 <label for="amount"><?php _e( 'Money amount', 'enginethemes' ); ?></label>
  5.                 <input type="number" name="m_amount" value="" placeholder="Минимум: 100.00Р" required></div>
  6.                 <br><button type= "submit" name="amount" class="btn-save waves-effect waves-light btn-diplomat"><?php _e('Пополнить'); ?></button>
  7.         </form>
  8.  
  9. <script>
  10.     $('form.et-form').on('submit', function() {
  11.         if (parseFloat($('form.et-form input[name=m_amount]').val()) < 100) {
  12.            alert("Минимальная сумма для пополнения 100,00 Р");
  13.            return false;
  14.        }
  15.    });
  16. </script>


При попытке вывести через echo $sign $fields ничего не показывет, дебаггер тоже молчит.
 
 Top
Albert
Отправлено: 09 Июня, 2020 - 01:27:13
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июнь 2020  
Откуда: Украина


Помог: 0 раз(а)




Судя по вашему коду, перекидывать на главную будет даже если выполняется отправка через curl. Результат вы записываете в переменную, и дальше ничего с ней не делаете.
 
 Top
rasl89
Отправлено: 09 Июня, 2020 - 09:38:33
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


Помог: 1 раз(а)




Albert пишет:
Судя по вашему коду, перекидывать на главную будет даже если выполняется отправка через curl. Результат вы записываете в переменную, и дальше ничего с ней не делаете.

Спасибо за ответ.
Можно точнее пожалуйста?
 
 Top
Albert
Отправлено: 09 Июня, 2020 - 16:05:42
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июнь 2020  
Откуда: Украина


Помог: 0 раз(а)




Для начала сделайте вывод результата, и посмотрите что возвращается после отправки curl.
 
 Top
rasl89
Отправлено: 09 Июня, 2020 - 20:44:23
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


Помог: 1 раз(а)




Albert пишет:
Для начала сделайте вывод результата, и посмотрите что возвращается после отправки curl.


так ничего не выводит и дебаггером ничего отследить не могу(
 
 Top
Albert
Отправлено: 09 Июня, 2020 - 22:10:38
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июнь 2020  
Откуда: Украина


Помог: 0 раз(а)




Попробуйте перед отправкой добавить опции
PHP:
скопировать код в буфер обмена
  1. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  2. curl_setopt($ch, CURLOPT_AUTOREFERER, true);
 
 Top
rasl89
Отправлено: 09 Июня, 2020 - 22:17:19
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


Помог: 1 раз(а)




Albert пишет:
Попробуйте перед отправкой добавить опции
PHP:
скопировать код в буфер обмена
  1. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
  2. curl_setopt($ch, CURLOPT_AUTOREFERER, true);


к сожалению эффекта нет
 
 Top
Albert
Отправлено: 09 Июня, 2020 - 22:18:42
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июнь 2020  
Откуда: Украина


Помог: 0 раз(а)




Какой код ответа возвращает?
 
 Top
rasl89
Отправлено: 09 Июня, 2020 - 22:21:29
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


Помог: 1 раз(а)




Albert пишет:
Какой код ответа возвращает?

так никакого(
 
 Top
Albert
Отправлено: 09 Июня, 2020 - 22:25:51
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июнь 2020  
Откуда: Украина


Помог: 0 раз(а)




Я имею в виду
 
 Top
rasl89
Отправлено: 09 Июня, 2020 - 22:32:46
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


Помог: 1 раз(а)




Albert пишет:
Я имею в виду


цифра 0
 
 Top
Albert
Отправлено: 09 Июня, 2020 - 22:38:15
Post Id


Новичок


Покинул форум
Сообщений всего: 12
Дата рег-ции: Июнь 2020  
Откуда: Украина


Помог: 0 раз(а)




А вообще у вас curl работает на сервере? Другие запросы отправляются?
 
 Top
rasl89
Отправлено: 09 Июня, 2020 - 22:39:59
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


Помог: 1 раз(а)




Albert пишет:
А вообще у вас curl работает на сервере? Другие запросы отправляются?


да, все работает, недавно писал парсер, все отлично отрабатывает
 
 Top
rasl89
Отправлено: 10 Июня, 2020 - 21:35:19
Post Id



Гость


Покинул форум
Сообщений всего: 104
Дата рег-ции: Март 2020  
Откуда: Россия, Уфа


Помог: 1 раз(а)




Проблема решена без cURL
Может кому-то пригодится

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. if (isset($_POST['m_amount'])) {
  4.     $m_shop = '001';
  5.     $m_orderid = $user_data01;
  6.     $m_amount = number_format($_POST['m_amount'], 2, ".", "");
  7.     $m_curr = 'RUB';
  8.     $m_desc = base64_encode($user_data01);
  9.     $m_key = '001';
  10.  
  11.     $arHash = array(
  12.         $m_shop,
  13.         $m_orderid,
  14.         $m_amount,
  15.         $m_curr,
  16.         $m_desc
  17.     );
  18.  
  19.     $arHash[] = $m_key;
  20.  
  21.     $sign = strtoupper(hash('sha256', implode(':', $arHash)));
  22.  
  23.  


CODE (html):
скопировать код в буфер обмена
  1. <form method="post" action="https://payeer.com/merchant/" id="payeer" hidden>
  2. <input type="hidden" name="m_shop" value="<?= $m_shop ?>">
  3. <input type="hidden" name="m_orderid" value="<?= $m_orderid ?>">
  4. <input type="hidden" name="m_amount" value="<?= $m_amount ?>">
  5. <input type="hidden" name="m_curr" value="<?= $m_curr ?>">
  6. <input type="hidden" name="m_desc" value="<?= $m_desc ?>">
  7. <input type="hidden" name="m_sign" value="<?= $sign ?>">
  8.  
  9. <input type="submit" value="pay" />
  10. </form>
  11. <script>
  12.     document.getElementById('payeer').submit();
  13. </script>
  14. <?php
  15. }
  16. ?>


CODE (html):
скопировать код в буфер обмена
  1. <input type="number" name="m_amount" placeholder="Минимум: 100.00Р" required></div>
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB