2013-07-22 64 views
6

我正在創建一個小網站,在該網站中實現了PayPal REST API來處理信用卡結賬。PayPal Rest API在切換到Live Credentials時出現401錯誤

現在的問題是,它是使用沙盒證書工作正常......但是當我切換到Live憑據它提供了以下錯誤:

Fatal error: Uncaught exception 'PayPal\Exception\PPConnectionException' with message 'Got Http response code 401 when accessing https://api.paypal.com/v1/payments/payment . Retried 0 times.' in C:\xampp\htdocs\rest_api_sdk_php\sample\vendor\paypal\sdk-core-php\lib\PayPal\Core\PPHttpConnection.php:99 Stack trace: #0 C:\xampp\htdocs\rest_api_sdk_php\sample\vendor\paypal\sdk-core-php\lib\PayPal\Transport\PPRestCall.php(44): PayPal\Core\PPHttpConnection->execute('{"intent":"sale...') #1 C:\xampp\htdocs\rest_api_sdk_php\sample\vendor\paypal\rest-api-sdk-php\lib\PayPal\Api\Payment.php(246): PayPal\Transport\PPRestCall->execute(Array, '/v1/payments/pa...', 'POST', '{"intent":"sale...') #2 C:\xampp\htdocs\rest_api_sdk_php\sample\payments\CreatePayment.php(89): PayPal\Api\Payment->create(Object(PayPal\Rest\ApiContext)) #3 {main} thrown in C:\xampp\htdocs\rest_api_sdk_php\sample\vendor\paypal\sdk-core-php\lib\PayPal\Core\PPHttpConnection.php on line 99

坦率地說,我不知道是什麼原因造成這個錯誤。在切換到PayPal Live時,我在兩處進行了更改。即

月1日在 「bootstrap.php中」:

$apiContext = new ApiContext(new OAuthTokenCredential(
    '<Live Client ID>', 
    '<Live Secret>')); 

給了現場客戶ID和密碼。而在我做出改變的另一個文件是「sdk_config.ini」:

;Service Configuration 
[Service] 
mode=live ; can be set to sandbox/live 

更改「模式」,從「沙箱」到「活」

是否有任何其他文件還住在我所要做出改變?

+0

你能否證實它實際上是試圖接觸到正確的直播終點? – Gerzie

+0

@PayPal_Patrick我不知道如何確認這一點?你能指導我嗎? – user2524046

+0

@PayPal_Patrick我在日誌文件中得到這個:'PayPal \ Core \ PPHttpConnection:連接到https:// api.paypal.com/v1/payments/payment'。所以,我想它正在接觸到正確的Live EndPoint。 – user2524046

回答

2

回覆評論 - @PayPal_Patrick Thanx哥們!我已經解決了這個問題。

事實上,問題並不在我身邊。我一切正常。

客戶端未啓用她的真實帳戶,這是我無法使用Live Credentials進行付款請求的原因。無論如何,thanx爲您提供幫助!

3

我面臨同樣的問題,然後得到解決方案。

你必須從​​模式改變爲livelog.LogLevelDEBUGFINE

/* Sandbox */ 
$apiContext->setConfig(
    array(
     'mode' => 'sandbox', 
     'log.LogEnabled' => true, 
     'log.FileName' => '../PayPal.log', 
     'log.LogLevel' => 'DEBUG', // PLEASE USE FINE LEVEL FOR LOGGING IN LIVE ENVIRONMENTS 
     'cache.enabled' => true, 
     // 'http.CURLOPT_CONNECTTIMEOUT' => 30 
     // 'http.headers.PayPal-Partner-Attribution-Id' => '123123123' 
    ) 
); 

/* For Live */ 
$apiContext->setConfig(
    array(
     'mode' => 'live', 
     'log.LogEnabled' => true, 
     'log.FileName' => '../PayPal.log', 
     'log.LogLevel' => 'FINE', // PLEASE USE FINE LEVEL FOR LOGGING IN LIVE ENVIRONMENTS 
     'cache.enabled' => true, 
     // 'http.CURLOPT_CONNECTTIMEOUT' => 30 
     // 'http.headers.PayPal-Partner-Attribution-Id' => '123123123' 
    ) 
); 
+0

更改模式解決了我的錯誤。謝謝! – Lucas

相關問題