嗨,大家好,
我目前正在开发一种支付方式,事情进展顺利.
只有一件事:客户在付款方式中输入一些信息,通过调试我可以看到它通过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
找到了,
原文链接:https://www.f2er.com/php/130416.html直接将信息分配给InfoInstance工作,但它不会在整个结账过程中持续存在.相反,您必须在additional_data上设置它:
$info = $this->getInfoInstance(); $info->setAdditionalInformation('etix_type',$data->getEtixType());
之后你可以通过以下方式阅读:
$info = $this->getInfoInstance(); $etix_type = $info->getAdditionalInformation('etix_type');