如何在Magento上获取支付信息?

16

我需要将订单导出到文件中,以下是我的代码以遍历订单:

    $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);
    //}

我需要打印一些关于支付的信息,比如支付方式、金额、分期数等等,如果是信用卡还需要返回交易ID,等等。

我该如何做到这一点?

3个回答

21

我认为这将会是

   $payment = $order->getPayment();

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


2
我已经在使用那段代码,但是我似乎不知道如何检索那些特定的信息。能帮我解决这个问题吗? - Jonathan
2
抱歉,我没有看到那段代码。请尝试使用$order->getPayment()->getAdditionalInformation(); 这是有关支付和交易的信息。 - Max Pronko
5
$order->getPayment()->getMethodInstance()->getPaymentInfo(); 请返回已支付信息。 - Max Pronko
1
对于某些支付模块,$order->getPayment->getMethodInstance()->getData() 不起作用。如果您需要知道自定义方法,请尝试 var_dump(get_class_methods(get_class($order->getPayment()->getMethodInstance()))) 以获取所有可能方法的列表。在我的情况下,它们被称为 getAccountBanknamegetAccountBLZ ... 这有点棘手,但我希望这可以帮到您 :) - Stefan Brendle

19
//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()

有没有办法获取方法的ID(编号)? - Harkály Gergő

5
为了仅获取方法代码,更安全的做法是使用:
$order->getPayment()->getMethod();

跳过可能因付款方式已被卸载而生成异常的实例对象。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接