Пользовательский метод оплаты Magento: как получить данные, которые были установлены с помощью Mage_Payment_Model_Method_Abstract :: assignData ()? - PullRequest
6 голосов
/ 08 сентября 2011

Привет, ребята,

В настоящее время я разрабатываю способ оплаты, и все работает довольно хорошо. Только одно: клиент вводит некоторую информацию в способ оплаты, и с помощью отладки я вижу, что она записывается в InfoInstance через Mage_Payment_Model_Method_Abstract :: assignData () К сожалению, я не могу прочитать эти данные, когда я нахожусь в методе capture (). Я получаю 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 Ответ

8 голосов
/ 19 сентября 2011

Найдено,

Присвоение правдоподобия непосредственно работам InfoInstance, но оно не сохраняется в течение всего процесса оформления заказа.Вместо этого вы должны установить его на дополнительные_данные:

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

И позже вы можете прочитать его через:

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