微信授权登陆获取用户信息

根据微信api和自己实际项目开发;

 1  public function getuserinfo()
 2     {
 3         if (isset($_GET[‘code‘])) {
 4             //获取access_token  openid  refresh_token
 5             $url1 = ‘https://api.weixin.qq.com/sns/oauth2/access_token?appid=‘ . $this->appid . ‘&secret=‘ . $this->secret . ‘&code=‘ . $_GET[‘code‘] . ‘&grant_type=authorization_code‘;
 6             $result_access_token = $this->http_curl($url1); //主要返回取access_token 和 openid
 7             $arr = json_decode($result_access_token, true); //数组
 8             //验证access_token是否有效
 9             $url_fresh_verification = ‘https://api.weixin.qq.com/sns/auth?access_token=‘ . $arr[‘access_token‘] . ‘&openid=‘ . $arr[‘openid‘] . ‘‘;
10             $refresh_token_istrue = $this->http_curl($url_fresh_verification);
11             $refresh_token_istrue = json_decode($refresh_token_istrue, true);
12             if ($refresh_token_istrue[‘errcode‘] != 0) {
13                 //3.0 重新刷新access_token
14                 $url_get_new_access_token = ‘https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=wxeb8d4ef8686310eb&grant_type=refresh_token&refresh_token=‘ . $arr[‘refresh_token‘] . ‘‘;
15                 $new_access_token = $this->http_curl($url_get_new_access_token);
16                 $obj = json_decode($new_access_token);
17                 //重新取得access_token
18                 $arr[‘access_token‘] = $obj->access_token;
19             }
20             // 获取用户信息
21             if (count($arr) > 2) {
22                 $url_userinfo = ‘https://api.weixin.qq.com/sns/userinfo?access_token=‘ . $arr[‘access_token‘] . ‘&openid=‘ . $arr[‘openid‘] . ‘&lang=zh_CN‘;
23                 $result_userinfo = $this->http_curl($url_userinfo);
24                 //dump(json_decode($result_userinfo,true));
25             } else {
26                 echo json_encode($arr);
27             }
28         } else {
29             echo "授权失败";
30         }
31     }

curl会话机制执行url

1 public function http_curl($url){
2     $ch=curl_init();//开启会话机制
3     curl_setopt($ch,CURLOPT_URL,$url);
4     curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //获取数据返回
5     curl_setopt($ch,CURLOPT_BINARYTRANSFER,true); //启用
6     $result=curl_exec($ch); //执行
7     curl_close($ch); //关闭会话机制
8     return json_decode($result,true); //true 返回数组,默认返回对象
9 }
时间: 2024-10-08 20:13:09

微信授权登陆获取用户信息的相关文章

微信公众号开发之网页授权(获取用户信息)

这次暑假留在学校参与工作室的项目,对微信公众号比较感兴趣,所以参与这方面的学习研究. 昨天完成了关于网页授权,获取用户信息方面的功能,所以乘热打铁,写上一篇.实现本篇涉及的 功能,还需要完成一些基础.在写完这篇博客后,我会尽快补上. -------------------------废话不多说直入正题 需要的工具: 微信公众号(可以申请,但做开发的,可以申请测试号,申请详细不多说了) 服务器(可以自行购买,我使用的是新浪的sae.) 编辑器(随意,不做推荐) 微信公众号开发文档(地址) ----

Android之QQ授权登录获取用户信息

有时候我们开发的app须要方便用户简单登录.能够让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下怎样在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开腾讯开发平台这个网页,点击---->移动应用---->创建应用,成功创建应用后.能够产生我们须要的App ID和App Key,例如以下图所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVhcl9odWFuZ3poZW4=/font/5a6

微信小程序-获取用户信息和openid,session_key,

1:微信小程序获取用户信息:比如常用的 avatarUrl (用户头像),nickName (用户名称) 等等, (1):获取用户信息调用 wx.getUserInfo 代码如下: 直接请求接口就可以了,随后把数据存放到storage中,下次直接取 就不用再请求接口,, 2:获取 openid (1):请求wx.login 接口,代码如下: url:是微信提供的 appid:是小程序的appid secret:是小程序开发设置的 AppSecret 只要获取到这两项,用户信息可以用于页面,ope

微信公众号开发简单的网页授权登陆获取用户基本信息

由于业务需要,近期在做微信公众号开发,其中一个模块是微信用户点击个人中心访问可以得到次微信用户的头像昵称国家省份等基本信息. 但由于业务需求,这块功能暂时用不上了,但这功能的实现毕竟是自己花费几天时间搞出来的,觉得以后会用的上,暂且记录一下实现过程. 首先:获取用户信息的过程属于微信网页授权登陆,再做这一块之前请先阅读微信开发文档以熟悉基本的开发过程: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842 微信开发文档

微信开发笔记——微信网页登录授权,获取用户信息

最近做了一个公司的微信的公众号,对微信的流程清楚了不少,这里记录下,算不上多高深的,只希望能帮助到一部分人吧. 我们公司的测试微信公众号:NPCgo 可以感受下,哈哈~~ 闲话少说,开始: 首先大家要看下微信的API文档. 微信网页授权,获取用户的微信官方API文档地址:http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html 三次握手微信认证流程(我自己简称三次握手): 1.用户同意授权,获取code 2.通过c

PHP微信OAuth2.0网页授权,获取用户信息代码类封装demo(二)

一.这个文件微信授权使用的是OAuth2.0授权的方式.主要有以下简略步骤: 第一步:判断有没有code,有code去第三步,没有code去第二步 第二步:用户同意授权,获取code 第三步:通过code换取网页授权access_token 第四步:使用access_token获取用户信息 二.代码GetWxUser.php 1 <?php 2 /** 3 * 获取微信用户信息 4 * @author: Lucky hypo 5 */ 6 class GetWxUser{ 7 private $

微信公众号获取用户信息致跳过的坑

有一段时间没有搞微信开发了 ,今天突然要改一下程序! 回头一看 微信的帮助文档太tm的稀烂的,太难懂了,这做个笔记以后看着方便 微信有2个ACCESS_TOKEN, 1,基础接口的token 获取接口是 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 2,用户网页授权access_token 获取接口地址是 https://api.weixin

微信小程序获取用户信息流程

获取用户信息与其他授权不太一样,其他授权会自动弹出对话框,请求获取用户授权,但获取用户信息不回,需要引导用户点击授权按钮同意授权获取用户基本信息 1.前端页面要有授权登录按钮 <button wx:if="{{canIUse}}" open-type="getUserInfo" bindgetuserinfo="bindGetUserInfo" > 授权登录 </button> <view wx:else>请升

微信小程序 获取用户信息 encryptData解密 C#版本

最近学习小程序开发,需要对encryptData解密,获取用户信息,官方源码没有C#版本,网上的资料比较杂,有的使用还有问题,下面贴一下自己亲试可以使用的一个源码 1.code 换取 session_key 前端先调 wx.login 得到code传输到后端,后端通过接口 https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authoriza