api - 更改 Paypal REST 端点

标签 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。

最佳答案

找到了一些关于这个的文档。事实证明,您需要使用 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'
  )
);

关于api - 更改 Paypal REST 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35298839/

相关文章:

rest - 配置tomcat怎么会产生503错误?

javascript - 在 Swagger 中支持复杂对象

php - Paypal 不返回变量

database - 如何在 Julia 中管理凭据?

facebook - client_id 的 OAuth2 安全注意事项

rest - 使用 WebAPI 删除端点删除多个 ID?

php - Paypal "we were unable to decrypt the certificate ID'

paypal - 配置 PayPal 密码管理脚本

django - 仅支持MYSQL在Django Rest Framework上进行全文搜索?

ruby-on-rails - 导出 Mixpanel 事件提要数据