2011-09-08 4 views
6

Hi guys,Niestandardowa metoda płatności Magento: jak uzyskać dane ustawione za pomocą metody Mage_Payment_Model_Method_Abstract :: assignData()?

Jestem obecnie opracowanie metody płatności i wszystko działa bardzo dobrze. Tylko jedna rzecz: klient wprowadza pewne informacje wzdłuż metody płatności i poprzez debugowanie widzę, że jest zapisywany w InfoInstance przez Mage_Payment_Model_Method_Abstract :: assignData() Niestety, nie mogę odczytać tych danych, gdy jestem w capture() - Metoda. Wyszukuję InfoInstance i próbuję odczytać informacje, ale nie jest to ustawione.

assignData() Sposób:

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

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

    return $this; 
} 

wychwytujący() Sposób:

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

    $info = $this->getInfoInstance(); 

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

    // ... 
} 

Każda pomoc jest doceniana. Jestem pewien, że coś mi umknęło ...

Dzięki, aeno

Odpowiedz

8

znalazł,

Przypisywanie veriables bezpośrednio do InfoInstance działa, ale nie utrzymuje się przez cały proces transakcji. Zamiast tego, trzeba ustawić go na additional_data:

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

A później można go odczytać za pomocą:

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

Dzięki Ci odpowiedzieć .. –

Powiązane problemy