我正在创建一个小网站,我在其中实施了PayPal REST API来处理信用卡结账。
现在的问题是它使用Sandbox Credentials工作正常......但是当我切换到Live Credentials时出现以下错误:
致命错误:未捕获异常'PayPal \ Exception \ PPConnectionException',并在访问https://api.paypal.com/v1/payments/payment时收到消息'获取Http响应代码401。重试了0次。在C:\ xampp \ htdocs \ rest_api_sdk_php \ sample \ vendor \ paypal \ sdk-core-php \ lib \ PayPal \ Core \ PPHttpConnection.php:99堆栈跟踪:#0 C:\ xampp \ htdocs \ rest_api_sdk_php \ sample \ vendor \ paypal \ sdk-core-php \ lib \ PayPal \ Transport \ PPRestCall.php(44):PayPal \ Core \ PPHttpConnection->执行('{“意图”:“销售......”)#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 \付款 - >创建(对象(PayPal \ Rest \ ApiContext))#3 {main}抛出C:\ xampp \ htdocs \ rest_api_sdk_php \ sample \ vendor \ paypal \ sdk-core-php \ lib \ PayPal \ Core \ PPHttpConnection第99行的.php
坦率地说,我不知道是什么导致了这个错误。切换到PayPal Live时,我在两个地方进行了更改。即。
在“bootstrap.php”中获得第一名:
$apiContext = new ApiContext(new OAuthTokenCredential(
'<Live Client ID>',
'<Live Secret>'));
提供Live Client-ID和Secret。我更改的另一个文件是“sdk_config.ini”:
;Service Configuration
[Service]
mode=live ; can be set to sandbox / live
将“模式”从“沙盒”更改为“实时”
还有其他文件我还需要进行更改吗?
答案 0 :(得分:3)
我遇到了同样的问题然后得到了解决方案。
您必须将模式从sandbox
更改为live
,将log.LogLevel
从DEBUG
更改为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'
)
);
答案 1 :(得分:2)
从评论中回答 - @PayPal_Patrick Thanx哥们!我已经解决了这个问题。
事实上,问题不在我身边。我正在做正确的事。
客户未启用其真实帐户,这就是我无法使用Live Credentials发出付款请求的原因。无论如何,感谢你的帮助!