2016-04-04 9 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

これは、ライブサイトで発生しないサンドボックスを試してみるときにのみ起こることに注意してください。私は5.6.16にPHPをアップグレードして、私はG5証明書を持っていることを確認したが、まだ失敗している。 SetExpressCheckoutエラーの致命的なエラーcurl_exec: "エラー:14094410:SSLルーチン:SSL3_READ_BYTES:sslv3アラートハンドシェイクエラー" - Code:35 – Meadwizard

答えて

0

まあ、私は答えを見つけました。なぜ私はこれを行う必要があるのか​​分からないが、問題を修正した。

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

これはPOODLEの脆弱性のためです。これは最初のコメントで言及しました。 –

+0

それは私を解決に導く手掛かりでしたが、周りを回るために必要な設定を見つけることはややこしいことでした。 – Meadwizard

関連する問題