componentFactory = $componentFactory; $this->urlBuilder = $urlBuilder; } /** * Get UI component for token * @param PaymentTokenInterface $paymentToken * @return TokenUiComponentInterface */ public function getComponentForToken(PaymentTokenInterface $paymentToken) { $jsonDetails = json_decode($paymentToken->getTokenDetails() ?: '{}', true); $component = $this->componentFactory->create( [ 'config' => [ 'code' => ConfigProvider::CC_VAULT_CODE, 'nonceUrl' => $this->getNonceRetrieveUrl(), TokenUiComponentProviderInterface::COMPONENT_DETAILS => $jsonDetails, TokenUiComponentProviderInterface::COMPONENT_PUBLIC_HASH => $paymentToken->getPublicHash() ], 'name' => 'Magento_Braintree/js/view/payment/method-renderer/vault' ] ); return $component; } /** * Get url to retrieve payment method nonce * @return string */ private function getNonceRetrieveUrl() { return $this->urlBuilder->getUrl(ConfigProvider::CODE . '/payment/getnonce', ['_secure' => true]); } }