/** * Load vault payment extension attribute to order/payment entity * * @param OrderPaymentInterface $payment * @param \Closure $proceed * @return OrderPaymentExtensionInterface */ public function aroundGetExtensionAttributes(OrderPaymentInterface $payment, \Closure $proceed) { /** @var OrderPaymentExtensionInterface $paymentExtension */ $paymentExtension = $proceed(); if ($paymentExtension === null) { $paymentExtension = $this->paymentExtensionFactory->create(); } $paymentToken = $paymentExtension->getVaultPaymentToken(); if ($paymentToken === null) { $paymentToken = $this->paymentTokenManagement->getByPaymentId($payment->getEntityId()); $paymentExtension->setVaultPaymentToken($paymentToken); $payment->setExtensionAttributes($paymentExtension); } return $paymentExtension; }
/** * @param OrderPaymentInterface $payment * @return \Magento\Sales\Api\Data\OrderPaymentExtensionInterface */ private function getPaymentExtensionAttributes(OrderPaymentInterface $payment) { $extensionAttributes = $payment->getExtensionAttributes(); if ($extensionAttributes === null) { $extensionAttributes = $this->paymentExtensionFactory->create(); $payment->setExtensionAttributes($extensionAttributes); } return $extensionAttributes; }