2012-08-10 89 views
1

我遇到了一個奇怪的行爲,至少對我來說感覺很奇怪。 我使用發票的付款方式,只想獲取有關出生日期的信息,但不是來自客戶,而是僅限於該地點。 我添加了標準的dob字段,它正在工作。 checkout/onepage/savePayment的請求中包含日期信息。獲取更多信息到magento savePayment

我們使用Phoenix-Creditpass http://www.magentocommerce.com/magento-connect/creditpass.html進行檢查。

我的問題是creditpass擴展中的支付信息。該檢查由(JS)payment.save上的Ajax-Request發起。付款信息加載了:Mage::getSingleton('checkout/session')->getQuote()->getPayment()。據我所知,->debug() dob信息丟失。

我試圖找出這個問題,我可以看到Mage_Checkout_Model_Type_Onepage::savePayment()在其中有$quote->save()之後有正確的數據。 看起來支付信息在兩個地方都是一樣的,因爲它的id和時間戳是一樣的,但method_instance[store]是不同的,additionalInformations也丟失了,我不知道他們在哪裏丟失。

我的第一個想法是由於JS異步問題,但我在獲得付款信息之前在creditpass擴展中添加了sleep(10),但這並沒有幫助。

如果我在過程中添加一些Mage::log,然後我發現在order->save()之後記錄了creditpass檢查中的getPayment,所以時間線不應該成爲問題,但是可以改爲什麼?

回答

0

問題已通過使用additional_information付款解決。 irc告訴我們,支付信息表必須更新以存儲給定的屬性。如果添加新屬性並通過eav機制將它們鏈接起來,那麼這個想法並沒有因爲正常的行爲而陷入我的想法。 使用additional_information後,我的問題解決了。