2013-07-22 15 views
6

PayPal REST APIを実装した小規模なWebサイトを作成して、クレジットカードのチェックアウトを処理しています。PayPal Rest APIにより、ライブクレデンシャルに切り替えると401エラーが発生する

今の問題は、それがサンドボックスの資格情報を使用して正常に動作しているということです...しかし、それは私が資格情報をライブに切り替えるときにエラーを以下与える:

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に切り替えるときに2か所で変更を加えました。 "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'に接続しています。だから、私はそれが正しいライブエンドポイントに到達していると思います。 – user2524046

答えて

2

コメントからの回答 - @PayPal_Patrick Thanx buddy!私はこの問題を解決しました。

実際、この問題は私の側からではありませんでした。私はすべてを正しくしていた。

クライアントがLiveアカウントを有効にしなかったため、Live Credentialsを使用して支払いリクエストを行うことができませんでした。とにかくお世話になりました!

3

私は同じ問題に直面して解決策を得ました。

あなたはliveに​​からモードを変更する必要があるとFINEからDEBUGからlog.LogLevel

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

関連する問題