Задача запроса CURL

Я пытаюсь проверить информацию pdt paypal.

Я создал свою макетную форму и представил ее. ИТ работал и возвращал информацию.

Я попробовал то же самое, что сделал запрос на завивание. Но мой запрос на запрос возвращается мне пустым.

моя макетная форма:

<form method="post" action="https://sandbox.paypal.com/cgi-bin/webscr"> <input type="hidden" name="cmd" value="_notify-synch"/> <input type="hidden" name="at" value="-----"/> <input type="hidden" name="tx" value="-----"/> <input type="submit" value="Test"/> </form> 

Мой код CURL REQ:

 $arrData = array( 'tx' => '----', 'cmd' => '_notify-synch', 'at' => '-----' ); $ch = curl_init( 'https://sandbox.paypal.com/cgi-bin/webscr' ); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $arrData); $strCurlResult = curl_exec($ch); curl_close( $ch ); return $strCurlResult; 

РЕДАКТИРОВАТЬ:

ON ошибка отслеживания ловушки я нашел следующее сообщение:

SSL: имя субъекта сертификата «www.sandbox.paypal.com» не соответствует имени целевого узла «sandbox.paypal.com»

Изменить: $ ch = curl_init ('https://sandbox.paypal.com/cgi-bin/webscr&apos;);
To: $ ch = curl_init ('https://www.sandbox.paypal.com/cgi-bin/webscr&apos;);

Причина: сертификат для http://www.sandbox.paypal.com недействителен для sandbox.paypal.com.
Между прочим, сделайте то же самое и в «действии» вашей формы.

Фактически, вы можете просто отключить проверку HOST. В некоторых версиях PHP / cURL просто отключить PEER недостаточно:

 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 

Из документов:

CURLOPT_SSL_VERIFYHOST: 1 проверить наличие общего имени в SSL-сертификате. 2, чтобы проверить наличие общего имени, а также убедиться, что он соответствует указанному имени хоста. В производственных средах значение этой опции должно быть равно 2 (значение по умолчанию).

Вы должны указать cURL не проверять сертификат SSL. Это можно сделать, установив опцию cURL:

 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 

Дополнительная информация здесь:

http://php.net/manual/en/function.curl-setopt.php

curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, 0);

хотя вышеупомянутые работы не рекомендуется.

как сказал роберт

Изменить:

$ ch = curl_init ('https://sandbox.paypal.com/cgi-bin/webscr&apos;);

Для того, чтобы:

$ ch = curl_init ('https://www.sandbox.paypal.com/cgi-bin/webscr&apos;);

Отправьте его как строку:

 $arrData = array( 'tx' => '----', 'cmd' => '_notify-synch', 'at' => '-----' ); $fields_string = ""; foreach($arrData as $key=>$value) $fields_string .= $key.'='.$value.'&'; rtrim($fields_string,'&'); $ch = curl_init( 'https://sandbox.paypal.com/cgi-bin/webscr' ); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1) ; curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); $strCurlResult = curl_exec($ch); curl_close( $ch ); return $strCurlResult;