2011-09-08 13 views
6

Ciao ragazzi,Magento Metodo di pagamento personalizzato: come ottenere i dati impostati tramite Mage_Payment_Model_Method_Abstract :: assignData()?

Attualmente sto sviluppando un metodo di pagamento e le cose stanno lavorando molto bene. Solo una cosa: il cliente inserisce alcune informazioni lungo il metodo di pagamento e attraverso il debug posso vedere che viene scritto nell'InfoInstance tramite Mage_Payment_Model_Method_Abstract :: assignData() Sfortunatamente, non posso leggere quei dati quando sono nel capture() - Metodo. Recupero InfoInstance e provo a leggere le informazioni, ma non è impostato.

assignData() Metodo: Metodo

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

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

    return $this; 
} 

cattura():

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

    $info = $this->getInfoInstance(); 

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

    // ... 
} 

Ogni aiuto è apprezzato. Sono sicuro che ho perso qualcosa ...

Grazie, AENO

risposta

8

trovato,

Assegnazione veriables direttamente ai InfoInstance opere, ma non persiste attraverso l'intero processo di checkout. Invece, è necessario impostare sul additional_data:

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

E più tardi si può leggere tramite:

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

Grazie per voi rispondete .. –

Problemi correlati