2013-11-21 55 views
1

現狀:Magento的:{{VAR付款}}顯示在管理員的兩張牌和電子郵件

我們最近採取了Magento的店現場,當我們正確地得到了我們的域設置我們的支付方式開始出現了一些雙項原因。此雙重條目顯示支付信息通常會顯示的任何位置(客戶帳戶,管理員訂單視圖,電子郵件和打印訂單)。

問題:

我們現在看到的是這樣的:
payment info as its currently showing

信用卡
信用卡1
信用卡類型:CardType
信用卡號碼:XXXX- 0000
已處理金額:$ 1XX.XX
C REDIT卡2
信用卡類型:CardType
信用卡號碼:使用XXXX-0000
訂單是美元

我們正在從客戶希望確保我們並沒有收取他們兩次電話和郵件,但付款只通過一次,所以我知道實際的付款方式(Authorize.net)仍然正常工作。

我不確定會導致這個問題,因爲唯一的改變是當我們指向域時停止運行IP。我想解決原始問題,但是如果我不能,那麼我需要知道如何從{{var payment}}提取特定數據,以便我可以顯示:

a。)支付類型
b。)[如果信用卡]卡類型
c。)付款金額

任何幫助,非常感謝。

+0

是否有before_save支付事件的after_save正在進行額外保存,這可能是此處的問題。 –

+0

@JeffreydeGraaf,我沒有對會影響默認操作的核心代碼做任何更改。在我們指出域名之前,它並沒有這樣做。這就是說我不確定是否有一個before/after_save_payment事件進行額外保存的最佳方法。我知道訂單是作爲「處理」進入的,而不是「新」,這似乎不是默認行爲。 – mtrueblood

回答

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是返回一個值,其中在一個乾淨的安裝它不是。

在我們的案例中,我們發現Order/Invoice Editor擴展是問題的根源。此舉一出,具體是:雖然這個擴展啓用 http://www.magentocommerce.com/magento-connect/re-authorize-order-editor-grid-manager-invoice-editor.html

常規放置具有保存在數據庫中(sales_flat_order_payment)的信用卡詳細信息(如CcType,以及加密卡號)。使用此擴展功能禁用的訂單不會。

我們已經聯繫了開發人員進行澄清,因爲我們不希望存儲加密信用卡號碼的PCI合規性頭痛。

我們現在禁用了擴展功能,它解決了我們的問題。如果我們想繼續存儲信用卡並正確顯示,我們可以修改上述「if語句」。

希望這會有所幫助!

相關問題