public function renderRadio(): string
	{
		$gateUrl = $this->config->gateUrl;
		$queryArgs = [
			'merchantId' => $this->config->merchantId,
			'accountId'  => $this->config->accountId,
			'name'       => $this->name,
			'value'      => $this->value,
			'showIcon'   => $this->showIcon,
			'selected'   => !empty($_REQUEST['tp_radio_value']) ? (int) $_REQUEST['tp_radio_value'] : '',
		];
		// Currency is an optional argument. For compatibility reasons, it is
		// not present in the query at all if its value is empty.
		if ($this->currency) {
			$queryArgs['currency'] = $this->currency;
		}

		$queryArgs['signature'] = $this->createSignature($queryArgs);

		$queryArgs = http_build_query($queryArgs);
		$thepayGateUrl = "{$gateUrl}radiobuttons/index.php?{$queryArgs}";
		$thepayGateUrl = Escaper::jsonEncode($thepayGateUrl);

		$href = "{$gateUrl}radiobuttons/style/radiobuttons.css?v=" . time();
		$out = "<link href=\"{$href}\" type=\"text/css\" rel=\"stylesheet\" />\n";
		$out .= "<script type=\"text/javascript\">\n";
		$out .= "\tvar thepayGateUrl = {$thepayGateUrl};\n";

		if ($this->appendCode) {
			$thepayAppendCode = Escaper::jsonEncode($this->appendCode);
			$out .= "\tvar thepayAppendCode = {$thepayAppendCode};\n";
		}

		$out .= "</script>\n";

		$src = "{$gateUrl}radiobuttons/js/jquery.js?v=" . time();
		$out .= "<script type=\"text/javascript\" src=\"{$src}\" async=\"async\"></script>\n";

		$src = "{$gateUrl}radiobuttons/js/radiobuttons.js?v=" . time();
		$out .= "<script type=\"text/javascript\" src=\"{$src}\" async=\"async\"></script>\n";

		$out .= "<div id=\"thepay-method-box\"></div>\n";

		return $out;
	}