如何使用Paypal php SDK从沙盒中获取

时间:2016-11-18 00:08:03

标签: php paypal paypal-rest-sdk

切换到使用我的live键后,我收到401错误。我收到401错误invalid_client客户端身份验证失败。

使用PayPal PHP SDK时,为了从Sandbox切换到Live,我需要遵循哪些步骤?

1 个答案:

答案 0 :(得分:1)

PHP SDK official github page上提供的信息部分正确。

所需的两个步骤是:

  • 更新您的密钥和秘密
  • 确保您的配置设置为" live"

但是,由于一切都在沙箱中开箱即用,没有任何配置,只有密钥,因此没有关于创建配置文件或通过代码设置配置的说明。

您可以通过两种方式设置实时网站配置:

  1. 创建$ 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
        )
    );  
    
  2. 通过sdk_config.ini文件设置配置。注意,SDK专门查找文件名" sdk_config.ini"。有一个示例配置文件,您可以在\ PayPal-PHP-SDK \ paypal \ rest-api-sdk-php \ tests \

  3. 重复使用

    要确保找到并正确加载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