微信网页授权说明【微信客户端内打开的网页】
如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑。
关于网页授权回调域名的说明
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、判断用户是否登录;
2、跳转到微信授权页面;
3、用户同意授权返回开发者指定页面,在此页面校验数据并利用 openid 获取用户信息;
完整代码
<?php //请开启 session class wxController extends grace{ public function index(){ } public function account(){ $gracewechat = tool('graceWeChat'); if(empty($_SESSION['openid'])){ //微信登录 $backUrl = 'http://www.phpgrace.com/wx/login'; $gracewechat->wxLogin($backUrl); }else{ echo '您已经登录, openid : '.$_SESSION['openid']; } } public function login(){ //检查 url if(empty($_GET['code']) || empty($_GET['state'])){exit('参数错误,请返回重试!E01');} if(empty($_SESSION['wxLoginState'])){exit('参数错误,请重试!E02');} if($_SESSION['wxLoginState'] != $_GET['state']){exit('参数错误,请重试!E03');} //获取用户 [ openid ] $gracewechat = tool('graceWeChat'); $user = $gracewechat->wxLoginBack(); if(empty($user) || empty($user['openid'])){exit('登录失败');} //获取用户信息 [ 用户全部信息 ] $user = $gracewechat->getUser($user['openid']); //利用 session 记录 openid session_start(); $_SESSION['openid'] = $user['openid']; session_write_close(); print_r($user); } }