例如 laravel 使用 request->getUrl(); 获取访问完整地址时,参数会根据顺序重新排列,导致jssdk鉴权失败问题。
解决办法:
1、如果是使用easywechat包来做微信开发,建议使用 wechat->js->getUrl() 方法获取当前访问URL;
2、如果是原生开发,使用PHP内置函数拼接出完整的地址:
$protocol = (!empty($_SERVER['HTTPS'])
&& $_SERVER['HTTPS'] !== 'off'
|| (int) $_SERVER['SERVER_PORT'] === 443) ? 'https://' : 'http://';
return $protocol.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];