//這部峯代碼是封裝的庫文件,
<?php
/**
* Created by PhpStorm.
* User: root
* Date: 16-6-23
* Time: 下午3:29
*/ class weixinUser{ protected $m_appid;//应用唯一标识,在微信开放平台提交应用审核通过后获得
protected $m_AppSecret;//应用密钥AppSecret,在微信开放平台提交应用审核通过后获得
function __construct($appid, $m_AppSecret){
//初始化
$this->m_appid = $appid;
$this->m_AppSecret = $m_AppSecret; }
//根據用戶授權登錄之後渠道的code得到access_token
public function get_access_token($code)
{
$access_token_url ="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$this->m_appid."&secret=".$this->m_AppSecret."&code=".$code."&grant_type=authorization_code";
$access_token = json_decode(file_get_contents($access_token_url));
if (isset($access_token->errcode)) {
$this->error($access_token->errcode, $access_token->errmsg);
return 0;
} else {
return $access_token;
} } //根據accesss_token取到用戶的個人信息
public function get_user_info($access_token, $language="zh_CN")
{
$url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token->{'access_token'}."&openid=".$access_token->{"openid"};
$user_info = json_decode(file_get_contents($url));
if (isset($user_info->errcode)) {
$this->error($user_info->errcode,$user_info->errmsg);
return 0;
}else{
return $user_info;
}
}
//輸出錯誤信息
public function error($errmsg, $errcode = "001")
{
echo '<h1>error:</h1>' . $errcode;
echo '<br/><h2>error information:</h2>' . $errmsg;
} }

微信登錄(網頁授權)之後的獲取用戶的信息需要三步:

第一步:詳見網頁微信授權(我的博客微信開發分類中);

第二步:獲取access_token;

第三步:獲取用戶的個人信息;

下面是對上面函數的調用:

<?php
include_once "WeixinUser.php";
$code = $_GET['code'];
//换成自己的接口信息, 這兩個信息都是公衆號的信息,不是開放平臺的信息。
$appid = 'wxcd3024b539782879';
$AppSecret='06e3cfbccb239d029dee5f6cb9c1dbb4';
$weixinUser=new weixinUser($appid,$AppSecret); //初始化對象 $access_token=$weixinUser->get_access_token($code);
var_dump($access_token); //打印access_token,注意:打印的是一個對象,而不是數組。調用其成員變量時要用"->"
$user=$weixinUser->get_user_info($access_token);
var_dump($user); //打印用戶的個人信息
?>

至此,用戶的信息就獲取到了。接下來做公衆號的php支付了。詳見博客微信開發 ---  微信支付PHP SDK —— 公众号支付代码详解。

2016-06-23  21:09:31

最新文章

  1. FP error code老是忘记的看这里:只给出最常用的几个。
  2. POJ 1321 DFS
  3. 使用Microsoft.Office.Interop.Excel.Application xlApp 生成Excel
  4. iscroll性能
  5. connect函数详解
  6. mongo里面根据对象字段的ID查询 db.Photo.find({&#39;owner.$id&#39;:ObjectId(&#39;xxxx&#39;)}) , 并且使用forEach循环修改查询的数据
  7. OO之美4(好代码与坏代码)
  8. Unix网络编程--卷二:进程间通信
  9. Validform使用
  10. C# 动态绘制任务栏图标的实现
  11. 头痛的ASCII和preg_replace()
  12. Delphi 调用系统中的计算器、记事本、画图软件方法
  13. WebService调用权限验证 SoapHeader
  14. 模板类的约束模板友元函数:template friend functions
  15. 【机器学习实战】第11章 使用 Apriori 算法进行关联分析
  16. 将excel文件内容存储到数据库,并可以实时在前端查看(不必生成文件)
  17. Apache软件基金会项目百度百科链接
  18. 对List集合嵌套了map集合对double值进行排序
  19. Manjaro为包管理器pacman和yaourt\yay 添加多线程下载
  20. kafka模型理解

热门文章

  1. C#连接MySql数据库的方法
  2. JVM 类加载过程
  3. [cocos2dx]2.2到3.1(3.0)升级帮助
  4. 边工作边刷题:70天一遍leetcode: day 85-1
  5. AC日记—— codevs 1031 质数环(搜索)
  6. Unity3D开发之搭建Mac OS开发环境
  7. 转:Metronic – 超赞!基于 Bootstrap 的响应式后台管理模板
  8. cisco交换技术list
  9. react native 底部按钮切换
  10. JS之apply,call,bind区别