Magento Paypal Express结帐不适用于多种货币

时间:2018-11-27 09:49:05

标签: php magento currency paypal

我在Magento1.x商店中遇到一个奇怪的问题。我有一家商店,使用多种货币和Paypal作为付款方式。货币为美元,加元和欧元。我的基本货币是加元。现在,当我尝试用我的基本货币向贝宝下订单时,它可以正常工作。但是当我将货币切换为美元时,  它给我错误-

  

“ Paypal网关已拒绝请求。购物车项目的总计   金额与订单金额不符(#10413:交易被拒绝   由于参数无效。查看有关的其他错误消息   详细信息)。

我认为总计不匹配,因为在我的购物车中,总计为5.01USD,当我尝试用Paypal下订单时,它可能会获取以我的基本货币换算的价格6.67加元。

所以总数不匹配,这就是为什么,错误正在显示

我还尝试将价格与代码匹配-

app/code/local/Mage/Paypal/Model/Api/Abstract.php in the method - _exportLineItems.

在行412上$ result =空以下;我已添加

$running_total = 0;

然后在此代码上方-$ request [sprintf($ privateFormat,$ i)] = $ value;我添加了

if ($publicKey == 'amount') {
            $running_total += $value;
            }

然后,在此foreach循环完成之后-foreach($ items为$ item){,我已经添加了以下内容-

if ((isset($request['ITEMAMT'])) && ($request['ITEMAMT'] > 0)) {
        if ($running_total <> (float) $request['ITEMAMT']) {
            $difference = ($running_total - (float) $request['ITEMAMT']);
            // Apply difference to first product.
            $request['L_AMT0'] = (string) ((float) $request['L_AMT0'] - $difference);
        }
    }

因此,与此相关的是,贝宝​​中的价格变得相同,并且可以正常工作。但问题是,可以说我们总共有5.01美元,即6.67加元。当我尝试在Paypal中下订单时,金额显示为-5.01 CAD,这意味着价格未转换。

我认为这是Magento问题,我的客户不愿意购买任何扩展。

如果有人可以帮助我们,我将非常感谢,因为这确实是Magento中一个比较棘手的问题

谢谢

0 个答案:

没有答案