2、微信公众号提供用户请求授权页面URL。
3.当用户点击授权页面URL时,会向服务器发出请求。
4. 服务器询问用户是否同意授权微信公众号(目前暂无此步骤)
5.用户同意(目前还没有这一步)
6、服务器通过回调将CODE传给微信公众号
7.微信公众号获取CODE
8.微信公众号通过CODE请求服务器
9.服务器返回并给出微信公众号
10、微信公众号向服务器请求用户信息(此时没有这一步)
11. 服务器将用户信息发送回微信公众号(目前暂无此步骤)
1)。 用户授权并获取code
在域名(前面配置的回调域名)的根目录下,新建一个文件,命名为.php(你可以选择自己喜欢的名字,修改即可)。 这个php实现的功能也很简单。 它只是更改了 url 上的代码。 只需将参数取出来打印出来,方便我们后续的操作。
.php中的内容如下:
](:无效(0)
](:无效(0)
这段php的主要作用是,用户确认授权登录后,会转入这个地址,并带上code参数(微信生成)。 为了方便起见,我们也可以在这里留一个空白页。 还有其他方法可以获取下面的 url。 上面的代码参数。
请求授权页面如何构建:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
参数说明
必须指定参数
是的
公众号的唯一标识符(这是我们之前申请的)
是的
授权后重定向的回调链接地址(我们之前申请过)
是的
返回类型,请填写code
是的
应用授权范围,(授权页面不弹出,直接跳转,只能获取用户),(弹出授权页面,可以获取昵称,性别,所在地。而且,即使不付费注意,只要用户授权,也可以获取信息)
不

重定向后会带参数。 开发者可以填写a-zA-Z0-9的参数值,最多128字节。 微信会原样返回该值。 我们可以对比一下,防止别人攻击。
#
不
如果直接在微信上打开链接,则不需要填写该参数。在做页面302重定向时,必须包含该参数
应用授权范围:由于只能获取,意义不大,所以我们使用它。
回调地址:填写刚刚上传的.php文件的地址。
参数:任意数字,此处填写123
特别说明:由于授权操作的安全级别较高,在发起授权请求时,微信会定期对授权链接进行强匹配检查。 如果链接参数顺序错误,将无法正常访问授权页面。
构造请求url如下:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx4a22b50d7e897f97&redirect_uri=http%3a%2f%2fad.seewo.com%2foauth.php&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect
这个需要发送到微信,可以使用微信浏览器打开。
点击上面的链接,点击确认登录,跳转到刚刚配置的回调页面,获取微信返回的code参数,进行后续操作。
授权页面如下:
授权后跳转的页面(我们前面配置的):
如果我们还没有打印出php中的代码,这时候我们可以使用右上角按钮中的复制链接来获取链接,如下:
http://ad.seewo.com/oauth2.php?code=0217a07e9c194dbf539c45c266b2dcfZ&state=123
代码说明:
code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。
1)、使用code进行兑换
换取Web授权页面的结构:
参数说明
需要指定参数吗?
是的
公众号唯一标识
是的
官方账号
代码
是的
填写第一步获取到的代码参数

是的
填写为
code:此处填写上一步得到的值。
构建的url如下,在网页中打开链接即可:
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx41cb8dbd827a16e9&secret=d4624c36b6795d1d99dcf0547af5443d&code=00137323023ab55775be09d6d8e75ffA&grant_type=authorization_code
只需在微信客户端点击获取代码的链接即可。 获取和用户信息可以直接在网页上打开。
退货说明
正确时返回的JSON数据包如下:
](:无效(0)
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
](:无效(0)
参数说明
网页授权接口调用凭证。 注意:这与基本支持不同。
接口调用凭证超时时间,单位(秒)
用户刷新
用户唯一标识符
用户授权范围,以逗号(,)分隔
当发生错误时,微信会返回如下JSON数据包(示例为无效Code错误):
{"errcode":40029,"errmsg":"invalid code"}
2)通过以下方式获取用户信息
请求方式:
https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID
参数说明
参数说明
网页授权接口调用凭证。 注意:这与基本支持不同。
用户的唯一标识符
构造 url 如下:
https://api.weixin.qq.com/sns/userinfo?access_token=OezXcEiiBSKSxW0eoylIeABONBTt9gBE6cK3arF_L6aOvwU4ynS5ZxG4r6ZUIJxh7y_ClmPRkYbMeOc_r30LAGB2IEAlCFsQQvfQMJSwHcU6109-6vz603Jho4oZhdns6AOXwoxaWcLujT1RWnC_hQ&openid=oF3PcsnsrMiJzEwalZZbAfWQpxCI
您可以直接在浏览器中执行此操作。

获取到的json格式数据如下:
](:无效(0)
{ "openid":" OPENID", " nickname": NICKNAME, "sex":"1", "province":"PROVINCE" "city":"CITY", "country":"COUNTRY", "headimgurl": "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", "privilege":[ "PRIVILEGE1" "PRIVILEGE2" ], "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }
](:无效(0)
参数说明
用户的唯一标识符
用户昵称
性别
用户的性别。 当值为1时,为男性,当值为2时,为女性,当值为0时,未知。
用户资料填写的省份
城市
普通用户填写个人数据的城市
国家,比如中国就是CN
用户头像,最后一个值代表方形头像尺寸(有0,46,64,96,132值,0代表640*640方形头像),当用户没有头像时此项为空。 如果用户更改头像,则原始头像 URL 将失效。
用户权限信息,json数组,如微信沃卡用户为()
仅当用户将公众号与微信开放平台账号绑定后,才会出现该字段。 详情参见:获取用户个人信息(机制)
当发生错误时,微信会返回JSON数据包如下(示例无效):
{"errcode":40003,"errmsg":" invalid openid "}
值得注意的地方:
用户管理界面中的“获取用户基本信息接口”只能在用户与公众号交互后或用户关注后推送事件后,根据用户获取用户的基本信息。 这个接口,包括微信的其他接口,都需要用户关注公众号才可以调用成功。
网页授权获取用户基本信息也遵循一定的机制。 也就是说,如果开发者需要在多个公众号之间、或者公众号与移动应用之间统一用户账号,则需要先到微信开放平台()绑定公众号,然后再使用该机制来满足上述需求。
机制作用说明:如果一个开发者拥有多个移动应用、网站应用和公众号,通过获取用户的基本信息就可以区分用户的唯一性,因为同一个用户在同一个微信开放下可以访问不同的应用平台(移动应用、网站应用和公众号)都是一样的。
特别说明:由于公众账号及获取的安全级别非常高,因此只能保存在服务器上,不允许传递给客户端。 后续的刷新、获取用户信息等步骤也必须从服务器发起。
扫描二维码登录微信网页:
d) 关注公众号后才能通话成功。 **
网页授权获取用户基本信息也遵循一定的机制。 也就是说,如果开发者需要在多个公众号之间、或者公众号与移动应用之间统一用户账号,则需要先到微信开放平台()绑定公众号,然后再使用该机制来满足上述需求。
机制作用说明:如果一个开发者拥有多个移动应用、网站应用和公众号,通过获取用户的基本信息就可以区分用户的唯一性,因为同一个用户在同一个微信开放下可以访问不同的应用平台(移动应用、网站应用和公众号)都是一样的。
特别说明:由于公众账号及获取的安全级别非常高,因此只能保存在服务器上,不允许传递给客户端。 后续的刷新、获取用户信息等步骤也必须从服务器发起。
扫描二维码登录微信网页:
微信公众号群消息: