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

标签 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;
}

捕获()方法:

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

    $info = $this->getInfoInstance();

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

    // ...
}

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

最佳答案

找到了,

将变量直接分配给 InfoInstance 是可行的,但它不会在整个结帐过程中持续存在。相反,您必须在 additional_data 上设置它:

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

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

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

关于php - Magento 自定义支付方式:如何获取通过 Mage_Payment_Model_Method_Abstract::assignData() 设置的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7351055/

相关文章:

php - 离开绝对的日子

php - 将数组中的值添加到数组?

php - 如何在magento的自定义模块中创建sql安装程序以通过脚本创建表

ruby-on-rails - Stripe 重复/订阅计费最佳设计/实践?

php - 基于单选按钮状态的链接点击动态 href 生成 : PHP interaction with javascript

php - 如何控制单选按钮?从数据库、PHP、MYSQL 回显数据

session - Magento 购物车 : Check for items empties cart

json - 在 Go 中查询 Magento API

azure - Microsoft Azure 付款选项

html - PayPal - 如何拒绝低于特定阈值的付款?