/** * Retrieve assoc array of checkout configuration * * @return array */ public function getConfig() { $vaultPayments = []; $customerId = $this->session->getCustomerId(); if (!$customerId) { return $vaultPayments; } $storeId = $this->storeManager->getStore()->getId(); if (!$this->vaultPayment->isActive($storeId)) { return $vaultPayments; } $vaultProviderCode = $this->vaultPayment->getProviderCode($storeId); $componentProvider = $this->getComponentProvider($vaultProviderCode); if (null === $componentProvider) { return $vaultPayments; } $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::CUSTOMER_ID)->setValue($customerId)->create(); $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::IS_VISIBLE)->setValue(1)->create(); $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::PAYMENT_METHOD_CODE)->setValue($vaultProviderCode)->create(); $searchCriteria = $this->searchCriteriaBuilder->addFilters($filters)->create(); foreach ($this->paymentTokenRepository->getList($searchCriteria)->getItems() as $index => $token) { $component = $componentProvider->getComponentForToken($token); $vaultPayments[VaultPaymentInterface::CODE . '_item_' . $index] = ['config' => $component->getConfig(), 'component' => $component->getName()]; } return ['payment' => [VaultPaymentInterface::CODE => $vaultPayments]]; }
/** * Retrieve assoc array of checkout configuration * * @return array */ public function getConfig() { $availableMethods = []; $vaultPayments = $this->getVaultPaymentMethodList(); $customerId = $this->session->getCustomerId(); $storeId = $this->storeManager->getStore()->getId(); foreach ($vaultPayments as $method) { $availableMethods[$method->getCode()] = ['is_enabled' => $customerId !== null && $method->isActive($storeId)]; } return [self::$vaultCode => $availableMethods]; }
/** * @inheritdoc */ public function execute() { $response = $this->resultFactory->create(ResultFactory::TYPE_JSON); try { $publicHash = $this->getRequest()->getParam('public_hash'); $customerId = $this->session->getCustomerId(); $result = $this->command->execute(['public_hash' => $publicHash, 'customer_id' => $customerId])->get(); $response->setData(['paymentMethodNonce' => $result['paymentMethodNonce']]); } catch (\Exception $e) { $this->logger->critical($e); return $this->processBadRequest($response); } return $response; }
/** * @param string $vaultPaymentCode * @return TokenUiComponentInterface[] */ public function getTokensComponents($vaultPaymentCode) { $result = []; $customerId = $this->session->getCustomerId(); if (!$customerId) { return $result; } $vaultPayment = $this->getVaultPayment($vaultPaymentCode); if ($vaultPayment === null) { return $result; } $vaultProviderCode = $vaultPayment->getProviderCode(); $componentProvider = $this->getComponentProvider($vaultProviderCode); if ($componentProvider === null) { return $result; } $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::CUSTOMER_ID)->setValue($customerId)->create(); $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::PAYMENT_METHOD_CODE)->setValue($vaultProviderCode)->create(); $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::IS_ACTIVE)->setValue(1)->create(); $filters[] = $this->filterBuilder->setField(PaymentTokenInterface::EXPIRES_AT)->setConditionType('gt')->setValue($this->dateTimeFactory->create('now', new \DateTimeZone('UTC'))->format('Y-m-d 00:00:00'))->create(); $searchCriteria = $this->searchCriteriaBuilder->addFilters($filters)->create(); foreach ($this->paymentTokenRepository->getList($searchCriteria)->getItems() as $token) { $result[] = $componentProvider->getComponentForToken($token); } return $result; }
/** * Retrieve assoc array of checkout configuration * * @return array */ public function getConfig() { $storeId = $this->storeManager->getStore()->getId(); $customerId = $this->session->getCustomerId(); return [VaultPaymentInterface::CODE => ['vault_provider_code' => $this->vault->getProviderCode($storeId), 'is_enabled' => $customerId !== null && $this->vault->isActive($storeId)]]; }