24 private static $vaultCode =
'vault';
29 private $storeManager;
34 private $tokenUiComponentProviders;
39 private $customerTokenManagement;
44 private $vaultPaymentList;
56 array $tokenUiComponentProviders = []
59 $this->tokenUiComponentProviders = $tokenUiComponentProviders;
60 $this->customerTokenManagement = $customerTokenManagement;
72 $providers = $this->getComponentProviders();
74 if (empty($providers)) {
75 return $vaultPayments;
78 $tokens = $this->customerTokenManagement->getCustomerSessionTokens();
81 $paymentCode =
$token->getPaymentMethodCode();
82 if (!isset($providers[$paymentCode])) {
86 $componentProvider = $providers[$paymentCode];
87 $component = $componentProvider->getComponentForToken(
$token);
88 $config = $component->getConfig();
89 $vaultPaymentCode = !empty(
$config[
'code']) ?
$config[
'code'] : $paymentCode;
90 $vaultPayments[$vaultPaymentCode .
'_' .
$i] = [
92 'component' => $component->getName()
98 self::$vaultCode => $vaultPayments
108 private function getComponentProviders()
111 $storeId = $this->storeManager->getStore()->getId();
112 $vaultPaymentMethods = $this->getVaultPaymentList()->getActiveList(
$storeId);
114 foreach ($vaultPaymentMethods as
$method) {
115 $providerCode =
$method->getProviderCode();
116 $componentProvider = $this->getComponentProvider($providerCode);
117 if ($componentProvider ===
null) {
120 $providers[$providerCode] = $componentProvider;
130 private function getComponentProvider($vaultProviderCode)
132 $componentProvider = isset($this->tokenUiComponentProviders[$vaultProviderCode])
133 ? $this->tokenUiComponentProviders[$vaultProviderCode]
135 return $componentProvider instanceof TokenUiComponentProviderInterface
145 private function getVaultPaymentList()
147 if ($this->vaultPaymentList ===
null) {
150 return $this->vaultPaymentList;
__construct(StoreManagerInterface $storeManager, CustomerTokenManagement $customerTokenManagement, array $tokenUiComponentProviders=[])