PHP Curl возвращает 403 на сервере, но работает на локальном - PullRequest
0 голосов
/ 01 апреля 2020

Вызов API работает на локальном сервере, но возвращает 403 на действующем сервере. Этот вызов API требует передачи ключа API по почте. Код cURL, который я пробовал, был следующим:

$header = array("cache-control: no-cache","Content-Type: application/json");
$url = "https://accept.paymobsolutions.com/api/auth/tokens"
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$result = curl_exec($ch);

Ответ, который он дал на сервере, был таким, как показано ниже

<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
</body>
</html>

Я попробовал его с

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);

И получил тот же ответ. Также попробовал на другом сервере и получил тот же ответ. Но я получил правильный ответ на AWS сервере.

Ответ, который я получил с подробным указанием для отладки на сервере и локальном, показан ниже:

Слева - сервер, а справа - локально , enter image description here

Как мне исправить этот код cURL для запуска на сервере?

...