【问题标题】:Paypal checkout - trouble for going livePaypal 结帐 - 上线的麻烦
【发布时间】:2021-09-26 15:34:39
【问题描述】:

我正在使用 paypal 结帐(在 php 中)制作付款页面,当我处于沙盒模式时一切正常,但是当我上线时,付款后出现此错误...

Fatal error: Uncaught PayPal\Exception\PayPalConnectionException: Got Http response code 401 when accessing https://api.sandbox.paypal.com/v1/oauth2/token. in www/src/package/vendor/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalHttpConnection.php:207 Stack trace: #0 www/src/package/vendor/paypal/rest-api-sdk-php/lib/PayPal/Auth/OAuthTokenCredential.php(252): PayPal\Core\PayPalHttpConnection->execute('grant_type=clie...')#1 www/src/package/vendor/paypal/rest-api-sdk-php/lib/PayPal/Auth/OAuthTokenCredential.php(280): PayPal\Auth\OAuthTokenCredential->getToken(Array, 'qsdqsdqsdqsd', 'qdsqdsdqsdsqd', 'grant_type=clie...')#2 www/src/package/vendor/paypal/rest-api-sdk-php/lib/PayPal/Auth/OAuthTokenCredential.php(216): PayPal\Auth\OAuthTokenCredential->generateAccessToken(Array, NULL)#3 www/src/package/vendor/paypal/rest-api-sdk-php/lib/PayPal/Auth/OAuthTokenCredential.php(166): PayPal\Auth\OAuthTokenCredential->updateAccessToken(Array)#4 www/src/package/vendor/paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalHttpConnection.php on line 207

你能帮我吗? 谢谢

【问题讨论】:

  • Got Http response code 401 when accessing https://api.sandbox.paypal.com 该错误表明您仍在使用沙盒版本的贝宝。确保您将所有内容从沙盒版本更改为实时版本。

标签: php paypal checkout live


【解决方案1】:

如 cmets 中所述,您似乎将凭据更改为实时,而没有将环境从沙盒更改为实时,因此这些实时凭据被用于沙盒端点,这将不起作用。这两个环境是完全独立的。

此外,您似乎正在使用已弃用的 v1/payments SDK,对此没有支持。您应该将您的集成更改为当前的 v2/checkout/orders Checkout-PHP-SDK...

在您的服务器上创建两条路由,一条用于“创建订单”,一条用于“捕获订单”,documented here。这些路由应该只返回 JSON 数据(没有 HTML 或文本)。后者应该(成功时)在返回之前将付款详细信息存储在您的数据库中(特别是purchase_units[0].payments.captures[0].id,PayPal 交易 ID)

将这两条路线与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server

【讨论】:

    【解决方案2】:

    我找到了一个解决方案,也许不是更好,但它正在工作: 我编辑了这个文件: paypal/rest-api-sdk-php/lib/PayPal/Core/PayPalConstants.php:

    const REST_SANDBOX_ENDPOINT = "https://api.sandbox.paypal.com/";
    const OPENID_REDIRECT_SANDBOX_URL = "https://www.sandbox.paypal.com";
    
    const REST_LIVE_ENDPOINT = "https://api.paypal.com/";
    const OPENID_REDIRECT_LIVE_URL = "https://www.paypal.com"; `
    

    到这里

    const REST_SANDBOX_ENDPOINT = "https://api.paypal.com/";
    const OPENID_REDIRECT_SANDBOX_URL = "https://www.paypal.com";
    
    const REST_LIVE_ENDPOINT = "https://api.paypal.com/";
    const OPENID_REDIRECT_LIVE_URL = "https://www.paypal.com";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多