如何获取 Magento 的付款信息?

Posted

技术标签:

【中文标题】如何获取 Magento 的付款信息?【英文标题】:how to get payment information on Magento? 【发布时间】:2011-06-07 20:00:13 【问题描述】:

我必须将订单导出到一个文件,这是我的代码来处理订单:

    $orders = Mage::getModel('sales/order')->getCollection()
    ->addAttributeToSelect(array('status', 'ncm'))
    ->addFieldToFilter(
        array(
            array('attribute' => 'status', 'eq' => 'complete')
        )
    );

    $order = $orders->getFirstItem();

    //print_r($order);
    //exit;
    //foreach($orders as $order)
    $id = $order->getIncrementId();

    $payment = $order->getPayment();
    $method = $payment->getMethodInstance();

    print_r($payment);
    //

我需要打印一些有关付款的信息 比如方法,金额,拆分的月份,如果是信用卡,我需要交易的reutrning id等等

我该怎么做?

【问题讨论】:

【参考方案1】:

我认为会是

   $payment = $order->getPayment();

它将检索当前的订单支付实例。

【讨论】:

我已经在使用该代码,但我不知道如何检索这些特定信息。能帮我弄清楚吗? 抱歉,没有看到该代码。请尝试 $order->getPayment()->getAdditionalInformation(); - 这是付款+交易信息 $order->getPayment()->getMethodInstance()->getPaymentInfo(); 对于某些支付模块$order->getPayment->getMethodInstance()->getData() 不起作用。如果您需要了解自定义方法,请尝试var_dump(get_class_methods(get_class($order->getPayment()->getMethodInstance()))) 以获取包含所有可能方法的列表。在我的情况下,它们被称为 getAccountBanknamegetAccountBLZ ......这有点棘手,但我希望这会有所帮助:)【参考方案2】:
//Get Payment
$payment = $order->getPayment()

//Get card type
$payment->getData('cc_type')

//Get Payment Info
$payment->getMethodInstance()->getCode();
$payment->getMethodInstance()->getTitle();

//Get Credit Card info
$payment->getMethodInstance()->getCardsStorage()
$payment->getMethodInstance()->getCardsStorage()->getCards() //array()

【讨论】:

$cards = ...->getCards(); $card=$cards['transaction_id']; echo $card->getCcType(); echo $card->getCcLast4(); 卡信息与sales_flat_order_payment表的additional_information列中的可用信息相匹配 有没有办法获取方法的ID(编号)?【参考方案3】:

仅获取方法代码使用起来要安全得多

$order->getPayment()->getMethod();

如果支付方式被卸载,跳过会产生异常的实例对象。

【讨论】:

以上是关于如何获取 Magento 的付款信息?的主要内容,如果未能解决你的问题,请参考以下文章

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

Magento 中付款方式的名称

Magento:使用 Authorize.net 网关检索付款信息

如何在 Magento 中使用 REST API 获取产品信息

Magento - 在结帐页面注册,然后通过 PayPal 付款

如何使用 php 在 PayPal 订阅中获取付款详细信息?