微信网页授权说明
如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。
关于网页授权回调域名的说明
1、在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;
2、授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html 、 http://www.qq.com/login.html 都可以进行OAuth2.0鉴权。但http://pay.qq.com 、 http://music.qq.com 、 http://qq.com无法进行OAuth2.0鉴权
实现步骤
1、判断用户是否登录 -> 跳转到微信授权页面 -> 用户同意授权返回开发者页面
示例代码
<?php session_start(); include '../hcWeChat/hcWeChat.php'; $hcWeChat = new hcWeChat(); //检查是否登录,未登录跳转到登录界面 if(empty($_SESSION['openid'])){ //微信登录 $backUrl = 'http://wx.hcoder.net/demo/wxlogin.php'; $hcWeChat->wxLogin($backUrl); }
2、开发者页面接收到授权数据 “code“ ,利用code获取openid
<?php session_start(); if(empty($_SESSION['state']) || $_SESSION['state'] != $_GET['state']){exit('登录数据错误');} if(empty($_GET['code'])){exit('登录数据错误');} include '../hcWeChat/hcWeChat.php'; $hcWeChat = new hcWeChat(); $hcWeChat->wxLoginBack(); header('location:./my.php');
3、利用openid获取用户信息完成登录
<?php session_start(); include '../hcWeChat/hcWeChat.php'; $hcWeChat = new hcWeChat(); //检查是否登录,未登录跳转到登录界面 if(empty($_SESSION['openid'])){ //微信登录 $backUrl = 'http://wx.hcoder.net/demo/wxlogin.php'; $hcWeChat->wxLogin($backUrl); } //获取用户信息 $user = $hcWeChat->getUser($_SESSION['openid']);