情况:
我们最近拍摄了一家magento商店,当我们正确设置域名时,我们的付款信息由于某种原因开始显示双重条目。此双重条目显示付款信息通常显示的任何位置(客户帐户,管理员订单视图,电子邮件和打印订单)。
问题:
我们现在看到的是:
信用卡
信用卡1
信用卡类型:卡片类型
信用卡号码:xxxx-0000
处理金额:$ 1XX.XX
信用卡2
信用卡类型:卡片类型
信用卡号码:xxxx-0000
订单使用USD
我们收到来自客户的电话和电子邮件,希望确保我们没有向他们收取两次费用,但付款只需要一次,所以我知道实际的付款方式(Authorize.net)仍在正常运行。
我不确定会导致这个问题的原因是什么,因为唯一的变化就是当我们指向域时停止运行IP。我想修复原始问题,但如果我不能,那么我需要知道如何从{{var payment}}中提取特定数据,以便我可以显示:
a。)付款方式
b。)[如果是信用卡]卡类型
c。)付款金额
非常感谢任何帮助。
答案 0 :(得分:1)
我们遇到了同样的问题。 (Magento Enterprise 1.13.02)我们在干净的安装上进行了测试并没有遇到问题,并开始调查。这是我们发现的,以及我们如何修复它:
好消息是,只收取一次费用 - 由于“if语句”意外返回true,它只显示两次。
在此文件中: /app/code/core/Mage/Paygate/Block/Authorizenet/Info/Cc.php
您将看到名为getCards的函数。这部分给我们带来了问题:
if ($this->getInfo()->getCcType() && $this->_isCheckoutProgressBlockFlag) {
$cards[] = $this->getSpecificInformation();
}
具体来说,getCcType返回一个值,在干净的安装中它不是。
在我们的案例中,我们发现订单/发票编辑器扩展程序是问题的根源。这个,特别是: http://www.magentocommerce.com/magento-connect/re-authorize-order-editor-grid-manager-invoice-editor.html
启用此扩展程序时放置的订单包含保存在数据库中的信用卡详细信息(如CcType和加密的卡号)(sales_flat_order_payment)。已禁用此扩展程序的订单不会。
我们已联系开发人员进行澄清,因为我们不希望PCI合规性因存储加密信用卡号而头痛。
我们暂时禁用了扩展程序,它解决了我们的问题。如果我们想继续存储信用卡并正确显示,我们可以修改上面提到的'if语句'。
希望这有帮助!