2012-08-10 72 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后,我的问题解决了。