subjectReader = $subjectReader; } /** * @inheritdoc */ public function build(array $buildSubject): array { $paymentDO = $this->subjectReader->readPayment($buildSubject); $payment = $paymentDO->getPayment(); $data = []; if ($payment instanceof Payment) { $authorizationTransaction = $payment->getAuthorizationTransaction(); if (empty($authorizationTransaction)) { $transactionId = $payment->getLastTransId(); } else { $transactionId = $authorizationTransaction->getParentTxnId(); if (empty($transactionId)) { $transactionId = $authorizationTransaction->getTxnId(); } } $data = [ 'heldTransactionRequest' => [ 'action' => 'approve', 'refTransId' => $transactionId, ] ]; } return $data; } }