我在nodejs应用程序中使用REST api。 所有这些都适用于沙盒,但是当我使用实时凭证更新时,我得到:
{ [Error: Response Status : 401]
response:
{ error: 'invalid_client',
error_description: 'The client credentials are invalid',
httpStatusCode: 401 },
httpStatusCode: 401 }
我将我的帐户更新为商务但仍无效,我使用了实时终端和实时凭据。
为了使这项工作,我该怎么做?
答案 0 :(得分:15)
我使用PayPalSDK / rest-sdk-nodejs遇到了同样的问题,并解决了传递配置参数(host,client_id,client_secret,...),参数' mode '设置为'的活强>”。否则,库使用的默认模式是“沙箱”,因此无法使用实时凭证。
答案 1 :(得分:0)
正如matteo所说,如果你从dev切换到实时环境,只更新客户端ID和秘密是不够的。您需要将ApiContext-Mode设置为" live"。
PayPals PHP REST-API-SDK附带了一些很棒的示例。看看/ vendor / paypal / rest-api-sdk-php / sample /第84行中的bootstrap.php。在获取api上下文后,有一些配置正在发生。
<?php
$apiContext = new ApiContext(
new OAuthTokenCredential(
$clientId,
$clientSecret
)
);
// Comment this line out and uncomment the PP_CONFIG_PATH
// 'define' block if you want to use static file
// based configuration
$apiContext->setConfig(
array(
'mode' => 'sandbox',
'log.LogEnabled' => true,
'log.FileName' => '../PayPal.log',
'log.LogLevel' => 'DEBUG', // PLEASE USE `INFO` LEVEL FOR LOGGING IN LIVE ENVIRONMENTS
'cache.enabled' => true,
// 'http.CURLOPT_CONNECTTIMEOUT' => 30
// 'http.headers.PayPal-Partner-Attribution-Id' => '123123123'
//'log.AdapterFactory' => '\PayPal\Log\DefaultLogFactory' // Factory class implementing \PayPal\Log\PayPalLogFactory
)
);