【问题标题】:Paypal Express Checkout Broken after Server migration服务器迁移后 Paypal Express Checkout 损坏
【发布时间】:2013-10-26 17:05:43
【问题描述】:

首先对帖子中缺少信息感到抱歉,因为我不确定在集成中的哪个位置出现了问题。如有必要,我可以添加更多/代码/等。

我最近迁移到了一个新服务器(包括从 php 4.x > 5.3 和 plesk 8 > 10 迁移)并且一切(包括 Paypal Payments Pro)都运行良好,除了 PayPal Express 结账。

所有代码都在那里,我的帐户没有任何变化,只是似乎它在新服务器上不起作用。这个过程中的一切都正常工作,直到 startExpressCheckout,它不返回一个令牌,它将浏览器发送到一个带有空令牌值的贝宝地址。

我并没有真正得到任何有用的 PHP 错误,所以我不知道该去哪里找。这可能与 SSL/证书/等有关吗? php版本有区别吗?

最初的集成是由另一位开发人员完成的,他们确实使用了某些版本的 Pear,不确定这是否会影响任何事情。

【问题讨论】:

  • 我得到的一个可能是 PHP 错误,我不确定它是否相关(即使 safe_mode 被禁用并且我们在设置中找不到任何 open_basedir 集):PHP 警告:curl_setopt (): CURLOPT_FOLLOWLOCATION 在启用安全模式或在第 593 行的 /var/www/vhosts/domain.com/httpdocs/pear/Services/PayPal/SOAP/Transport/HTTP.php 中设置 open_basedir 时无法激活,引用者:@ 987654321@
  • 你能贴出 CURL 代码块吗?

标签: php paypal token express-checkout


【解决方案1】:

可能是 Plesk。 Plesk 将 open_basedir 放入您的站点级配置中。因此,如果它引用了核心 PEAR 安装(位于您被监禁的 Plesk 目录之外),那可能是您的问题。

尝试制作一个像这样的 vhost.conf 文件(替换您网站的路径)

<Directory /var/www/vhosts/domain.com >
        php_admin_value open_basedir none
</Directory>

这将在您的网站上关闭该设置。看看会不会有什么不同。

【讨论】:

  • 感谢您的回复。我们尝试了几种不同的方式来取消 open_basedir,但这个错误仍然不断出现。事实证明,这与破坏集成的问题无关。
【解决方案2】:

原来该错误与为将 Paypal 引导回该站点而构建的链接有关。以前版本的 php/apache/whatever 使用 $_SERVER["SCRIPT_URI"] 没有问题,但显然新版本没有这些问题。我更改了构建返回页面链接的代码,现在一切都恢复正常了。

【讨论】:

    猜你喜欢
    • 2018-09-28
    • 2015-05-01
    • 2019-07-12
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 2013-08-14
    • 1970-01-01
    • 2016-03-15
    相关资源
    最近更新 更多