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