php 微信授权登陆
2016-03-22 00:00
676 查看
摘要: 微信授权登陆
<?php //require "Config.php"; //引入设置 auth(); //通过验证,进行授权登录 function auth(){ $auth = new HyAuth(); switch($_GET['method']){ case 'getcode': $auth->getAccessToken(); break; case 'getData': $auth->getData(); break; default: $auth->my_auth(); break; } } class HyAuth{ private $APPID = 'xxxxxxxxxxxxx'; private $APPSECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'; //https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect /** * 用户显示授权 */ function my_auth(){ // echo "Ok"; $appid = $this->APPID; $secret = $this->APPSECRET; $state = md5(rand(100,999).time().rand(100,999)); $redirect_uri = urlencode('http://hanghaiwang.zoneluo.com/bin/controller/auth.php?method=getcode'); $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri='.$redirect_uri.'&response_type=code&scope=snsapi_userinfo&state=state#wechat_redirect'; header('Location:'.$url); } /** * 获取用户的openid和acss_token(用于显示授权) */ function getAccessToken(){ $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->APPID.'&secret='.$this->APPSECRET.'&code='.$_GET['code'].'&grant_type=authorization_code'; include_once(dirname(dirname(__FILE__))."/res/comm.php"); $data = json_decode(curl_get($url),true) ; $this->getUserInfo($data); } /** * 用户显示授权获取用户具体信息 */ function getUserInfo($array){ include_once(dirname(dirname(__FILE__))."/res/comm.php"); $url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$array['access_token'].'&openid='.$array['openid'].'&lang=zh_CN'; //$data = curl_get($url); $data = json_decode(curl_get($url),true) ; include_once(dirname(dirname(__FILE__))."/dao/UsersDao.class.php"); $userDao = new UsersDao(); $users = $userDao->selectUserData($data); if(empty($users)){ $result = $userDao->addUserData($data); $_SESSION['uid'] = $result; $_SESSION['project'] = 'huangshi'; }else{ $_SESSION['uid'] = $users['id']; $_SESSION['project'] = 'huangshi'; } header('Location:http://hanghaiwang.zoneluo.com/index.php'); } }
相关文章推荐
- android/IOS SDK怎么判断用户是否安装了微信/QQ
- iOS微信分享功能简单实现
- Scala 小程序记录(学习期间的代码片段)
- 微信公众平台自定义菜单
- Android学习之仿QQ讨论组和微信群聊头像
- HTML5+JS,微信平台开发
- 刘宇凡:解读微信朋友圈策略调整的重要目的
- php 获取 微信 open_id 部分代码
- 仿微信滑动返回
- 微信开发 ajax获取 signpackage 且共享
- 微信公众帐号开发教程第11篇-符号表情的发送(下)
- 微信公众帐号开发教程第10篇-符号表情的发送(上)
- 微信公众帐号开发教程第9篇-解析接口中的消息创建时间CreateTime
- 微信公众帐号开发教程第8篇-QQ表情的发送与接收
- 微信公众帐号开发教程第7篇-文本消息中使用网页超链接
- 微信公众帐号开发教程第6篇-文本消息中换行符的使用
- 友盟分享打不开QQ,提示微信未安装,iOS应用开发
- 微信公众帐号开发教程第5篇-文本消息的内容长度限制揭秘
- 微信公众帐号开发教程第4篇-各种消息的接收与响应
- 微信公众帐号开发教程第3篇-消息及消息处理工具的封装