OrderEntity
$order,
RequestDataBag
$dataBag,
SalesChannelContext
$salesChannelContext,
?Struct
$preOrderStruct ): void
{ try { $transaction =
$this->
getTransaction($order,
$salesChannelContext);
if ($transaction === null
) { return;
} $paymentHandler =
$this->
getPaymentHandlerFromTransaction($transaction);
if (!
($paymentHandler instanceof PreparedPaymentHandlerInterface
) ||
$preOrderStruct === null
) { return;
} $preparedTransactionStruct =
$this->paymentTransactionStructFactory->
prepared($transaction,
$order);
$paymentHandler->
capture($preparedTransactionStruct,
$dataBag,
$salesChannelContext,
$preOrderStruct);
} catch (PaymentProcessException
$e) { $this->logger->
error('An error occurred during processing the capture of the payment. The order has been placed.',
['orderId' =>
$order->
getId(), 'exceptionMessage' =>
$e->
getMessage()]);