更改 PayPal REST 端点
Posted
技术标签:
【中文标题】更改 PayPal REST 端点【英文标题】:Change PayPal REST Endpoint 【发布时间】: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。
【问题讨论】:
【参考方案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'
)
);
【讨论】:
以上是关于更改 PayPal REST 端点的主要内容,如果未能解决你的问题,请参考以下文章
使用 php sdk 动态更改 Paypal Express 端点
如何在使用 PayPal rest API 执行付款之前更改运费