【发布时间】:2017-04-01 17:25:31
【问题描述】:
切换到使用我的实时密钥后出现 401 错误。我收到 401 错误 invalid_client 客户端身份验证失败。
使用 PayPal PHP SDK 时,我需要执行哪些步骤才能从 Sandbox 切换到 Live?
【问题讨论】:
标签: php paypal paypal-rest-sdk
切换到使用我的实时密钥后出现 401 错误。我收到 401 错误 invalid_client 客户端身份验证失败。
使用 PayPal PHP SDK 时,我需要执行哪些步骤才能从 Sandbox 切换到 Live?
【问题讨论】:
标签: php paypal paypal-rest-sdk
official github page 上为 PHP SDK 提供的信息部分正确。
所需的两个步骤是:
但是,由于一切都在沙箱中开箱即用,无需任何配置,只有密钥,因此没有关于创建配置文件或通过代码设置配置的说明。
您有两个选项来设置实时站点配置:
在创建 $apiContext 时通过代码设置配置。请参阅下面的代码示例:
$apiContext = new \PayPal\Rest\ApiContext(
new \PayPal\Auth\OAuthTokenCredential(
$this->client_id, // ClientID
$this->client_secret // ClientSecret
)
);
$apiContext->setConfig(
array(
'mode' => 'LIVE',
'log.LogEnabled' => true,
'log.FileName' => '../PayPal.log',
'log.LogLevel' => 'INFO', // PLEASE USE `INFO` LEVEL FOR LOGGING IN LIVE ENVIRONMENTS
)
);
通过 sdk_config.ini 文件设置配置。请注意,SDK 专门查找文件名“sdk_config.ini”。您可以在 \PayPal-PHP-SDK\paypal\rest-api-sdk-php\tests\
要确保找到并正确加载 sdk_config.ini 文件,您有两个选择。如果您使用的是 bootstrap.ini 文件,您可以定义一个常量 PP_CONFIG_PATH,SDK 将使用它来查找 sdk_config.ini 文件的位置。
上面提到的 \tests\ 位置中还包含一个示例引导文件以及定义 PP_CONFIG_PATH 的示例。
第二个选项是把你的配置文件放在这个位置 "\vendor\PayPal-PHP-SDK\paypal\rest-api-sdk-php\lib\PayPal\Core..\config\sdk_config.ini",这个位置再次被硬编码到 SDK 中。
注意:github 页面上提供的说明建议将模式变量设置为“live”,但代码中的 switch 语句会查找“SANDBOX”或“LIVE”,默认情况下它设置为“PayPalConstants::在“\lib\PayPal\Core\PayPalConstants.php”中定义的 REST_SANDBOX_ENDPOINT”
为了帮助调试并确保您的端点设置正确,请查看文件 OauthHandler.php 中的函数 _getEndpoint($config) :77
【讨论】: