配置回调域名:

1.引导用户进入授权页面同意授权,获取code

2.通过code换取网页授权access_token(与基础支持中的access_token不同)

3.如果需要,开发者可以刷新网页授权access_token,避免过期

4.通过网页授权access_token和openid获取用户基本信息

先自己建立两个文件:index.php 和 getUser.php

代码实例

index.php如下:

1 <?php    
2 $appid = "公众号的appid";
3 $REDIRECT_URI='回调链接';
4 $scope='snsapi_base';
5 // $scope='snsapi_userinfo';//需要授权
6 $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.urlencode($REDIRECT_URI).'&response_type=code&scope='.$scope.'&state=STATE#wechat_redirect';
7 header("Location:".$url);
8 ?>

getUser.php如下:

 1 <?php 
2 $appid = "公众号appid";
3 $secret = "公众号secret";
4 //获取code
5 $code = $_GET["code"];
6 //获取access_token
7 $get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
8
9 $ch = curl_init();
10 curl_setopt($ch,CURLOPT_URL,$get_token_url);
11 curl_setopt($ch,CURLOPT_HEADER,0);
12 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
13 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
14 $res = curl_exec($ch);
15 curl_close($ch);
16 $json_obj = json_decode($res,true);
17
18 //根据openid和access_token查询用户信息
19 $access_token = $json_obj['access_token'];
20 $openid = $json_obj['openid'];
21 $get_user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$openid.'&lang=zh_CN';
22 $ch = curl_init();
23 curl_setopt($ch,CURLOPT_URL,$get_user_info_url);
24 curl_setopt($ch,CURLOPT_HEADER,0);
25 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
26 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
27 $res = curl_exec($ch);
28 curl_close($ch);
29 //解析json
30 $user_obj = json_decode($res,true);
31 $_SESSION['user'] = $user_obj;
32 print_r($user_obj);
33 ?>

更多相关文章

  1. 第一次开发PHP网页Hello PHP
  2. PHP微信公众平台跳转网页实现定位思路 By:阿尚
  3. phpcms v9访问单网页一级栏目自动跳转到其下的第一个子栏目
  4. php关于网页乱码问题
  5. 推荐几款制作网页滚动动画的 JavaScript 库
  6. [转]在网页中加入声音文件,并且用JavaScript对其进行播放控制
  7. java 如何获取动态网页内容,返回字符串
  8. 原创记忆小游戏-HTML网页版
  9. javascript实现查看html网页放大图片功能

随机推荐

  1. Android中判断网络功能是否可用
  2. Android 系统字体和颜色样式
  3. Android(安卓)面试题及答案(英文)
  4. 在android 中开发java.net.SocketExcepti
  5. Android 网络多线程断点下载
  6. Android 设置系统SystemUI 顶部StatusBar
  7. Android之发送短信和接收验证码
  8. android应用去掉title bar 及全屏处理方
  9. Android 各种基础控件布局
  10. Android 8、Android 9获取手机序列号的兼