. */ namespace Storefront\BTCPay\Model\Config; use Magento\Config\Model\Config\CommentInterface; use Magento\Framework\App\Config\ScopeConfigInterface; use Magento\Framework\Data\Form\FormKey; use Magento\Framework\Url; use Magento\Store\Model\StoreManagerInterface; use Storefront\BTCPay\Model\BTCPay\BTCPayService; class ApiKeyComment implements CommentInterface { private $storeManager; private $btcPayService; private $urlBuilder; private $scopeConfig; private $formKey; public function __construct(Url $urlBuilder, ScopeConfigInterface $scopeConfig, FormKey $formKey, BTCPayService $btcPayService, StoreManagerInterface $storeManager) { $this->scopeConfig = $scopeConfig; $this->urlBuilder = $urlBuilder; $this->formKey = $formKey; $this->btcPayService = $btcPayService; $this->storeManager = $storeManager; } public function getCommentText($elementValue) { $r = ''; $magentoStoreId = $this->btcPayService->getCurrentMagentoStoreId(); $apiKey = $this->btcPayService->getApiKey('default', 0); if (!$apiKey) { $magentoRootDomain = $this->scopeConfig->getValue('web/secure/base_url', 'store', 0); $magentoRootDomain = parse_url($magentoRootDomain, PHP_URL_HOST); $magentoRootDomain = str_replace(['http://', 'https://'], '', $magentoRootDomain); $magentoRootDomain = rtrim($magentoRootDomain, '/'); $redirectToUrlAfterCreation = $this->btcPayService->getReceiveApikeyUrl($magentoStoreId); $applicationIdentifier = 'magento2'; $baseUrl = $this->btcPayService->getBtcPayServerBaseUrl(); if ($baseUrl) { $authorizeUrl = \BTCPayServer\Client\ApiKey::getAuthorizeUrl($baseUrl, \Storefront\BTCPay\Helper\Data::REQUIRED_API_PERMISSIONS, 'Magento 2 @ ' . $magentoRootDomain, true, true, $redirectToUrlAfterCreation, $applicationIdentifier); $r = 'Generate API key, but be sure to save any changes first.'; } else { $r = 'Make sure you configure the BTCPay Base Url above'; } } return $r; } }