paymentExtensionFactory = $paymentExtensionFactory; $this->paymentTokenManagement = $paymentTokenManagement; } /** * Load vault payment extension attribute to order/payment entity * * @param OrderPaymentInterface $payment * @param OrderPaymentExtensionInterface|null $paymentExtension * @return OrderPaymentExtensionInterface */ public function afterGetExtensionAttributes( OrderPaymentInterface $payment, OrderPaymentExtensionInterface $paymentExtension = null ) { if ($paymentExtension === null) { $paymentExtension = $this->paymentExtensionFactory->create(); } $paymentToken = $paymentExtension->getVaultPaymentToken(); if ($paymentToken === null) { $paymentToken = $this->paymentTokenManagement->getByPaymentId($payment->getEntityId()); if ($paymentToken instanceof PaymentTokenInterface) { $paymentExtension->setVaultPaymentToken($paymentToken); } $payment->setExtensionAttributes($paymentExtension); } return $paymentExtension; } }