39 private $paymentTokenRepository;
44 private $filterBuilder;
49 private $searchCriteriaBuilder;
59 private $storeManager;
64 private $tokenUiComponentProviders;
69 private $dateTimeFactory;
74 private $paymentDataHelper;
79 private $orderRepository;
84 private $paymentTokenManagement;
104 array $tokenUiComponentProviders = []
106 $this->paymentTokenRepository = $paymentTokenRepository;
107 $this->filterBuilder = $filterBuilder;
111 $this->tokenUiComponentProviders = $tokenUiComponentProviders;
112 $this->dateTimeFactory = $dateTimeFactory;
126 $vaultPayment = $this->getVaultPayment($vaultPaymentCode);
127 if ($vaultPayment ===
null) {
131 $vaultProviderCode = $vaultPayment->getProviderCode();
132 $componentProvider = $this->getComponentProvider($vaultProviderCode);
133 if ($componentProvider ===
null) {
138 $this->searchCriteriaBuilder->addFilters(
147 $this->searchCriteriaBuilder->addFilters(
150 ->setValue($this->getPaymentTokenEntityId())
160 $this->searchCriteriaBuilder->addFilters(
163 ->setValue($vaultProviderCode)
167 $this->searchCriteriaBuilder->addFilters(
174 $this->searchCriteriaBuilder->addFilters(
177 ->setConditionType(
'gt')
179 $this->dateTimeFactory->create(
181 new \DateTimeZone(
'UTC')
182 )->format(
'Y-m-d 00:00:00')
191 $result[] = $componentProvider->getComponentForToken(
$token);
201 private function getComponentProvider($vaultProviderCode)
203 $componentProvider = isset($this->tokenUiComponentProviders[$vaultProviderCode])
204 ? $this->tokenUiComponentProviders[$vaultProviderCode]
216 private function getVaultPayment($vaultPaymentCode)
218 $storeId = $this->storeManager->getStore()->getId();
219 $vaultPayment = $this->getPaymentDataHelper()->getMethodInstance($vaultPaymentCode);
220 return $vaultPayment->isActive(
$storeId) ? $vaultPayment :
null;
227 private function getPaymentTokenEntityId()
229 $paymentToken = $this->getPaymentTokenManagement()->getByPaymentId($this->getOrderPaymentEntityId());
242 private function getOrderPaymentEntityId()
244 $orderId = $this->session->getReordered()
245 ?: $this->session->getOrder()->getEntityId();
246 $order = $this->getOrderRepository()->get($orderId);
248 return (
int)
$order->getPayment()->getEntityId();
256 private function getPaymentDataHelper()
258 if ($this->paymentDataHelper ===
null) {
261 return $this->paymentDataHelper;
269 private function getOrderRepository()
271 if ($this->orderRepository ===
null) {
273 ->get(OrderRepositoryInterface::class);
276 return $this->orderRepository;
284 private function getPaymentTokenManagement()
286 if ($this->paymentTokenManagement ===
null) {
288 ->get(PaymentTokenManagementInterface::class);
291 return $this->paymentTokenManagement;
const PAYMENT_METHOD_CODE
getTokensComponents($vaultPaymentCode)
__construct(SessionManagerInterface $session, PaymentTokenRepositoryInterface $paymentTokenRepository, FilterBuilder $filterBuilder, SearchCriteriaBuilder $searchCriteriaBuilder, StoreManagerInterface $storeManager, DateTimeFactory $dateTimeFactory, array $tokenUiComponentProviders=[])