/** * Add payment transaction * * @param \Magento\Sales\Model\Order\Payment $payment * @param string $transactionId * @param string $transactionType * @param array $transactionDetails * @param array $transactionAdditionalInfo * @param bool $message * @return null|\Magento\Sales\Model\Order\Payment\Transaction */ protected function _addTransaction(\Magento\Sales\Model\Order\Payment $payment, $transactionId, $transactionType, array $transactionDetails = array(), array $transactionAdditionalInfo = array(), $message = false) { $payment->setTransactionId($transactionId); $payment->resetTransactionAdditionalInfo(); foreach ($transactionDetails as $key => $value) { $payment->setData($key, $value); } foreach ($transactionAdditionalInfo as $key => $value) { $payment->setTransactionAdditionalInfo($key, $value); } $transaction = $payment->addTransaction($transactionType, null, false, $message); foreach ($transactionDetails as $key => $value) { $payment->unsetData($key); } $payment->unsLastTransId(); /** * It for self using */ $transaction->setMessage($message); return $transaction; }
/** * {@inheritdoc} */ public function addTransaction($type, $salesDocument = null, $failSafe = false) { $pluginInfo = $this->pluginList->getNext($this->subjectType, 'addTransaction'); if (!$pluginInfo) { return parent::addTransaction($type, $salesDocument, $failSafe); } else { return $this->___callPlugins('addTransaction', func_get_args(), $pluginInfo); } }