0

我有一个多语言网站,并且拥有 Magento (1.7.0.2) “将商店代码添加到 Urls”(配置/系统/网络)。

由于添加了额外的后端功能,我已经app/code/core/Mage/Paypal用自己的方法覆盖了。app/code/local/Mage/Paypal

我可以通过 URL 手动(如预期)访问 IPN 脚本,方法是: mysite.com/uk/paypal/ipn/在浏览器中(在我的 apache 访问日志中显示为 GET 请求,状态为 200)。但是,当贝宝发布到相同的 URL(在日志中显示为 POST 请求)时,它会导致 404。

我不明白为什么这个 URL 的 GET 和 POST 有区别,但也许这与 Magento 的路由有关?

无论如何,我该怎么做才能使 IPN 脚本可以被贝宝击中,并且我仍然可以在 URL 中使用商店代码?

4

1 回答 1

0

在记录每个类方法后,我发现 Magneto 正在尝试使用$scopeCode= 'us' in run()method in加载一个网站/var/www/simplesteps/site/src/app/code/core/Mage/Core/Model/App.php

这是回到我们拥有美国网站的时代,但该网站已被删除,但仍在使用对它的引用。

我不确定这个参考是在哪里设置的,在查看了 CMS 设置后我找不到它。如果有人能告诉我,我将不胜感激。

我通过恢复美国网站解决了这个问题,事实证明该网站不应该被删除。

通过浏览器 URL (GET 200) 而不是 paypal (POST 404) 正确命中 IPN 脚本的原因可能与它在活动网站范围内通过 URL 被调用有关,而不是默认或旧参考到美国网站。

希望这对可能遇到类似令人沮丧情况的人有所帮助。

于 2013-07-31T10:49:14.320 回答