微信分享jssdk config:invalid signature 签名错误

时间:2022-03-04 07:22:04

使用微信分享时,按照官方给的demo,使用时一直提示签名错误。

根据微信开发文档(http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html)排查,完全没问题,而且可以通过他们的检验工具检验(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign)。

输出签名与PHP程序计算出来的签名是一致的,莫名其妙的问题。

最后经过网友提醒,是微信demo程序获取URL中出现了问题。

源程序:

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

改为:

$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[SERVER_NAME]$_SERVER[REQUEST_URI]";

即:HTTP_HOST 改为SERVER_NAME

成功!!!

网友还碰到过多种错误,参考这个解决:

https://segmentfault.com/q/1010000002520634