2011-09-08 26 views
6

Xin chào các bạn,Phương thức thanh toán tùy chỉnh Magento: cách lấy dữ liệu được đặt qua Mage_Payment_Model_Method_Abstract :: assignData()?

Tôi hiện đang phát triển phương thức thanh toán và mọi thứ đang hoạt động khá tốt. Chỉ cần một điều: Khách hàng nhập một số thông tin dọc theo phương thức thanh toán và thông qua gỡ lỗi Tôi có thể thấy rằng nó được ghi vào InfoInstance qua Mage_Payment_Model_Method_Abstract :: assignData() Thật không may, tôi không thể đọc dữ liệu đó khi tôi ở trong capture() - Phương thức. Tôi lấy InfoInstance và cố gắng đọc thông tin, nhưng nó không được thiết lập.

assignData() phương pháp:

public function assignData($data) { 
    if (!($data instanceof Varien_Object)) { 
     $data = new Varien_Object($data); 
    } 

    $info = $this->getInfoInstance(); 
    $info->setEtixType($data->getEtixType()); 

    return $this; 
} 

chụp() phương pháp:

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

    $info = $this->getInfoInstance(); 

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

    // ... 
} 

Any help is appreciated. Tôi chắc chắn rằng tôi đã bỏ lỡ một cái gì đó ...

Cảm ơn, aeno

Trả lời

8

Tìm thấy nó,

Gán veriables trực tiếp đến InfoInstance công trình, nhưng nó không tồn tại thông qua các quy trình kiểm tra toàn bộ. Thay vào đó, bạn phải cài đặt nó trên additional_data:

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

Và sau đó bạn có thể đọc nó qua:

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

Cảm ơn bạn trả lời .. –

Các vấn đề liên quan