【问题标题】:Change PayPal REST Endpoint更改 PayPal REST 端点
【发布时间】:2016-05-19 20:08:07
【问题描述】:

所以我一直在开发一个 PayPal REST API 应用程序,在沙盒环境中工作得很好,但现在是切换到 Live 的时候了,我遇到了一些问题。我已将我的 ClientID 和 Secret 从 Sandbox 更改为 Live,但应用程序仍在尝试访问 api.sandbox.paypal.com 端点而不是 api.paypal.com 端点。

这会导致 401 错误:

object(PayPal\Exception\PayPalConnectionException)#24 (9){  
   [  
      "url":      "PayPal\Exception\PayPalConnectionException":private
   ]   => string(46) "https://api.sandbox.paypal.com/v1/oauth2/token"   [  
      "data":      "PayPal\Exception\PayPalConnectionException":private
   ]   => string(77) "   {  
      "error":"invalid_client",
      "error_description":"Client Authentication failed"
   }   " ["   message":protected
]=> string(89) "Got Http response code 401 when accessing https://api.sandbox.paypal.com/v1/oauth2/token."[  
   "string":   "Exception":private

如果我切换回沙盒 ID,它可以正常工作。我需要在某处手动设置端点吗?我的印象是 API 会理解 SandboxId 和 LiveId。

【问题讨论】:

    标签: api rest paypal endpoint


    【解决方案1】:

    找到了一些关于此的文档。事实证明,您需要使用 setConfig 方法将模式设置为实时环境的 ApiContext 的一部分。

    例子:

    $paypal = new \PayPal\Rest\ApiContext(
        new \PayPal\Auth\OAuthTokenCredential(
            $clientIdLive,
            $secretIdLive
        )
    );
    
    $paypal->setConfig(
      array(
        'mode' => 'live',
        'log.LogEnabled' => true,
        'log.FileName' => 'PayPal.log',
        'log.LogLevel' => 'FINE'
      )
    );
    

    【讨论】:

      猜你喜欢
      • 2013-03-22
      • 2019-04-24
      • 1970-01-01
      • 2013-06-16
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      相关资源
      最近更新 更多