根据需求,我今天完成的是微信网页的授权问题,然后拉用户的一些基本信息。
1.修改网页授权的基本信息。开放微信公众平台。
在这个地方写上要授权的页面的网址。
2.我在这里只测试这个功能,所以直接写了一个测试页面,在待测网站的根目录下创建了一个新的ceshi.html
然后在他的控制器里操作。
1)首先,共享即授权网页的链接要写对
然后是url:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=Wx 44444444444 redirect _ uri=http://www . erdangjiade.com/Admin/Wx/ceshi . html response _ type=code scope=snsapi _ user infostate=1 #微信_redirect
2)使用代码获取access_token
我直接操作被测网页的控制器(即授权)
代码:
$ code=$ _ GET[' code '];dump($ code);$ URL=' https://API . weixin . QQ.com/SNS/oauth 2/access _ token?appid=wxd 1 caae 7 secret=0a 72 c 866233 ab 4 cf 6 f1 ad 6 dcode='。$代码。grant _ type=authorization _ code ';//var _ dump($ URL);$ ResiFo=https _ request($ URL,true);$ userrists=JSON _ decode($ resInfo,true);转储($ userLists);这边可以答应我这边写的$ userLists
然后,如果它是正确的,您可以获得access_token。由于access_token的时效性,可以用refresh_token替换access_token。我没有写那一步,因为我认为没有必要。
如果此处交换有错误,将显示{'errcode' :40029,' errmsg' : '无效代码' }
3)使用openid和access_token获取用户头像昵称等基本信息。
代码:
$ access _ token=$ userrists[' access _ token '];$ OpenID=$ userrists[' OpenID '];$ user click=M(' maiclub _ user click ');if($ UserClick-where(' OpenID=' { $ OpenID } ' ')-find()){//echo 1111;} else { $ urlInfo=' https://API . weixin . QQ.com/SNS/user info?access_token='。$access_token。openid='。$ openid$ resltInfo=https _ request($ urlInfo,true);$ userInfo=JSON _ decode($ resltInfo,true);$ UserClick-add($ UserInfo);} dump($ UserInfo);//dump($ access _ token);$ this-display();dump($ UserInfo);你可以把用户的基本信息打印出来,然后放入存储器就可以了。
这里还有一个问题,就是这里使用的一个函数https_request。
他的函数源代码:
函数https_request($url,$ data=null){ $ curl=curl _ init();curl_setopt($curl,CURLOPT_URL,$ URL);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);if(!空($data)){curl_setopt($curl,CURLOPT_POST,1);curl_setopt($curl,CURLOPT _ POSTFIELDS,$ data);}curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$ output=curl _ exec($ curl);curl _ close($ curl);返回$ output}这个应该没问题,就是授权的全部内容。
以上是边肖介绍的微信微信官方账号OAuth2.0网页授权的简要分析,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!