我在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中一个比较棘手的问题
谢谢