2016-02-09 74 views
0

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

这导致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 

如果我在沙盒标识切换回来,它工作正常。我是否需要在某处手动设置端点?我觉得API会理解哪些是SandboxId和LiveId。

回答

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' 
) 
);