获取付款信息

时间:2013-07-24 14:33:57

标签: magento payment-gateway

我需要在信用卡付款模块中添加一个包裹。根据我的理解,将信息发送到信用卡公司的文件也会获取卡号:

$payment_cc_number      = $payment->getCcNumber();

在同一个文件中,有一行可以获取宗地数......

$payment_parcels        = $this->getConfigData('parcel_number');

......但他们没有被捕获。在模块中,我使用一个简单的标记:

        <select id="" name="parcels" class="required-entry">
            <option value="1">1</option>
            <option value="2">2</option>
            <option value="3">3</option>
            <option value="4">4</option>
        </select>

如何发送客户选择的值?

1 个答案:

答案 0 :(得分:0)

您应该在cc_parcelssales_flat_order_payment表格中创建sales_flat_quote_payment字段,并将以下代码添加到模块的适当位置。

阻止信息类:

<?php
class Company_Module_Block_Info extends Mage_Payment_Block_Info_Cc {
    protected function _prepareSpecificInformation($transport = null) {
        $transport = parent::_prepareSpecificInformation($transport);
        if ($this->getInfo()->getCcParcels()) {
            $transport[$this->__('Parcels')] = $this->getInfo()->getCcParcels();
        }
        return $transport;
    }
}

方法类:

<?php
class Company_Module_Model_Method extends Mage_Payment_Model_Method_Cc {
    public function assignData($data) {
        $this->getInfoInstance()->setCcParcels($data['cc_parcels']);
    }
}

config.xml中:

<?xml version="1.0"?>
<config>
    <global>
        <fieldsets>
            <sales_convert_quote_payment>
                <cc_parcels><to_order_payment>*</to_order_payment></cc_parcels>
            </sales_convert_quote_payment>
            <sales_convert_order_payment>
                <cc_parcels><to_quote_payment>*</to_quote_payment></cc_parcels>
            </sales_convert_order_payment>
        </fieldsets>
    </global>
</config>

form.phtml:

<label for="<?php echo $_code ?>_cc_parcels"><?php echo $this->__('Parcels') ?></label>
<div class="input-box">
    <select id="<?php echo $_code ?>_cc_parcels" name="payment[cc_parcels]">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
    </select>
</div>

要获取地块编号,您必须得到$order->getPayment()->getCcParcels()(也来自$quote)。