2020最新PHP判断请求是否为HTTPS

客户在http时可以唤起微信扫一扫接口,可https却不行,用开发者工具查看是

image.png

签名错误,反复找原因原来是参数网址请求协议弄错了,https传的是http结果导致失败了,附上最新的判断是否为https的方法

function isHTTPS(){
    if(!isset($_SERVER)) return false;
    if(isset($_SERVER['HTTPS']) && 
		($_SERVER['HTTPS'] === 1 || $_SERVER['HTTPS'] === 'on')) {
        return true;
	}elseif(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && 
		$_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'){ //Nginx
		return true;
	}elseif(isset($_SERVER['REQUEST_SCHEME']) && 
		$_SERVER['REQUEST_SCHEME'] == 'https'){
		return true;
    }else if(isset($_SERVER['HTTP_X_CLIENT_SCHEME']) && 
		$_SERVER['HTTP_X_CLIENT_SCHEME'] == 'https'){
		return true;
	}elseif ($_SERVER['SERVER_PORT'] == 443) {
        return true;
	}
    return false;
}

多参数判断,更准确。