Я использую этот код для обработки Paypal передачи данных платежа (PDT):Paypal PDT - SSL подключение ошибки
$url = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
$tx_token = $_GET['tx'];
$auth_token = "my_token";
$fields = array(
'cmd' => '_notify-synch',
'tx' => $tx_token,
'at' => $auth_token,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($fields));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$res = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo 'Curl error: ' . curl_error($ch);
echo "status: " . $status;
curl_close($ch);
И я получаю:
Curl error: SSL connect error
status: 0
Я попытался сделать API в Почтальон с тем же URL: www.sandbox.paypal.com с теми же параметрами (cmd, at, tx), и я получил ответ успеха. Что я сделал не так?
Я добавил: 'curl_setopt ($ ch, CURLOPT_SSLVERSION, 6); // CURL_SSLLVERSION_TLSv1_2 = 6' и лишал 'CURLOPT_SSL_VERIFYHOST' равным 2. Теперь я не получаю ошибку Curl, но получаю:' status: 200' 'string (5)" FAIL "' Спасибо! – user3084703
Мне удалось установить это исправление (у меня была ошибка с tx). Ваше предложение работает !!! Благодаря!! – user3084703