29 private $paymentTokenRepository;
34 private $integrationsManager;
39 private $sortOrderBuilder;
44 private $searchCriteriaBuilder;
49 private $dateTimeFactory;
66 $this->paymentTokenRepository = $paymentTokenRepository;
67 $this->integrationsManager = $integrationsManager;
68 $this->sortOrderBuilder = $sortOrderBuilder;
70 $this->dateTimeFactory = $dateTimeFactory;
79 $searchResult = $this->paymentTokenRepository->getList(
$searchCriteria);
80 $tokens = $searchResult->getItems();
81 $lastCreatedToken = array_shift(
$tokens);
82 return $lastCreatedToken;
94 $this->searchCriteriaBuilder->addFilter(
98 $this->searchCriteriaBuilder->addFilter(
102 $this->searchCriteriaBuilder->addFilter(
106 $this->searchCriteriaBuilder->addFilter(
108 $this->getSupportedPaymentMethodCodes(
$storeId),
111 $this->searchCriteriaBuilder->addFilter(
113 $this->dateTimeFactory->create(
'now',
new \DateTimeZone(
'UTC'))
114 ->format(
'Y-m-d 00:00:00'),
119 ->setDescendingDirection()
121 $this->searchCriteriaBuilder->addSortOrder($creationReverseOrder);
135 private function getSupportedPaymentMethodCodes(
int $storeId)
137 $integrations = $this->integrationsManager->getList(
$storeId);
138 $integrations = array_filter($integrations,
function (Integration
$integration) {
141 $paymentMethodCodes = array_map(
function (Integration
$integration) {
144 return $paymentMethodCodes;
const PAYMENT_METHOD_CODE
__construct(PaymentTokenRepositoryInterface $paymentTokenRepository, IntegrationsManager $integrationsManager, SortOrderBuilder $sortOrderBuilder, SearchCriteriaBuilder $searchCriteriaBuilder, DateTimeFactory $dateTimeFactory)
choose(Store $store, Customer $customer)