抓取网页url php(微信公众号请求用户网页授权之前_token和普通access的区别)
优采云 发布时间: 2021-09-27 15:06抓取网页url php(微信公众号请求用户网页授权之前_token和普通access的区别)
1、在微信公众号请求用户网页授权前,开发者需要到微信官网“开发-接口权限-Web服务-Web账号-Web授权获取用户基本信息”的配置选项官方平台修改授权回调域名。请注意这里是域名(字符串),不是URL,所以请不要等待协议头;例如需要网页授权的域名为: 配置后,该域名下的网页可以进行OAuth2.0认证。但是,不能进行 OAuth2.0 认证(即不能使用)
2、关于网页授权access_token和普通access_token的区别:我的理解是网页授权access_token没有特别限制(虽然好像是2小时有效)。您可以自由使用;但额外使用的 access_token 是有限的。真的是2小时有效,每天获取access_token是有次数限制的。
因为有次数限制,所以在做的时候,我把获取到的access_token保存在一个文件中,设置为7000(不到官方2小时)秒过期。下次去拿access_token的时候,看看这个设置。是否已到到期时间?如果没有到达。只需获取 access_token 值并直接使用即可。如果过期了,再去拿。再次保存到这个文件;
另外,common access_token 是一个全局共享的值。这是什么意思?例如,您的两个模块都使用 access_token,但您的两个模块都存储单独的 access_token 文件。恭喜你,你被录用了。因为用户每次获取access_token,微信服务器都会缓存并记录最新的access_token的最新值。例如,您的模块 A 将 access_token 更新一次,然后模块 B 将 access_token 更新一次。那么,此时微信服务器缓存并记录B模块获取到的access_token值,然后A模块获取一次access_token。因为刚好在那之后,那两个小时肯定还没到,也就是还没过期,然后自动从access_token保存文件中获取值,
因此,普通的access_token必须放在一个公共的,所有模块调用的地方。这样就避免了上述错误;
好,下面进入正题。先介绍一下微信网页授权的基本流程;
1. 你进入一个页面,这个页面首先判断地址url中是否有code参数;如果有code参数,直接调用如下链接获取access_token:即可获取
可以直接获取openid的值。即完成了网页授权的基本流程,剩下自己程序的操作。
2. 如果这个页面没有code参数,先把url组装到允许用户点击授权的页面。
REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect; 跳转到这个网址得到下面的图片
用户点击确认登录后。该页面将自动重定向到redirect_uri/?code=CODE&state=STATE。这个页面(redirect_uri是你上面自己设置的url页面,默认是用户刚开始进入的第一个页面的url)。
此时,相当于再次进入当前页面。默认会执行第一步判断操作(此时url获取到的code的值),完成基本的授权流程。
getOpenId.php 代码如下
WxPay.Config.php 代码如下
<p>