2016-08-17 88 views
1

問題SSL握手過程中的錯誤是淵源討論: PayPal Sandbox 500 Proxy Error- PayPal Adaptive https://www.paypal-community.com/t5/About-Payments/Adaptive-payment-api-is-sending-Proxy-error/m-p/1091510貝寶:與遠程服務器

看來,問題是返回我越來越

<!DOCHTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
    <html><head> 
    <title>500 Proxy Error</title> 
    </head><body> 
    <h1>Proxy Error</h1> 
    The proxy server could not handle the request <em><a href="/AdaptiveAccounts/GetVerifiedStatus">POST&nbsp;/AdaptiveAccounts/GetVerifiedStatus</a></em>.<p> 
    Reason: <strong>Error during SSL Handshake with remote server</strong></p><p /> 
    </body></html> 

在任何請求,而不對代碼更改我的側。有人有這個問題嗎?

更具體我創建了一個捲曲的請求是重現我的問題:

curl 'https://svcs.sandbox.paypal.com/AdaptiveAccounts/GetVerifiedStatus' -X POST -H 'X-PAYPAL-REQUEST-DATA-FORMAT: NV' -H 'X-PAYPAL-RESPONSE-DATA-FORMAT: NV' -H 'X-PAYPAL-DEVICE-IPADDRESS: 10.10.44.75' -H 'X-PAYPAL-REQUEST-SOURCE: adaptiveaccounts-php-sdk-3.10.2' -H 'User-Agent: PayPalSDK/adaptiveaccounts-php-sdk 3.10.2 (lang=PHP;v=7.0.9;bit=64;os=Linux_2.6.32-042stab103.6;machine=x86_64;openssl=1.0.1e-fips;curl=7.19.7)' -H 'X-PAYPAL-APPLICATION-ID: APP-XXXXXXXXXXXX' -H 'X-PAYPAL-SECURITY-USERID: ikhaldeev-facilitator_api1.dev.football.com' -H 'X-PAYPAL-SECURITY-PASSWORD: XXXXXXXXXXXX' -H'X-PAYPAL-SECURITY-SIGNATURE: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' -d 'accountIdentifier.emailAddress=paypalbiz%40example.com&matchCriteria=NAME&^CrstName=Test&lastName=Test' --tlsv1.2 

在這一請求,我熱響應:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> 
<html><head> 
<title>500 Proxy Error</title> 
</head><body> 
<h1>Proxy Error</h1> 
The proxy server could not handle the request <em><a href="/AdaptiveAccounts/GetVerifiedStatus">POST&nbsp;/AdaptiveAccounts/GetVerifiedStatus</a></em>.<p> 
Reason: <strong>Error during SSL Handshake with remote server</strong></p><p /> 
</body></html> 

正如你可以看到我指定TLSv1.2工作中curl命令此外,如果我將執行從我們的服務器,不支持TLSv1.2(該服務器不支持貝寶使用)之一相同的命令,我得到另一個錯誤

curl 'https://svcs.sandbox.paypal.com/AdaptiveAccounts/GetVerifiedStatus' -X POST -H 'X-PAYPAL-REQUEST-DATA-FORMAT: NV' -H 'X-PAYPAL-RESPONSE-DATA-FORMAT: NV' -H 'X-PAYPAL-DEVICE-IPADDRESS: 10.10.44.75' -H 'X-PAYPAL-REQUEST-SOURCE: adaptiveaccounts-php-sdk-3.10.2' -H 'User-Agent: PayPalSDK/adaptiveaccounts-php-sdk 3.10.2 (lang=PHP;v=7.0.9;bit=64;os=Linux_2.6.32-042stab103.6;machine=x86_64;openssl=1.0.1e-fips;curl=7.19.7)' -H 'X-PAYPAL-APPLICATION-ID: APP-XXXXXXXXXXXX' -H 'X-PAYPAL-SECURITY-USERID: ikhaldeev-facilitator_api1.dev.football.com' -H 'X-PAYPAL-SECURITY-PASSWORD: XXXXXXXXXXXX' -H'X-PAYPAL-SECURITY-SIGNATURE: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' -d 'accountIdentifier.emailAddress=paypalbiz%40example.com&matchCriteria=NAME&^CrstName=Test&lastName=Test' 

響應:

curl: (35) SSL connect error 

正如你可以看到這是另一個錯誤。當然我使用正確的憑據,appId等

回答

2

該錯誤表示您的服務器未通過TLS 1.2協議發送HTTP請求,該協議是PayPal在沙盒中需要的,明年將需要在Live服務器上使用。

更多details available here。最重要的是,

如果你想使用TLS 1.2,您需要升級到1.0.1的OpenSSL作爲最低,然後你就可以CURLOPT_SSLVERSION設置爲6(TLS 1.2)。

如果您希望在SSL請求期間自動使用TLS 1.2,那麼您還需要升級到PHP 5.5.19+(這是理想的解決方案,但許多項目仍在舊版本的PHP中)。

這是假設您使用PHP,當然。如果沒有,那麼你只需要確保讓TLS 1.2能夠與你使用的任何軟件堆棧一起工作。

+0

我們有TLS 1.2支持。我添加了更多細節以顯示問題不在我們這邊。 – user1381425

+0

順便說一下,我們正在使用PHP 7.0.9 – user1381425

+0

我不熟悉運行命令行curl請求,所以我不確定--tls1.2標誌預計是否工作,但是,我可以告訴你,自從PayPal在其沙箱中進行更改後,我多次看到SSL握手錯誤,並且在所有情況下都是因爲沒有使用TLS 1.2。 –