Вызов 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 сервере.
Ответ, который я получил с подробным указанием для отладки на сервере и локальном, показан ниже:
Слева - сервер, а справа - локально ,
Как мне исправить этот код cURL для запуска на сервере?