php 微信登录 公众号 获取用户信息 微信网页授权

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

index.php

<?php
//scope=snsapi_userinfo实例
$appid=''; //填写你公众号的appid
$redirect_uri = urlencode ( 'http://fenlei.sun0758.com/WX/getUserInfo.php' ); //回调页面 getUserInfo.php 不能写错
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
header("Location:".$url);

getUserInfo.php

<?php
header("Content-type: text/html; charset=utf-8");
$appid = ""; //填写你公众号的appid
$secret = ""; //填写你公众号的secret
$code = $_GET["code"]; //第一步:取得openid
$oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
$oauth2 = getJson($oauth2Url); //第二步:根据全局access_token和openid查询用户信息
$access_token = $oauth2["access_token"];
$openid = $oauth2['openid'];
$get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
$userinfo = getJson($get_user_info_url); //打印用户信息
print_r($userinfo); function getJson($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output, true);
}

将网址: http://你的域名/index.php 生成一个二维码!便能制作扫描二维码登录了。

切记

1.  https://api.weixin.qq.com/sns/userinfo
2. https://api.weixin.qq.com/cgi-bin/user/info 
上面两个api都是获取用户信息的,并且传入的参数也是一样的,第一个是用户网页端,第二个使用公共号关注后获取用户信息,希望以后的小伙伴可以记住。不要跟我犯一样的错误了。
 
 
出现40001错误!
Appkey 和 Appstore正确前提下
 
1. 因为开放平台跟微信公共号不一样,开放平台是不存在用户关注微信公共号的
2. 请求登录的方式也不同
a) 开放平台请求方式通过网页端生成二维码用户通过微信客服端进行扫描登录
网页端扫描的请求为:https://open.weixin.qq.com/connect/qrconnect
b) 而公共号只要在手机上操作因此登录请求的API也不同
而公共号的网页请求则为:https://open.weixin.qq.com/connect/oauth2/authorize 
如果使用此链接为网页端微信登录她会提示你在微信客户端进行访问
c) 其次他们作用范围也是不相同的scope值(这个可以看微信的开发文档)
说了这么多那为什么会存在调用错api呢?
原因很简单因为微信公共号存在用户关注微信公共号,但是微信开放平台是跟网页进行关联就不存在关注公共号这个说法,所以如果在网页端应用调用公共号关注获取用户的api 必然会出现40001的错误就是不存在或者提示你的token有误。

php 微信登录 公众号 获取用户信息 微信网页授权的更多相关文章

  1. C# 脚本代码自动登录淘宝获取用户信息

    C# 脚本代码自动登录淘宝获取用户信息   最近遇到的一个需求是如何让程序自动登录淘宝, 获取用户名称等信息. 其实这个利用SS (SpiderStudio的简称) 实现起来非常简单. 十数行代码就可 ...

  2. C#微信公众号开发-高级接口-之网页授权oauth2.0获取用户基本信息(二)

    C#微信公众号开发之网页授权oauth2.0获取用户基本信息(一) 中讲解了如果通过微信授权2.0snsapi_base获取已经关注用户的基本信息,然而很多情况下我们经常需要获取非关注用户的信息,方法 ...

  3. 【微信公众号开发】【13】批量导出公众号所有用户信息到Excel

    前言: 1,一次拉取调用最多拉取10000个关注者的OpenID,当公众号关注者数量超过10000时,可通过填写next_openid的值,从而多次拉取列表的方式来满足需求 2,获取OpenID列表后 ...

  4. 微信小程序维护登录态与获取用户信息

    前言. 微信小程序的运行环境不是在浏览器下运行的.所以不能以cookie来维护登录态.下面我就来说说我根据官方给出的方法来写出的维护登录态的方法吧. 一.登录态维护 官方的文档地址:https://m ...

  5. 微信订阅号里实现oauth授权登录,并获取用户信息 (完整篇)

    摘要 这段时间一直有人问我,订阅号实现的oauth授权登录的问题,之前写的比较简单,很多人不明白.众所周知,微信公众号分订阅号.服务号.企业号:每个号的用途不一样,接口开放程度也不一样.微信还有个扯淡 ...

  6. php,微信公众号,获取用户地理位置 定位 经纬度

    <?php //php插件下载地址: https://files.cnblogs.com/files/fan-bk/jssdk_php.rar //建立一个php文件 require_once ...

  7. 微信公众号获取用户openId How to use cURL to get jSON data and decode the data?

    w http://stackoverflow.com/questions/16700960/how-to-use-curl-to-get-json-data-and-decode-the-data

  8. 关于微信里wx.getUserInfo获取用户信息都是拼音的转成中文方法

    加一个参数:lang:"zh_CN" 就可以了  1.  加在js里面 wx.getUserInfo({ lang:"zh_CN", success: func ...

  9. C#获取用户基本信息一(关注了公众号的用户)

    一.获取Code  假设我们需要网页授权的页面的地址为redirect_uri 需要获取Code的话我们第一步是跳转到授权地址,我们第一步便是获取拼接授权地址 --采用snsapi_base方式 pu ...

随机推荐

  1. twitter oa

    字符串括号匹配有效性: 要求从直接return改成了返回yes or no.需要添加到list后break,然后每次循环之前,boolean要重新初始化. array index报错是什么鬼?算了,脑 ...

  2. [leetcode]692. Top K Frequent Words K个最常见单词

    Given a non-empty list of words, return the k most frequent elements. Your answer should be sorted b ...

  3. jq里面关于disable的用法

    //两种方法设置disabled属性$('#areaSelect').attr("disabled",true);$('#areaSelect').attr("disab ...

  4. 运行PL-SVO(单目)

    代码:https://github.com/rubengooj/pl-svo 1.Prerequisites and dependencies (1)SVO 安装SVO,with ROS:https: ...

  5. go语言中结构struct

    package main; import "fmt" //结构struct //定义Person结构 type Person struct { name string; age i ...

  6. IE6、7下overflow:hidden失效的问题

    问题产生原因: 当父元素的直接子元素或者下级子元素的样式拥有position:relative或者position:absolute属性时,父元素的overflow:hidden属性就会失效. 例如: ...

  7. 阿里巴巴Java开发手册及Java代码规约扫描eclipse插件

    一.github地址: https://github.com/alibaba/p3c 二..eclipse插件的安装 此处示例采用eclipse,版本为 Neon.1 Release RC3 (4.6 ...

  8. PHP 语句和时间函数

    语句 1.分支语句 (1)if例子:$a=9;$b=5;if($a>$b){echo $a."比".$b."大";}else{echo $a." ...

  9. GM Tech 2 works with Hummer Yes or No

    This is about GM Tech 2 scan tool for Hummer troubleshooting and programming. Can I have a cheap Tec ...

  10. springmvc+mybatis 构建cms+UC浏览器文章功能

    最近公司在模拟UC浏览器做一个简单的cms系统,主要针对于企业内部的文章浏览需求,这边考虑用户大多用mobile浏览文章内容,故使用原生的ios和android进行开发,后面也会集成html5. 1. ...