customerTokenManagement = $customerTokenManagement; } /** * Get type of token * @return string */ abstract public function getType(); /** * @return PaymentTokenInterface[] */ public function getPaymentTokens() { $tokens = []; /** @var PaymentTokenInterface $token */ foreach ($this->getCustomerTokens() as $token) { if ($token->getType() === $this->getType()) { $tokens[] = $token; } } return $tokens; } /** * @param PaymentTokenInterface $token * @return string */ public function renderTokenHtml(PaymentTokenInterface $token) { foreach ($this->getChildNames() as $childName) { $childBlock = $this->getChildBlock($childName); if ($childBlock instanceof TokenRendererInterface && $childBlock->canRender($token)) { return $childBlock->render($token); } } return ''; } /** * Checks if customer tokens exists * @return bool */ public function isExistsCustomerTokens() { return !empty($this->getCustomerTokens()); } /** * Get customer session tokens * @return PaymentTokenInterface[] */ private function getCustomerTokens() { if (empty($this->customerTokens)) { $this->customerTokens = $this->customerTokenManagement->getCustomerSessionTokens(); } return $this->customerTokens; } }