如何获取 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())))
以获取包含所有可能方法的列表。在我的情况下,它们被称为 getAccountBankname
或 getAccountBLZ
......这有点棘手,但我希望这会有所帮助:)【参考方案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:使用 Authorize.net 网关检索付款信息
如何在 Magento 中使用 REST API 获取产品信息