2011-09-08 27 views
6

嗨,大家好,Magento自定义付款方式:如何获取通过Mage_Payment_Model_Method_Abstract :: assignData()设置的数据?

我目前正在开发的支付方法和事情都合作得非常好。 只是一件事:客户通过付款方式输入一些信息并通过调试我可以看到它通过Mage_Payment_Model_Method_Abstract :: assignData() 被写入InfoInstance不幸的是,当我在捕获() - 方法。我检索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" 

    // ... 
} 

任何帮助理解。我敢肯定,我错过了什么......

感谢, aeno

回答

8

发现,

直接分配veriables到InfoInstance的作品,但它并没有在整个结账过程持续。相反,你必须将其设置在additional_data:

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

,以后你可以通过阅读:为你解答

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

谢谢.. –

相关问题