2013-07-22 33 views
6

Tôi đang tạo một trang web nhỏ trong đó tôi đã triển khai API REST của PayPal để xử lý các lần thanh toán bằng Thẻ tín dụng.API phần còn lại của PayPal cung cấp lỗi 401 khi chuyển sang Số chứng thực trực tiếp

Bây giờ vấn đề là nó đang làm việc tốt bằng các thông tin Sandbox ... nhưng nó mang lại cho lỗi sau khi tôi chuyển sang sống Credentials:

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

Khá thẳng thắn Tôi không có ý tưởng những gì đang gây ra lỗi này. Tôi đã thực hiện thay đổi ở hai nơi khi chuyển sang PayPal Live. ví dụ:

1 trong "bootstrap.php":

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

Gave Sống Client-ID và Secret. Và các tập tin khác trong đó tôi thực hiện thay đổi là "sdk_config.ini":

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

Thay đổi "chế độ" từ "sandbox" để "sống"

Có bất kỳ tập tin khác cũng trong đó tôi phải thực hiện thay đổi?

+0

Bạn có thể xác nhận rằng nó thực sự cố gắng để tiếp cận với các thiết bị đầu cuối trực tiếp có đúng không? – Gerzie

+0

@PayPal_Patrick Tôi không biết cách xác nhận điều này? Bạn có thể hướng dẫn tôi không? – user2524046

+0

@PayPal_Patrick Tôi nhận được điều này trong tệp nhật ký: 'PayPal \ Core \ PPHttpConnection: Kết nối với https: // api.paypal.com/v1/payments/payment'. Vì vậy, tôi đoán nó đang tiếp cận với đúng EndPoint Live. – user2524046

Trả lời

2

Trả lời từ nhận xét - @PayPal_Patrick Thanx buddy! Tôi đã giải quyết được vấn đề.

Thực ra, vấn đề không phải từ phía tôi. Tôi đã làm mọi thứ một cách chính xác.

Khách hàng không bật Tài khoản thực của mình đó là lý do tôi không thể thực hiện yêu cầu thanh toán bằng Thông tin xác thực trực tiếp. Nhưng dù sao, thanx cho sự giúp đỡ của bạn!

3

Tôi đã gặp phải sự cố tương tự rồi nhận giải pháp.

Bạn cần phải thay đổi chế độ từ sandbox để livelog.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

thay đổi chế độ đã sửa lỗi của tôi. cảm ơn! – Lucas

Các vấn đề liên quan