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

时间:2011-09-08 15:59:25

标签: php magento payment

大家好,

我目前正在开发一种支付方式,但事情进展顺利。 只有一件事:客户在付款方式中输入一些信息,通过调试我可以看到它通过Mage_Payment_Model_Method_Abstract :: assignData()写入InfoInstance 不幸的是,当我在capture() - Method中时,我无法读取该数据。我检索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;
}

capture()方法:

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

    $info = $this->getInfoInstance();

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

    // ...
}

感谢任何帮助。我确定我错过了什么......

谢谢, aeno

1 个答案:

答案 0 :(得分:8)

找到它,

直接将代码分配给InfoInstance作品,但它不会在整个结帐过程中持续存在。相反,您必须在additional_data上设置它:

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

稍后您可以通过以下方式阅读:

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