Magento:我如何获得特定订单的所有交易付款项目?

时间:2013-08-19 10:37:42

标签: php magento

如何在Magento中获取特定订单的所有交易付款项目?

我只能获得最后一个交易ID:

$transId = $order->getPayment()->getLastTransId();

有没有办法获得所有订单交易?

This is the information that I need

感谢

3 个答案:

答案 0 :(得分:8)

最后我解决了这个问题!

我已经用这种方式解决了!

$transaction = Mage::getModel('sales/order_payment_transaction')->getCollection()
                                                                         ->addAttributeToFilter('order_id', array('eq' => $payment->getOrder()->getEntityId()))
                                                                         ->addAttributeToFilter('txn_type', array('eq' => 'capture'));

这是结果:

array(2) {
  ["totalRecords"] => int(1)
  ["items"] => array(1) {
    [0] => array(10) {
      ["transaction_id"] => string(2) "62"
      ["parent_id"] => NULL
      ["order_id"] => string(2) "89"
      ["payment_id"] => string(2) "89"
      ["txn_id"] => string(16) "3060630120986423"
      ["parent_txn_id"] => NULL
      ["txn_type"] => string(7) "capture"
      ["is_closed"] => string(1) "1"
      ["additional_information"] => array(0) {
      }
      ["created_at"] => string(19) "2013-08-19 09:36:07"
    }
  }
}

谢谢大家!

答案 1 :(得分:0)

$order->getPayment()->getMethodInstance()->getPaymentInfo();

将为您提供所有付款信息

答案 2 :(得分:0)

基于屏幕截图中的网格代码。适合我:

$transactions =     Mage::getResourceModel('sales/order_payment_transaction_collection');
$transactions->addOrderIdFilter($order->getId());
$transactions->addOrderInformation(array('increment_id'));
$transactions->addPaymentInformation(array('method'));

foreach ( $transactions as $t) {
        var_dump( $t->debug() );
}