2012-04-13 17 views
1

私はカスタムペイメントゲートウェイを作成しましたが、今や、特定の取引の追加情報を追加するための後払い通知(IPNのような)を処理する必要があります。Magento Adminの[Transaction]画面で[Transaction Details]キー/値表を入力する方法を教えてください。

私は含めてさまざまな組み合わせをたくさん試してみた

(私が注文/支払/取引を取得することができるよ)いずれかのエラーが発生するが、アクションを保存しません
Mage::getModel('sales/order')->load('#id') 
    ->getPayment() 
     ->getTransaction('#id') 
      ->setAdditionalInformation('foo', 'bar') 
       ->save(); 

がinoperantているように見えます。私は運がなければ支払いオブジェクトを節約しようとしました。

自分で見つけた
+0

私はそれはあなたが使用しているバージョンに依存したとしますが、少なくともEE 1に.12.xこれは正しい方法であると思われ、以下の答えはうまくいかない。 adminhtmlブロックで 'Mage_Sales_Model_Order_Payment_Transaction :: RAW_DETAILS'が使用されたため、この情報を管理者に表示することができませんでしたので、バージョンを指定してパラメータを指定せずにgetterを呼び出す必要がありました。 – mkilmanas

答えて

4

:P

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

you'reは便利なスニペットhere's、paymnetの段階を「認可」についての情報を含めるようにしようとした場合(独自のデータに変数を変更してください!) :

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 
    } 
0
$transactin_detail = Mage::getModel('sales/order')->loadByIncrementId($order_id)->getPayment()->getTransaction($transId)->save(); 

echo '<pre>'; 
print_r($transactin_detail); 

 

+0

コードタグを使用してください! – gsamaras

関連する問題