2011-09-08 10 views
6

Hola chicos,Método de pago personalizado de Magento: cómo obtener los datos que se establecieron a través de Mage_Payment_Model_Method_Abstract :: assignData()?

Actualmente estoy desarrollando un método de pago y las cosas están funcionando bastante bien. Solo una cosa: el cliente ingresa cierta información a lo largo del método de pago y mediante la depuración puedo ver que está escrito en InfoInstance a través de Mage_Payment_Model_Method_Abstract :: assignData() Desafortunadamente, no puedo leer esa información cuando estoy en el captura() - Método. Recupero InfoInstance e intento leer la información, pero no está configurada.

assignData() Método:

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

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

    return $this; 
} 

captura() Método:

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

    $info = $this->getInfoInstance(); 

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

    // ... 
} 

se aprecia ninguna ayuda. Estoy seguro de que me haya perdido algo ...

Gracias, AENO

Respuesta

8

encontró,

Asignación de variables estudiadas directamente a los InfoInstance obras, pero no persiste a través de todo el proceso de pago. En su lugar, usted tiene que fijar en la additional_data:

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

Y más adelante se puede leer a través de:

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

Gracias por su respuesta .. –

Cuestiones relacionadas