1

我遇到了一个奇怪的行为,至少对我来说感觉很奇怪。我使用发票付款方式,只是想获得有关出生日期的信息,但不是从客户那里,而只是在那个地方。我添加了标准的 dob 字段,它正在工作。checkout/onepage/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]不同,而且附加信息也丢失了,我不知道它们在哪里丢失了。

我的第一个想法是由于 JS 异步导致的问题,但我sleep(10)在 creditpass 扩展名中添加了一个,然后才获得付款信息,但这并没有帮助。

如果我Mage::log在流程中添加一些内容,那么我会看到 creditpass 检查中的 getPayment 记录在之后,order->save()因此时间线应该不是问题,但问题可能是什么?

4

1 回答 1

0

通过使用付款的附加信息解决了问题。irc 上有人告诉我,必须更新支付信息表以存储给定的属性。如果添加新属性并通过 eav 机制链接它们,这是正常行为,因此我没有想到这个想法。使用附加信息后,我的问题得到了解决。

于 2012-08-13T12:10:54.043 回答