【问题标题】:How to go live from sandbox with Paypal php SDK如何使用 Paypal php SDK 从沙盒上线
【发布时间】:2017-04-01 17:25:31
【问题描述】:

切换到使用我的实时密钥后出现 401 错误。我收到 401 错误 invalid_client 客户端身份验证失败。

使用 PayPal PHP SDK 时,我需要执行哪些步骤才能从 Sandbox 切换到 Live?

【问题讨论】:

    标签: php paypal paypal-rest-sdk


    【解决方案1】:

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

    所需的两个步骤是:

    • 更新您的密钥和秘密
    • 确保您的配置设置为“实时”

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

    您有两个选项来设置实时站点配置:

    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 文件的位置。

    上面提到的 \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

    【讨论】:

    • 一年过去了,你的答案就是救了我的命!清晰,简洁,并且有效。选项1为我做了。我很惊讶没有任何赞成票。感谢您分享您的解决方案。
    • 一旦我把它改成 live 就开始出现问题
    猜你喜欢
    • 2015-02-10
    • 2011-08-24
    • 2016-09-29
    • 2017-11-06
    • 1970-01-01
    • 2014-10-20
    • 2019-09-21
    • 2012-06-25
    • 2015-04-27
    相关资源
    最近更新 更多