奇妙な振る舞いに遭遇しました。少なくとも私にとっては奇妙に感じます。請求書に支払い方法を使用していて、生年月日に関する情報を取得したかったのですが、顧客からではなく、その場所でのみ取得しました。標準の dob-fields を追加しましたが、機能しています。checkout/onepage/savePayment のリクエストには日付情報が含まれています。
チェックには Phoenix-Creditpass http://www.magentocommerce.com/magento-connect/creditpass.htmlを使用します。
私の問題は、クレジットパス拡張機能内の支払い情報です。このチェックは、(JS) payment.save の Ajax リクエストによって開始されます。支払い情報が読み込まれます: Mage::getSingleton('checkout/session')->getQuote()->getPayment(). 私が見る限り->debug()、dob情報は失われています。
問題を追跡しようとしましたMage_Checkout_Model_Type_Onepage::savePayment()が、その後に正しいデータが含まれていることがわかり$quote->save()ます。IDとタイムスタンプは同じですが、method_instance[store]違い、追加情報も失われ、どこで失われたのかわかりません。
私の最初のアイデアは JS の非同期性による問題でしたsleep(10)が、支払い情報を取得する前にクレジットパス拡張機能を追加しましたが、それは役に立ちませんでした。
プロセスにいくつか追加するMage::logと、creditpass チェックの getPayment がログに記録されるorder->save()ため、タイムラインは問題にならないはずですが、代わりに何が問題になる可能性がありますか?