【问题标题】:How do I fill the "Transaction Details" key/value table inside the Transaction screen of Magento Admin?如何在 Magento Admin 的交易屏幕中填写“交易详情”键/值表?
【发布时间】:2012-04-13 15:07:56
【问题描述】:

我已经创建了一个自定义支付网关,但现在我需要处理支付后通知(就像 IPN 一样)以附加给定交易的附加信息。

我尝试了很多不同的组合,包括:

Mage::getModel('sales/order')->load('#id')
    ->getPayment()
        ->getTransaction('#id')
            ->setAdditionalInformation('foo', 'bar')
                ->save();

不会产生任何错误(我能够检索订单/付款/交易) 但是保存操作似乎不起作用。我也尝试通过支付对象保存但没有运气。

【问题讨论】:

  • 我想这取决于您使用的版本,但至少在 EE 1.12.x 上,这似乎是正确的方法,下面的答案不起作用。事实上,由于在 adminhtml 块中使用了Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,我无法在管理员中显示此信息,因此必须使用不带任何参数的调用 getter 的版本来覆盖。

标签: php magento checkout


【解决方案1】:

我自己发现的:P

$payment->getTransaction($id)
    ->setAdditionalInformation(
        Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,
        $data
    )->save();

【讨论】:

    【解决方案2】:

    如果您尝试在 paymnet 的“授权”阶段包含信息,这里有一个有用的 sn-p(请将变量更改为您自己的数据!):

    public function authorize(Varien_Object $payment, $amount) {
        .....
       $_data = array( 'Tranx' => $_transax, 'Auth' => $_autho ...);
       $payment->setTransactionAdditionalInfo(
                    Mage_Sales_Model_Order_Payment_Transaction::RAW_DETAILS,
                    $_data);
       $payment->setTransactionId($_authid)->setIsTransactionClosed(0);
       return $this
       }
    

    【讨论】:

      【解决方案3】:
      $transactin_detail = Mage::getModel('sales/order')->loadByIncrementId($order_id)->getPayment()->getTransaction($transId)->save();
      
      echo '<pre>';
      print_r($transactin_detail);
      

       

      【讨论】:

        猜你喜欢
        • 2023-03-13
        • 2019-10-11
        • 2018-12-20
        • 2021-05-30
        • 2013-12-26
        • 2014-07-20
        • 2022-05-27
        • 2018-06-24
        • 2017-03-07
        相关资源
        最近更新 更多