Exemple #1
0
 /**
  * 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);
     }
 }