subjectReader = $subjectReader; } /** * @inheritdoc */ public function handle(array $handlingSubject, array $response): void { $paymentDO = $this->subjectReader->readPayment($handlingSubject); $payment = $paymentDO->getPayment(); $transactionResponse = $response['transactionResponse']; if ($payment instanceof Payment) { $payment->setCcLast4($payment->getAdditionalInformation('ccLast4')); $payment->setCcAvsStatus($transactionResponse['avsResultCode']); $payment->setIsTransactionClosed(false); if ($transactionResponse['responseCode'] == self::RESPONSE_CODE_HELD) { $payment->setIsTransactionPending(true) ->setIsFraudDetected(true); } } } }