Мне нужно отправить заказ в 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
Мобильная версия