php - 切换到 Live Credentials 时,PayPal Rest API 会出现 401 错误

标签 php api rest paypal

我正在创建一个小网站,我在其中实现了 PayPal REST API 来处理信用卡结账。

现在的问题是它使用 Sandbox Credentials 工作正常...但是当我切换到 Live 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

坦率地说,我不知道是什么导致了这个错误。切换到 PayPal Live 时,我在两个地方进行了更改。即

“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 

将“模式”从“沙盒”更改为“实时”

是否还有任何其他文件需要我进行更改?

最佳答案

我遇到了同样的问题然后找到了解决方案。

您必须将模式从 sandbox 更改为 live 并将 log.LogLevelDEBUG 更改为 很好:

/* 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'
    )
);

关于php - 切换到 Live Credentials 时,PayPal Rest API 会出现 401 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17782533/

相关文章:

PHP/MySQL - 如果变量不存在则更新数组

api - Web 应用程序架构 : 1 or n API

json - 如何在 spring 3.1 中使用 RESTful webservice 获取 JSON 响应

php - 用 php 实现 RESTFUL webservice

python-3.x - 如何更改 Django REST 框架中 URL 中的默认搜索查询参数?

php - js上的数组数据——好用吗?

php - 我应该将标签存储在文本字段中还是单独的表格中?

php - 版本包 laravel/ui 的 PHP 要求与您的 PHP 版本 (5.6.40) 不兼容

java - 如何在 OOP 中为 API 或框架设计一个健壮的 Status 类?

api - 找到合并分支的tfs路径