2013-07-22 9 views
6

Sto creando un piccolo sito Web in cui ho implementato l'API REST PayPal per elaborare i pagamenti con carta di credito.L'API di ripristino PayPal restituisce l'errore 401 quando si passa alle credenziali live

Ora il problema è che si sta lavorando bene utilizzando le credenziali Sandbox ... ma dà seguente errore quando passa a Live credenziali:

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

Francamente non ho idea di che cosa sta causando questo errore. Ho apportato modifiche in due punti quando si passa a PayPal Live. vale a dire

prima in "bootstrap.php":

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

Gave client Live-ID e segreto. E l'altro file in cui ho fatto il cambiamento è "sdk_config.ini":

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

Modificato "modalità" da "sandbox" a "vivere"

C'è qualche altro file anche in cui devo Fare cambiamenti?

+0

Puoi confermare che è in realtà cercando di raggiungere la corretta tensione endpoint? – Gerzie

+0

@PayPal_Patrick Non so come confermare questo? Puoi guidarmi? – user2524046

+0

@PayPal_Patrick Sto ottenendo questo nel file di registro: 'PayPal \ Core \ PPHttpConnection: Connessione a https: // api.paypal.com/v1/pagamenti/pagamento'. Quindi, immagino che stia raggiungendo il Live EndPoint corretto. – user2524046

risposta

2

Risposta dai commenti - @PayPal_Patrick Grazie amico! Ho risolto il problema.

In effetti il ​​problema non era dalla mia parte. Stavo facendo tutto correttamente.

Il client non ha abilitato il proprio account live ed è per questo che non sono riuscito a effettuare richieste di pagamento utilizzando le credenziali live. Comunque, grazie per il tuo aiuto!

3

Stavo affrontando lo stesso problema e poi ho trovato una soluzione.

Devi cambiare la modalità da sandbox al live e il log.LogLevelDEBUG-FINE:

/* 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

cambiando la modalità risolto il mio errore. Grazie! – Lucas

Problemi correlati