Вызов API возвращает HTML вместо JSONPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Вызов API возвращает HTML вместо JSON

Сообщение Anonymous »

Я работаю над платежным шлюзом на своем веб-сайте. У меня есть еще один шаг, и я застрял на нем.
Мне нужно отправить заказ в API поставщика платежей, и он должен вернуть объект с некоторыми данными и URI перенаправления, на который я должен перенаправить клиента.
У меня проблема — ответ API. Он возвращает HTML вместо JSON. Ниже мой запрос:

Код: Выделить всё

    $curl = curl_init();

$data = $data->get_params();

$data['order']['customerIp'] = $_SERVER['REMOTE_ADDR'];
$data['order']['extOrderId'] = generateRandomString();

$postdata = json_encode($data['order']);

curl_setopt_array($curl, array(
CURLOPT_URL => 'https://secure.snd.payu.com/api/v2_1/orders',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_HEADER => false,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $postdata,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json',
'Authorization: Bearer '.$data['token']
),
));

$response = curl_exec($curl);

curl_close($curl);

return rest_ensure_response( $response );
На веб-сайте документации я нашел это информационное сообщение:

Примечание. Код состояния HTTP ответа — 302 и В заголовке местоположения
установлено значение redirectUri, что - в зависимости от используемого программного обеспечения - может
иногда вызывать автоматическое перенаправление, а также получение ответов
в формате HTML.

Я предполагаю, что ответный HTML-код содержит веб-сайт, на который должен быть перенаправлен клиент.
Ответ JSON должен выглядеть следующим образом:

Код: Выделить всё

{
"status":{
"statusCode":"SUCCESS",
},
"redirectUri":"{payment_summary_redirection_url}",
"orderId":"WZHF5FFDRJ140731GUEST000P01",
"extOrderId":"{YOUR_EXT_ORDER_ID}",
}
Знаете ли вы, как это исправить или есть ли какая-либо возможность это сделать?
Или, может быть, получить путь, указанный в заголовке Location, и отправить его клиенту?
p>
В моем бэкэнде я использую PHP и Angular во внешнем интерфейсе.
Спасибо за любые идеи.
Спасибо .

Подробнее здесь: https://stackoverflow.com/questions/701 ... ad-of-json
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»