我正在尝试测试我的商店 贝宝沙箱。在2种不同的情况下,我遇到了2个不同的错误。
1. 所有人都可以正常工作,直到在PayPal中完成订单。然后获取消息:

很抱歉,PayPal不允许美国的居民将购买运送到(任何地方)

2. 第二种情况是我将买方的运输地址更改给我们。我会在贝宝(PayPal)的第一页上获得以下错误:

无法处理付款。请与商人联系,因为商人提供的运输地址无效,商人已要求将您的订单运送到该地址。

我发现了形式 这里, ,对于许多人来说,这似乎是问题的。从 这里 我发现与 adversion_override 方法和 这里 建议将其关闭。
有没有办法在Magento中将其关闭?将其关闭安全吗?为什么首先在那里?还是还有哪些其他解决方案? :

我在Magento中找到了adverse_override方法

app code core mage paypal model api standard.php行:238 $ request ['squordvion_override'] = 1;

将其更改为 '0' 现在,Paypal沙箱有效。没有错误了。但是,如何在不更改Magento Core文件的情况下执行此操作?而且安全吗?

有帮助吗?

解决方案

如果您不想更改核心文件,则可以执行以下操作:

  1. 创建文件夹 Mage/Paypal/Model/Api 在下面 /app/code/local/
  2. 复制文件 Standard.php/app/code/core/Mage/Paypal/Model/Api
  3. 粘贴文件 Standard.php/app/code/local/Mage/Paypal/Model/Api
  4. 更改行 238
$request['address_override'] = 1;

$request['address_override'] = 0;

其他提示

address_override 参数是为了设置您的Magento商店将发送给PayPal的运输地址,而不是在PayPal的客户的运输地址,而不是客户的运输地址。

如果 address_override 被设定为 1, ,在Magento就是这种情况,然后PayPal将验证运输地址。如果将参数设置为 0, ,据说不是。因此,请确保您向PayPal发送有效且格式充实的地址。

由于缺少“状态”值,我遇到了这个问题。 PayPal仅接受“加利福尼亚”的“ CA”之类的州缩写。对于其他国家 /地区,默认情况下,您的Magento安装中可能无法使用各州,例如墨西哥。

您是否在结帐中自定义了任何运输地址字段?

查看这些堆栈溢出答案:
https://stackoverflow.com/questions/5978153
https://stackoverflow.com/questions/11281543

基本上,一种快速而肮脏的方法是将整个文件复制到您的 app/code/local/Mage 世界,但是如果您只能超载一个孤独的功能,则会更好。

另外,如果还没有,请使用GitHub进行版本控制。它为我节省了不止一次!即使您不好并编辑核心文件,您也可以轻松跟踪所有更改。

许可以下: CC-BY-SA归因
scroll top