切换到使用我的live键后,我收到401错误。我收到401错误invalid_client客户端身份验证失败。
使用PayPal PHP SDK时,为了从Sandbox切换到Live,我需要遵循哪些步骤?
答案 0 :(得分:1)
PHP SDK official github page上提供的信息部分正确。
所需的两个步骤是:
但是,由于一切都在沙箱中开箱即用,没有任何配置,只有密钥,因此没有关于创建配置文件或通过代码设置配置的说明。
您可以通过两种方式设置实时网站配置:
创建$ 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文件的位置。
带有定义PP_CONFIG_PATH示例的示例引导文件也包含在上面提到的\ tests \ location中。
第二个选项是将配置文件放在此位置" \ vendor \ PayPal-PHP-SDK \ paypal \ rest-api-sdk-php \ lib \ PayPal \ Core .. \ config \ sdk_config。 ini"再次将此位置硬编码到SDK中。
注意:github页面上提供的说明建议将模式变量设置为" live",但代码中的switch语句会查找" SANDBOX"或" LIVE"默认设置为" PayPalConstants :: REST_SANDBOX_ENDPOINT"在" \ lib \ PayPal \ Core \ PayPalConstants.php"
中定义为了帮助调试并确保正确设置端点,请检查文件OauthHandler.php中的函数_getEndpoint($ config):77