Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 17
1

Не выполняется переадресация через curl при POST запросе

29.07.2021, 00:49. Показов 1716. Ответов 7

Author24 — интернет-сервис помощи студентам
При попытке выполнить POST-запрос с помощью curl php белая страница, не выполняется переадресация.
файл в расширении *.php с учетом регистра, обращаюсь к нему на сервере через http://, версия php на сервере 7.1, через phpinfo() говорит, что поддержка curl присутствует.

Вот код:
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
<?php
function request() {
    $url = "https://test.oppwa.com/v1/checkouts";
    $data = "entityId=8a8294185e5c61f5015e61d25f250dca" .
                "&amount=92.00" .
                "&currency=EUR" .
                "&paymentType=DB";
 
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
                   'Authorization:Bearer OGE4Mjk0********YTkgzOQ=='));
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// this should be set to true in production
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $responseData = curl_exec($ch);
    if(curl_errno($ch)) {
        return curl_error($ch);
    }
    curl_close($ch);
    return $responseData;
}
$responseData = request();
?>
ЧЯДНТ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.07.2021, 00:49
Ответы с готовыми решениями:

Переадресация на URL при POST запросе
using System; using System.Collections.Generic; using System.Text; using...

Не отправляются аутентификационные coookie при повторном запросе через curl
Возможно это уже обсуждалось на Вашем форуме, но я не смог найти. Поэтому решил написать заново. ...

Curl, как передать в post запросе знак &
Нужно короче отправить пост запрос который содежит url и естественно знаки &amp;, сам курл считает ети...

Отправка POST через CURL
Ребят, создал скрипт в OSPanel, в котором CURL отправляет массив методом POST. На реальном...

7
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
29.07.2021, 01:53 2
А где тут редирект? В переменную $responseData получаются какие-то данные и дальше с ними ничего не делается. Конечно белая страница и будет.
1
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 17
29.07.2021, 02:03  [ТС] 3
подскажите как для идиота, пожалуйста, что нужно дописать?
0
220 / 173 / 115
Регистрация: 19.01.2015
Сообщений: 524
29.07.2021, 02:11 4
А что должно произойти? curl не для редиректов предназначен.
1
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 17
29.07.2021, 02:42  [ТС] 5
https://oppwa.com/v1/checkouts меня должно выкинуть вот сюда, где заполнится json с нужным мне id

Добавлено через 13 минут
Если что, вот что написано в документации к виджету: "First, perform a server-to-server POST request to prepare the checkout with the required data, including the order type, amount and currency. The response to a successful request is a JSON string with an id, which is required in the second step to create the payment form."
0
24 / 16 / 9
Регистрация: 19.07.2021
Сообщений: 79
29.07.2021, 04:42 6
Лучший ответ Сообщение было отмечено Goosenic как решение

Решение

Цитата Сообщение от Goosenic Посмотреть сообщение
JSON string with an id, which is required in the second step to create the payment form
Все верно написано.
Вы правильно сделали запрос, он обработался, в результате получаете ответ в виде json string в котором одна из переменных id, котторая вам понадобитьтся на следущем шаге для создания формы оплаты.

Код
object(stdClass)#2 (5) {
  ["result"]=>
  object(stdClass)#1 (2) {
    ["code"]=>
    string(11) "000.200.100"
    ["description"]=>
    string(29) "successfully created checkout"
  }
  ["buildNumber"]=>
  string(66) "cb4d25a8e1192976e77207fcf7456a8a300bd147@2021-07-26 13:37:17 +0000"
  ["timestamp"]=>
  string(24) "2021-07-29 01:34:51+0000"
  ["ndc"]=>
  string(46) "3134E9828EDC2E6F383EFA55175FD715.uat01-vm-tx02"
  ["id"]=>
  string(46) "3134E9828EDC2E6F383EFA55175FD715.uat01-vm-tx02"
}
Вот что приходит в ответ. Вытягиваем id и формируем следующий запрос CURL для создания платежки.

PHP
1
2
3
4
5
$responseData = request();
$json = json_decode($responseData);
if ($json->result->code == "000.200.100"){
    print "Create payment form with id:".$json->id;
}
1
0 / 0 / 0
Регистрация: 19.04.2021
Сообщений: 17
29.07.2021, 12:07  [ТС] 7
Господи, я идиот! Мне же Smls еще в начале сказал, что я что-то получаю в $responseData и ничего дальше с ней не делаю... Спасибо большое вам обоим!
0
51 / 38 / 13
Регистрация: 20.01.2019
Сообщений: 115
29.07.2021, 12:10 8
Цитата Сообщение от Goosenic Посмотреть сообщение
ЧЯДНТ
ответ от курла декодится, оттуда вытягивается условный payment_url, а потом
PHP
1
2
header('Location: ' . $payment_url);
exit;
1
29.07.2021, 12:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.07.2021, 12:10
Помогаю со студенческими работами здесь

Wall.post через Curl
Пытаюсь отправить сообщение на стену паблика в ВК через Curl &lt;?php $token =...

Парсинг post запроса через cURL
Стоит задача получить в поиске конкретную запись по номеру извещения. Делаю через CURL,сам сайт с...

Передать ";" в POST запросе curl
Здравствуйте, использую следующий код для отправки POST запроса на сайт: curl_setopt($curl,...

Не передается переменная через POST в скрипт с cURL
Доброго времени суток! Я делаю проект, где можно выложить текст в Интернет и получить короткую...

Обработать POST запрос, отправленный через curl
Добрый день, уважаемые коллеги Подскажите как обработать POST запрос, отправленный curl'ом: ...

Не срабатывает переадресация при запросе к папке
есть у меня сайт, у которого в отдельной папке живет форум. сам сайт живет в папке, которая у апача...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru