Example #1
0
 /**
  * Update transaction ids for further processing
  * If no transactions were set before invoking, may generate an "offline" transaction id
  *
  * @param OrderPaymentInterface $payment
  * @param string $type
  * @param bool|Transaction $transactionBasedOn
  * @return string|null
  */
 public function generateTransactionId(OrderPaymentInterface $payment, $type, $transactionBasedOn = false)
 {
     if (!$payment->getParentTransactionId() && !$payment->getTransactionId() && $transactionBasedOn) {
         $payment->setParentTransactionId($transactionBasedOn->getTxnId());
     }
     // generate transaction id for an offline action or payment method that didn't set it
     if (($parentTxnId = $payment->getParentTransactionId()) && !$payment->getTransactionId()) {
         return "{$parentTxnId}-{$type}";
     }
     return $payment->getTransactionId();
 }