微信网页授权接口调用实例解析

工欲善其事必先利其器,想要开始相关操作,首先要鼓捣个公众号,至于公众号怎么注册这里不多说。我们先来配置一个测试账号用于测试微信的相关接口。

首先:登录自己的公众号后选择开发---》开发工具,如图

其次:选择该页面公众平台测试账号,点击进入,如图:

此时我们就获取到了测试账号的appid和appsecret,如图

再次:往下滚动页面,找到测试号二维码,扫描关注,以便下面使用

下面步入正题,来说说自己对微信网页授权的一些愚见

1.经常见到的例子:

- 某个页面在微信中可以打开,但选择在浏览器中打开时会提示请在微信中打开

- 打开某个微信页面会弹出确认登录的页面

2.相关知识点:

- 网页授权接口两种scope的区别介绍

1.snsapi_base仅可以获取用户的openid;是静默授权的

2.snsapi_userinfo同时可以获取用户基本信息;需要用户手动同意

- 网页授权接口调用流程解析图

- scope为snsapi_base值时接口调用实例并获取到openid的值

首先先要添加:授权回调页面域名:
在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名。请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头;

这里我添加的是部署在新浪的SAE项目的网址:

第二步编写PHP代码:

 1 <?php
 2 // 网页授权获取用户openid
 3 $code = $_GET['code'];
 4 $appId = "asdasdfasdfasdfasf";
 5 $appSecret = "asdfadsfasdfadf";
 6 $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appId}&secret={$appSecret}&code={$code}&grant_type=authorization_code";
 7 
 8 $openIdArr = json_decode(getToken($url), true);
 9 
10 //scope为snsapi_base是获取到的openid;
11 echo $openIdArr['openid'];
12 
13 function getToken($url) {
14     $ch = curl_init();
15     curl_setopt($ch, CURLOPT_URL, $url);
16     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
17     curl_setopt($ch, CURLOPT_HEADER, 0);
18     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko)");
19     curl_setopt($ch, CURLOPT_ENCODING, "gzip");//加入gzip解析
20     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
21     $output = curl_exec($ch);
22     curl_close($ch);
23 
24     return $output;
25 }

第三步,将编写的代码部署到新浪SAE,我这里用的git,git的相关命令:

1 git init
2 git remote add sae https://git.sinacloud.com/newapp
4 git add .
6 $ git commit -m"xxx"
8 $ git push sae master:1

第四步,通过自己的微信账号(要关注哦,要不没法接收信息)给自己发送消息
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

链接中的APPID写测试账号的就行,REDIRECT_URI:写自己部署的文件的网址,我这里是新浪SAE的网址:http://xxx.applinzi.com/url-openid.php(url-openid.php就是上面我写代码的文件用git推送到网上的地址),SCOPE:snsapi_base

当微信收到咱们发送的消息时,进入点击收到的链接,就会跳转页面,页面跳转完成后,页面会输出获取到的openid,如果获取不到,请仔细检查上面的操作步骤是否有误。

- scope为snsapi_userinfo值时接口调用实例并获取用户基本信息

操作基本和上面一样,只是把第四步发送的url中的SCOPE替换为snsapi_userinfo

代码:

 1 <?php
 2 // 网页授权获取用户openid
 3 $code = $_GET['code'];
 4 $appId = "asdsadfasdfasdfasdf";
 5 $appSecret = "asdfasdfasdfasdfasdfasdf";
 6 $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid={$appId}&secret={$appSecret}&code={$code}&grant_type=authorization_code";
 7 
 8 $openIdArr = json_decode(getToken($url), true);
 9 
10 $token = $openIdArr['access_token'];
11 $openId = $openIdArr['openid'];
12 
13 $url_userInfo = "https://api.weixin.qq.com/sns/userinfo?access_token={$token}&openid={$openId}&lang=zh_CN";
14 
15 $userInfoArr = (array)json_decode(getToken($url_userInfo));
16 
17 // print_r($userInfoArr);
18 
19 //输出用户的昵称、省份、城市
20 echo $userInfoArr['nickname']."<br/>".$userInfoArr['province']."<br/>".$userInfoArr['city'];
21 
22 
23 function getToken($url) {
24     $ch = curl_init();
25     curl_setopt($ch, CURLOPT_URL, $url);
26     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
27     curl_setopt($ch, CURLOPT_HEADER, 0);
28     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko)");
29     curl_setopt($ch, CURLOPT_ENCODING, "gzip");//加入gzip解析
30     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
31     $output = curl_exec($ch);
32     curl_close($ch);
33 
34     return $output;
35 }

 

转载于:https://www.cnblogs.com/fangfeiyue/p/7417617.html

微信OAuth2网页授权登陆接口,微信OAuth2网页授权登陆接口,在你的网站上放上可以扫码登陆,会不会吸引更多用户去注册,现在你只需要简单的配制一下就可以轻松实现,还不快点拿走,微信扫码登陆接口开发你只要需要把配制文件中的APPid、KEY等修改为你自己中你申请的时的就可以,傻瓜式操作,无论你是技术大神还是刚入门的小白,只需修改一下配制文件,便可帮助你实现各种网站登陆。 使用方法 1. 配置网页授权域名 登录微信公众平台后台,在左侧目录底部找到“开发”-“接口权限”,点击进入并在接口列表中找到“网页授权获取用户基本信息”,点击右侧“修改”,在授权回调域名中填自己的域名,例如 www.abc.com,注意此处是域名,不是网址,所以不带http,也不带/等。 2. 修改参数配置 在左侧目录底部找到“开发”-“基本配置”,找到APPID和APPSECRET两个参数的值,其中APPSECRET的值默认是隐藏的,需要微信扫描验证才得显示。 使用Notepad++等编辑器打开,weixin.class.php文件,修改其中的APPID和APPSECRET参数,并保存。 define('APPID', "111111"); define('APPSECRET', "111111"); 3. 上传代码 将Demo代码上传到上述域名网站目录,比如上传到根目录的oauth2目录,这样,该Demo的访问路径将是 http://www.abc.com/oauth2/index.php 4. 访问体验 将上述目录在微信中打开,就可以体验微信的OAuth2.0网页授权过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值