后端处理
扫码后,跳转到redirect_uri 指定url, 获取code, 类似
https://pc.xxx.com/#/weChartLogin?code=0814nWQI0wTnNd2r8VRI0raZQI04nWQg&state=41HSvAje89NJt9WN
1. 通过code获得 access_token + openid
$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $appid. "&secret=" . $secret . "&code=" . $code . "&grant_type=authorization_code";
$jsonResult = file_get_contents($url);
$resultArray = json_decode($jsonResult, true);
$access_token = $resultArray["access_token"];
$openid = $resultArray["openid"];
$unionid = $resultArray["unionid"];
根据unionid 去后台请求用户信息
用户存在,返回用户信息,前端绑定用户信息,完成登录
用户不存在,跳转到登录页面,在登录参数中增加unionid 字段,正常登录,即完成登录并绑定
2. 通过access_token + openid 获得用户基本信息
微信用户头像、用户名、性别、城市等一些基本参数
$infoUrl = "https://api.weixin.qq.com/sns/userinfo?access_token=" . $access_token . "&openid=" . $openid;
$infoResult = file_get_contents($infoUrl);
$infoArray = json_decode($infoResult, true);
3. 保存,写入session,跳转会员中心
echo '<script language="javascript">window.top.location.href="/ucenter/user"</script>';
使用openid (公众号)向后台请求登录,拿到用户信息
使用unionid 统一的标识,向后台请求登录,拿到用户信息