public function getUri(string $label, string $issuer, int $hotpCounter = null):string{

		$values = [
			'secret'    => $this->getSecret(),
			'issuer'    => $issuer,
			'digits'    => $this->options->digits,
			'algorithm' => $this->options->algorithm,
		];

		if($this->options->mode === 'totp'){
			$values['period'] = $this->options->period;
		}

		if($this->options->mode === 'hotp' && $hotpCounter !== null){
			$values['counter'] = $hotpCounter;
		}

		return 'otpauth://'.$this->options->mode.'/'.rawurlencode($label).'?'.http_build_query($values, '', '&', PHP_QUERY_RFC3986);
	}