微信JSSDK的接口invalid signature解决方法

微信开发过程中遇到的坑还真不少。

比如,JSSDK中,调起扫一扫功能,在http下是很正常的,切换到https就不行了,提示签名错误:invalid signature。

经过逐步排查和利用了微信web开发者工具,原来问题出在jssdk中的jssdk.php文件中。


//微信给的例子中说url不能硬编码,但还是留了坑,下面注释是php例子中的代码段
		
// 注意 URL 一定要动态获取,不能 hardcode.
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

如果你的微信后台端口是80的话,一定不能把HTTP_HOST也拼接到url上面去,否则签名失败。


你可能感兴趣的:(微信,php)