微信开发过期时间 是分钟_微信开发工具 teken过期时间 - CSDN
  • 微信开发刷新网页code过期

    千次阅读 2019-08-11 21:23:23
    1、用户同意授权,获取code String RequestURL = request.getRequestURL().toString(); String redirecturi = HttpUtil.urlEnCode(domain + rankingList); WXPublicConfig publicConfig = new WXPublicConfig();...

    1、用户同意授权,获取code

    String RequestURL = request.getRequestURL().toString();
    String redirecturi = HttpUtil.urlEnCode(domain + rankingList);
    WXPublicConfig publicConfig = new WXPublicConfig();
    // 授权页面地址
    String requestUrl = publicConfig.getAuthorizeinterface();
    requestUrl = requestUrl.replace("APPID", publicConfig.getAppId()).replace("REDIRECT_URI", redirecturi).replace("SCOPE", publicConfig.getScope()).replace("STATE", publicConfig.getState());
    // 重定向到授权页面
    response.sendRedirect(requestUrl);


    2、通过code,获取openid

    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    // 用户同意授权后,能获取到code
    String code = request.getParameter("code");
    String openId = "";
    if (!redisService.exists(code)){
    	// 用户同意授权
    	if (!"authdeny".equals(code)) {
    		WXPublicConfig publicConfig = new WXPublicConfig();
    		// 获取网页授权access_token
    		WeiXinOAuth2Token weixinOauth2Token = WeiXinOAuth2Util.getOAuth2AccessToken(publicConfig, code);
    		// 网页授权接口访问凭证
    		String accessToken = weixinOauth2Token.getAccessToken();
    		// 用户标识
    		openId = weixinOauth2Token.getOpenId();
    		//缓存openId
    		redisService.setex(code, 60, openId);
    	}
    } else {
    	openId = redisService.get(code);
    }

    3、解决刷新网页code过期

    因为当通过code来获取openid时,code只能使用一次,这里用了一个小技巧来解决刷新网页code过期。当第一次获取到openid时,将openid缓存起来,刷新时会判断,如果openid存在,就不用通过code来获取openid了。当然这两行代码还有值得注意的地方就是缓存的key为code值。

     

     

    展开全文
  • 微信access_token过期问题

    千次阅读 2019-01-08 17:43:03
     WeChatAPIError: invalid credential, ...问题: 公众号网页开发,后台使用node去微信服务器换取access_token,微信token的有效时间为7200s,但是换取的token很短的时间就失效了。 解决: 刚开始以为是代码有问...

     

     WeChatAPIError: invalid credential, access_token is invalid or not latest
     hint: [OwEKuA02878053!]

    问题: 公众号网页开发,后台使用node去微信服务器换取access_token,微信token的有效时间为7200s,但是换取的token很短的时间就失效了。

    解决: 刚开始以为是代码有问题,检查之后发现并没有问题。后来发现原来如果有其他地方重新获取token,那么原来的token将在5分钟之后过期,因为同事使用了同一个公众号获取token,所以我的token很快就失效了。因此同一个公众号的APPID和appsecret在一个工程内只使用同一个接口换取token,然后存储为全局token。

    展开全文
  • 微信开发的人都知道,access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token,我前几天做项目的时候,偶尔会有好多用户的信息获取不到,还有生成二维码报错,打印log才发现,...

    做微信开发的人都知道,access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token,我前几天做项目的时候,偶尔会有好多用户的信息获取不到,还有生成二维码报错,打印log才发现,access_token已经失效,但access_token的有效期是7200S也就是两个小时,但我的token失效的时候才30分钟左右,其他地方也没有单独调用获取token的接口,让人匪夷所思。

    实在没有办法了,只能用一个迂回的招,就是调用微信一个没有次数限制的接口,把access_token传过去,接受返回值判断token的有效性。



    首先是判断token的有效期 

    <pre name="code" class="csharp">public string isExpires() { 
    string sqlStr = "select ACCESS_TOKEN,ROW_ID,END_DATE from CD_TOKEN where DELETE_FLAG='N'"; 
    //进行判断 
    string nowTag = getTimestamp();
    //当前时间的秒数 
    DataSet ds=dao.GetDataSet(sqlStr); 
    if (ds.Tables[0].Rows.Count == 1) 
    { 
    if (Convert.ToInt32(ds.Tables[0].Rows[0]["END_DATE"].ToString()) > Convert.ToInt32(nowTag)) 
    { 
    return ds.Tables[0].Rows[0]["ACCESS_TOKEN"].ToString(); 
    } else { 
    return "false"; 
    }
     } 
    return "false"; 
    }


    
    


    然后重点来了,当token没有过期,但已经失效的情况怎么办呢。

    <pre name="code" class="csharp">public string GetNewAccess_token() {
     //判断access-token是否有效?
     string result = access_tokenDao.isExpires(); 
    if (result == "false")//无效 
    { 
    //刷新access_token 
    string token = GetAccess_token().access_token;
    //获取最新的access_token 
    //将新的token存入进数据库 
    string startDate = getTimestamp(); 
    string endDate = (Convert.ToInt32(startDate) + 6000) + ""; 
    Boolean t = access_tokenDao.refreshToken(token, startDate, endDate, "7200"); 
    return token; } 
    //调用第三个接口,验证token有效性 
    string url = "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token="+result; 
    string ip = new ApplicationUtil().DealGet(url);
     //Log.Info("err", s); 
    IPtest iptest = new IPtest(); 
    iptest = WXJSONHelper.ParseFromJson<iptest>(ip); 
    string errorcode = iptest.errcode; 
    if (errorcode != null) 
    { 
    string token = GetAccess_token().access_token;
    //获取最新的access_token 
    //将新的token存入进数据库 
    string startDate = getTimestamp(); 
    string endDate = (Convert.ToInt32(startDate) + 6000) + ""; 
    Boolean t = access_tokenDao.refreshToken(token, startDate, endDate, "7200"); 
    return token; 
    }
     return result; 
    }
    


    
    



    差不多就这样吧,第一次写。。。





    展开全文
  • 开发中有遇到这样一个问题,我们一般会将从微信拿到的寿命2个小时的access_token缓存起来,业务里这个缓存的时间是90分钟, 90分钟之后缓存过期,会重新请求新的access_token使旧的accesss_token过期。 理论上缓存...

    开发中有遇到这样一个问题,我们一般会将从微信拿到的寿命2个小时的access_token缓存起来,业务里这个缓存的时间是90分钟,

    90分钟之后缓存过期,会重新请求新的access_token使旧的accesss_token过期。

    理论上缓存寿命短于token的寿命,不会出现从缓存中拿到的token给微信,微信却返回token过期的情况。

    但是在测试过程中却发现这样一个现象。导致这个问题的原因很简单,只不过不是很容易想到是2个环境相互影响的结果。

    原因是这样:

    当我们在测试环境发现缓存过期,拿着同样的appID和secret去换token的时候,在测试环境当然是ok的,但是这个操作完了之后,线上缓存里的token是不是失效了???

    同样的道理,当我们在测试环境测试的时候,线上缓存过期重新请求token也会使测试环境的token失效。

    所以测试的时候还是申请一个测试用平台账号,上了预发布就可以换成线上的appID去操作啦

    转载于:https://www.cnblogs.com/lccsblog/p/11332008.html

    展开全文
  • 微信公众号开发系列-获取微信OpenID

    万次阅读 多人点赞 2015-05-21 22:51:30
    微信开发时候在做消息接口交互的时候需要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID,接收事件推送方式和网页授权获取用户基本信息方式获取。
  • 微信公众平台开发30分钟入门教程

    千次阅读 2016-01-13 09:50:13
    关键字:微信公众平台开发作者:方倍工作室   在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯、及HTTP/XML/CSS/JS等基础。 我们将使用微信公众账号方倍工作室作为讲解...
  • 微信开发文档,进入了以后,我们首先要找到微信的授权,在微信网页开发下有网页授权 点击网页授权后会出现一堆文字,你可能啥都看不懂没关系,跟着我的脚步,摩擦,摩擦 往下面找你会找到一个这个, https://open...
  • 微信公众号开发技术要点

    千次阅读 多人点赞 2019-03-08 09:29:26
    微信公众号开发技术要点 微信公众号开发技术要点 微信公众号及其接口功能介绍 基本概念 公众号开发者模式 代码验证及图示 Open ID与Union ID 基本概念 使用说明 Access_token 基本介绍 注意事项 获取流程 ...
  • C#微信开发

    千次阅读 2017-12-24 10:35:37
    C#开发微信门户及应用教程   作者:伍华聪   C#开发微信门户及应用(1)--开始使用微信接口 6 1、微信账号 6 2、微信菜单定义 7 3、接入微信的链接处理 8 4、使用开发方式创建菜单 14 5、我创建的菜单案例 17 C#...
  • 今天解决了测试提交上来的一个bug,说是公司网站调用的二维码接口没有做超时失效处理,这种情况容易导致用户账号登出后,该二维码还是有效的,当用户扫描支付时还是能够支付成功,但是微信支付成功后...在微信官方给...
  • 一年的时间里,前前后后都在搞微信开发的相关模块,这不前一阵子,公司又开了个新项目,其中有一个就是类似于微信朋友圈的功能(我也不知道为啥要开发微信已有的功能啊,泪奔...),其中包含上传图片、录音、视频等...
  • 上一篇文章《微信文章抓取:微信公众号文章抓取常识之临时链接、永久链接》中介绍了微信临时链接和微信永久链接的情况。那么大家一定会有一个问题:如何让临时链接不再过期?或者说如何把临时链接转换为永久链接。 ...
  • 一些参数的解释说明pre_auth_code :第三方的预授权码,过期时间30分钟,通过第三方appId获取component_verify_ticket:出于安全考虑,在第三方平台创建审核通过后,微信服务器 每隔10分钟会向第三方的消息接收地址推...
  • 第一步:获取 code ... + redirectUri + "&forcelogin=true 第二步:根据 code 获取 access_token、 expires_in、 uid ht
  • 最新在学习微信开发, 如果没有域名的小伙伴也不用担心,可以去 natapp 官网IDE注册一个账号,简单配置下就OK了, 聪明的你一定会的。 获取微信用户 openID 的代码网上有很多,这里我也献上一份供大家参考: &...
  • 企业微信开发之授权登录

    千次阅读 2019-07-14 02:03:24
    以前写过一篇公众号的授权登录...1.网页授权及JS-SDK需要在企业微信上配置可信域名 2.企业微信授权登录里面填写你的可信域名 调用流程为:A) 用户访问第三方服务,第三方服务通过构造OAuth2链接(...
  • 微信开放平台开发系列文章: 微信开放平台开发第三方授权登陆(一):开发前期准备 微信开放平台开发第三方授权登陆(二):PC网页端 微信开放平台开发第三方授权登陆(三):Android客户端 微信开放平台开发第...
  • 微信公众号开发只作参考,不作限制,条条大路通罗马,本文只是实现当前业务的一种方式,需要优化的地方还有很多,共勉。 应系统业务拓展,加入微信公众号模块。微信公众号开发流程如下,本文共分六个部分: 1)...
  • 微信开发之录音文件

    2019-07-09 16:00:05
    一、调用微信录音接口前端 1、获取微信签名 使用ajax去后台获取微信签名 2、微信配置 wx.config({ // beta: true,// 必须这么写,否则wx.invoke调用形式的jsapi会有问题 debug: true, // 开启调试...
  • 微信小程序后台开发详解

    万次阅读 多人点赞 2018-06-18 08:21:53
    微信小程序后台开发 前言 开发环境 开发流程 项目整体结构 接口开发 项目部署 ip映射 Nginx反向代理 gunicorn+super多进程开启服务+进程监控 ssl证书 小程序常用功能 微信支付 生成二维码 推送消息 测试 黑盒...
1 2 3 4 5 ... 20
收藏数 3,543
精华内容 1,417
关键字:

微信开发过期时间 是分钟