更改PayPal REST端点

时间:2016-02-09 17:54:38

标签: api rest paypal endpoint

所以我一直在研究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

如果我切换回Sandbox ID,它可以正常工作。我需要在某处手动设置端点吗?我认为API会理解哪个是SandboxId和LiveId。

1 个答案:

答案 0 :(得分: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'
  )
);