Я должен отправить данные на сервер платежей и получить от них результат. Я решил использовать cUrl для достижения этой цели. Другая сторона дала мне ssl-сертификат, который действует как открытый ключ (если я правильно понимаю). Вызов cUrl возвращает ошибку с жалобой на невозможность установить закрытый ключ, чего я не понимаю, потому что не могу получить закрытый ключ платежного сервера из-за проблем безопасности. Мне просто нужно передать свой ssl-сертификат на платежный сервер, чтобы они могли идентифицировать меня (у них есть IP-адрес моего сервера, и я предполагаю, что закрытый ключ для сертификата, который они мне дали).
Полагаю, мне нужно смоделировать способ, которым браузер отправляет свой сертификат для доступа к нужному веб-сайту, а не подписывать информацию закрытым ключом.
Итак, вопрос - как сделать сообщение cUrl http?
Сейчас я использую этот код:
$x = curl_init();
$options = array(
CURLOPT_URL => $serverURL,
CURLOPT_VERBOSE => 1,
CURLOPT_SSLCERT => getcwd() . "/certificate.pem",
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_FAILONERROR => 1,
CURLOPT_HEADER => true,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $string,
CURLOPT_FOLLOWLOCATION => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_TIMEOUT => 5,
);
curl_setopt_array($x, $options);
$data = curl_exec($x);
if (curl_errno($x)) {
echo curl_error($x) . " ( " . curl_errno($x) . " )<br/>";
} else {
echo "reponse: ";
var_dump ($data);
}