1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Vault\Observer;
- use Magento\Framework\Event\Observer;
- use Magento\Payment\Observer\AbstractDataAssignObserver;
- use Magento\Quote\Api\Data\PaymentInterface;
- use Magento\Quote\Model\Quote\Payment;
- use Magento\Vault\Api\Data\PaymentTokenInterface;
- use Magento\Vault\Api\PaymentTokenManagementInterface;
- use Magento\Vault\Model\Method\Vault;
- class PaymentTokenAssigner extends AbstractDataAssignObserver
- {
- /**
- * @var PaymentTokenManagementInterface
- */
- private $paymentTokenManagement;
- /**
- * PaymentTokenAssigner constructor.
- * @param PaymentTokenManagementInterface $paymentTokenManagement
- */
- public function __construct(
- PaymentTokenManagementInterface $paymentTokenManagement
- ) {
- $this->paymentTokenManagement = $paymentTokenManagement;
- }
- /**
- * @param Observer $observer
- * @return void
- */
- public function execute(Observer $observer)
- {
- $dataObject = $this->readDataArgument($observer);
- $additionalData = $dataObject->getData(PaymentInterface::KEY_ADDITIONAL_DATA);
- if (!is_array($additionalData) || !isset($additionalData[PaymentTokenInterface::PUBLIC_HASH])) {
- return;
- }
- $tokenPublicHash = $additionalData[PaymentTokenInterface::PUBLIC_HASH];
- if ($tokenPublicHash === null) {
- return;
- }
- /** @var Payment $paymentModel */
- $paymentModel = $this->readPaymentModelArgument($observer);
- if (!$paymentModel instanceof Payment) {
- return;
- }
- $quote = $paymentModel->getQuote();
- $customerId = (int) $quote->getCustomer()->getId();
- $paymentToken = $this->paymentTokenManagement->getByPublicHash($tokenPublicHash, $customerId);
- if ($paymentToken === null) {
- return;
- }
- $paymentModel->setAdditionalInformation(
- [
- PaymentTokenInterface::CUSTOMER_ID => $customerId,
- PaymentTokenInterface::PUBLIC_HASH => $tokenPublicHash
- ]
- );
- }
- }
|