微信公众号第三方开发之四回调url中获取授权方的授权信息以及基本信息
来源:互联网 发布:日本转区软件 编辑:程序博客网 时间:2024/04/30 23:54
回顾上一章节将到的授权成功,微信上的提醒标志:
然后微信服务器回调你设定好的回调地址。在附带上授权码和过期时间。那么在里面我们具体怎么来查找获取授权公众号的基本信息呢?
首先官网上提及:
通过授权码和自己接口调用凭据换去授权方的授权信息【其实就是接下来调用公众号各项api的授权凭据token和用来刷新过期凭据的token】。
大致步骤:
1、通过微信附带到回调地址的授权码+第二章提及的【component_access_token】来换取授权信息
2、通过授权公众号的access_token去调用微信api,这期间要注意监测token的有效期
接下来提及的只是参考,具体业务请以自己的需求为准!!
首先获取授权信息,然后查找自己表里是否是以前授权过的,是的话,直接更改标识状态,不是重新插入一条语句。当然接下去的获取授权方的基本信息也是一样的原理。
至于刷新accessToken,原理和前面讲的获取ComponentAccessToken是一致的,只不过这里的区别是,如果没有找到用户记录返回错误信息了。具体代码如下:
privatestaticstringget_auth_access_token()
{
if(wid =="0")
{
var session = System.Web.HttpContext.Current.Session["wid"];
if (session !=null)
{
wid = session.ToString().Trim();
}
return"用户数据丢失,请尝试重新进入!";
}
stringtoken =string.Empty;
string sql =string.Empty;
sql ="select top 1 id, auth_appid, auth_access_token,auth_refresh_token, addtime from [WX_weixinOpen_authInfo] where wx_id='"+ wid +"' order by addtime desc";
DataTable aDt = DaCommon.DbHelperSQL.Query(sql).Tables[0];
if(aDt.Rows.Count > 0)
{
DateTime time =Convert.ToDateTime(aDt.Rows[0]["addtime"]);
token = aDt.Rows[0]["auth_access_token"].ToString();
string auth_appid = aDt.Rows[0]["auth_appid"].ToString();
string refreshToken=aDt.Rows[0]["auth_refresh_token"].ToString();
if (time <DateTime.Now)//过期了重新获取
{
ResponseAuthorizerToken atoken=InterfaceApi.Refresh_authorizer_token(Golbal_Component_accessToken,auth_appid, refreshToken);
token = atoken.authorizer_access_token;
time=DateTime.Now.AddSeconds(atoken.expires_in -1800);//重新设定时间
sql ="update[WX_weixinOpen_authInfo] set addtime='"+time+"' ";
if (!string.IsNullOrEmpty(token))
{
sql +=", auth_access_token='" + token +"'";
}
if (!string.IsNullOrEmpty(atoken.authorizer_refresh_token))
{
sql +=", auth_refresh_token='" +atoken.authorizer_refresh_token +"'";
}
sql +=" where auth_appid='" +auth_appid +"'";
DaCommon.DbHelperSQL.ExecuteSql(sql);
}
}
returntoken;
}
最终返回的结果如下:
ps::后来测试发现回调地址只能带一个参数,2个以上会被微信砍掉的!!!如下图:
日志观察:
- 微信公众号第三方开发之四回调url中获取授权方的授权信息以及基本信息
- 微信公众号三方平台开发【获取授权方的授权信息以及基本信息】
- 微信第三方授权流程:获取公众信息
- 微信公众号第三方开发之二获取预授权码(pre_auth_code)
- 微信公众号第三方平台开发 授权流程
- 微信公众号第三方开发之三创建一键登录页授权给第三方平台
- 微信公众号授权第三方平台
- 微信第三方平台公众号授权
- 微信第三方平台开发经验总结(五):接收授权方授权请求并保存授权方信息
- 微信第三方平台开发授权1:获取component_verify_ticket
- 微信公众号开发之网页授权获取用户基本信息
- 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台
- 微信公众账号登陆授权开发——5(解决使用官方获获取第三方平台方获取预授权码)
- php开发微信公众号 第三方平台一键绑定(授权)感言
- 微信第三方小程序授权开发之旅
- 微信开放平台之公众号第三方平台授权流程
- 微信开放平台之第三方平台代公众号发起网页授权
- 微信公众平台开发 网页授权获取用户基本信息
- 1042. 字符统计(20)
- HDU-4499 Cannon (DFS)
- uva 274 Calling Circles
- 调整单链表使得奇数位置的元素位于偶数位置元素之前
- isapi_redirect.exe安装失败处理
- 微信公众号第三方开发之四回调url中获取授权方的授权信息以及基本信息
- Linux rpm命令教程
- [递推递归] 集合的划分
- 增量更新——新兴的一种更新方式
- LightOJ - 1414 February 29 (日期模拟)有多少个2月29
- POJ-1724-ROADS(优先队列,邻接表,BFS)
- hdoj 1078 FatMouse and Cheese 【dp】
- java 基本数据类型及自动类型提升
- 用Latex写伪代码