2011-09-08 13 views
6

こんにちはみんな、Magentoカスタム支払い方法:Mage_Payment_Model_Method_Abstract :: assignData()経由で設定されたデータを取得する方法は?

私は現在、支払方法を開発していますし、物事が非常によく働いています。 ちょうど1つのこと:顧客が支払い方法に沿っていくつかの情報を入力し、デバッグするとMage_Payment_Model_Method_Abstract :: assignData()を通じてInfoInstanceに書き込まれることがわかります 残念ながら、 capture() - メソッド。 InfoInstanceを取得して情報を読み込もうとしましたが、設定されていません。

assignData()メソッド:

public function assignData($data) { 
    if (!($data instanceof Varien_Object)) { 
     $data = new Varien_Object($data); 
    } 

    $info = $this->getInfoInstance(); 
    $info->setEtixType($data->getEtixType()); 

    return $this; 
} 

キャプチャ()メソッド:

public function capture(Varien_Object $payment, $amount) { 
    // ... 

    $info = $this->getInfoInstance(); 

    Mage::log('etix_type: '.$info->getEtixType()); //I expect something like "etix_type: cc" 

    // ... 
} 

任意の助けを理解されたいです。私は... InfoInstance作品に直接veriablesの割り当て

おかげで、aeno

答えて

8

はそれを見つけ、

を私が何かを逃したと確信しているが、それは全体のチェックアウトプロセスを通じて保持されません。

$info = $this->getInfoInstance(); 
$info->setAdditionalInformation('etix_type', $data->getEtixType()); 

を、後で、あなたは経由して、それを読むことができます:代わりに、あなたはadditional_dataにそれを設定する必要があり、あなたが答えるために

$info = $this->getInfoInstance(); 
$etix_type = $info->getAdditionalInformation('etix_type'); 
+0

おかげで.. –

関連する問題