使用微信分享时,按照官方给的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