2016-04-04 5 views
0

Работа в песочнице, и я настраивал существующее приложение для обработки нескольких элементов оформления, но теперь SetExpressCheckout возвращает пустой массив, но я не вижу ничего плохого в моем значении: & Amt = 60 & PAYMENTACTION = Продажа & ReturnUrl = http://system/hg/shirts/PaypalInvoice.php&CANCELURL=http://system/hg/shirts/confirm.php&CURRENCYCODE=USD&SOLUTIONTYPE=Sole&LANDINGPAGE=Login&DESC=HG+Shirt+Order&L_NAME0=MenSmall&L_NUMBER0=001&L_DESC0=Mens+T-Shirt+Small&L_AMT0=20&L_QTY0=3&ITEMAMT=60&TAXAMNT=0SetExpressCheckout возвращает пустой массив

//setting the curl parameters. 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$API_Endpoint); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 

    //turning off the server and peer verification(TrustManager Concept). 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 

    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_POST, 1); 

    //if USE_PROXY constant set to TRUE in Constants.php, then only proxy will be enabled. 
    //Set proxy name to PROXY_HOST and port number to PROXY_PORT in constants.php 
    if($USE_PROXY) 
     curl_setopt ($ch, CURLOPT_PROXY, $PROXY_HOST. ":" . $PROXY_PORT); 

    //NVPRequest for submitting to server 
    $nvpreq="METHOD=" . urlencode($methodName) . "&VERSION=" . urlencode($version) . "&PWD=" . urlencode($API_Password) . "&USER=" . urlencode($API_UserName) . "&SIGNATURE=" . urlencode($API_Signature) . $nvpStr . "&BUTTONSOURCE=" . urlencode($sBNCode); 

    //setting the nvpreq as POST FIELD to curl 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $nvpreq); 

    // these are supposed to fix Fatal 
    // Error curl_exec for SetExpressCheckout error:"error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure" - Code: 35 
    curl_setopt($ch, CURLOPT_SSLVERSION, 3); 
    curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'SSLv3'); 

    //getting response from server 
    $response = curl_exec($ch); 

    if(!$response) 
    { 
     die('Fatal Error curl_exec for ' . $methodName . ' error:"' . curl_error($ch) . '" - Code: ' . curl_errno($ch)); 
    } 
+0

Пожалуйста, внесите ваш код. – betseyb

+0

Возможно, вы столкнулись с проблемой POODLE. Вы не представили много деталей, но я собираюсь предположить, что вы работаете с PHP и CURL. Вам нужно уловить ваш результат CURL, чтобы увидеть, есть ли ошибка и просмотреть сама ошибка, что, вероятно, что-то похожее на «сбой рукопожатия ssl». После того, как вы подтвердите, что вы можете [ссылаться на это руководство] (https://www.angelleye.com/paypal-ssl-error-poodle-vulnerability/), более подробную информацию о том, как его разрешить. –

+0

Обратите внимание, что это происходит только тогда, когда я пытаюсь использовать Песочницу, чего не происходит с текущим сайтом. Я обновил php до 5.6.16 и убедился, что у меня есть сертификат G5, но он все еще не работает. Это ошибка: Неустранимая ошибка curl_exec для ошибки SetExpressCheckout: "error: 14094410: SSL-процедуры: SSL3_READ_BYTES: sslv3 ошибка рукопожатия оповещения" - Код: 35 – Meadwizard

ответ

0

Ну я нашел ответ. Не уверен, зачем мне это нужно, но это устранило проблему.

curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1_2); 
+0

Это из-за уязвимости POODLE, о которой я упоминал в своем первоначальном комментарии. –

+0

Понял. Это было ключом, который позволил мне решить проблему, но найти настройку, необходимую для того, чтобы обойти это было немного сложно. – Meadwizard