【微信开发】2、全局Token获取

Token就是应用服务器访问微信服务器的凭证,微信服务器对这个Token设置一个有效期。

由于Token接口获取有一定的限制,不宜频繁获取,Token在一段时间内也有效,也没有必要不停的获取。

按照官方文档建议,业务服务器保存到本地,有效期之前,各个业务模块本地获取即可。

一、官方文档

http GET方法获取

http请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
 
 
JSON返回两个数据,token和有效期,expires_in的单位是s
{"access_token":"ACCESS_TOKEN","expires_in":7200}
 

二、代码实现

这个还是比较简单,本地封装token获取函数,先判断本地Token是否有效

有效则直接返回本地保存Token;否则使用httpget方法获取,并保存token和有效期

所有应用组件均调用该方法获取Token即可,保证一致性。

#获取微信应用Token, use the https GET method
def get_access_token(refresh=False):
    try:
        global token_time,expires_in, access_token 
        #小于两小时,并且不需要强制刷新token
        if (datetime.now() - token_time).seconds < expires_in \
            and not refresh and not access_token == ‘‘:
            #print ‘get_access_token: now access_token is ‘,access_token
            pass
       
        #
        else: 
            debug( ‘get_access_token:Get the access_token,now it is‘,access_token)
            url = wxHost + ‘/cgi-bin/token?grant_type=client_credential&appid=‘ \
                + appid + ‘&secret=‘ + secret
            #更新token和时间戳
            #{"access_token":"ACCESS_TOKEN","expires_in":7200}
            errorcode,responseJson = https_get(url)
            access_token = responseJson.get(‘access_token‘,‘‘)
            expires_in = int(responseJson.get(‘expires_in‘,‘7200‘))
            token_time = datetime.now()
           
        return access_token
           
    except:
        print ‘get_access_token:except.‘
        return ‘access_token:except‘

时间: 2025-01-08 01:49:31

【微信开发】2、全局Token获取的相关文章

转:微信开发之使用java获取签名signature(贴源码,附工程)

微信开发之使用java获取签名signature(贴源码,附工程) 标签: 微信signature获取签名 2015-12-29 22:15 6954人阅读 评论(3) 收藏 举报  分类: 微信开发(5)  版权声明:本文为博主原创文章,转载注明出处http://blog.csdn.net/u013142781 目录(?)[+] 一.前言 微信接口调用验证最终需要用到的三个参数noncestr.timestamp.signature: 接下来将会给出获取这三个参数的详细代码 本文的环境ecli

微信开发之网页授权获取用户基本信息

微信官方文档:网页授权获取用户基本信息 具体而言,网页授权流程分为四步:1.引导用户进入授权页面同意授权,获取codehttps://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo

Java微信开发-崔用志-微信开发-java版本

  今天看到一些关于微信开发的知识蛮好的博客,分享给大家,希望对大家有帮助. 微信开发准备(一)--Maven仓库管理新建WEB项目 微信开发准备(二)--springmvc+mybatis项目结构的搭建 微信开发准备(三)--框架以及工具的基本使用 Mybatis工具Generator 微信开发准备(四)--nat123内网地址公网映射实现 Java微信公众平台开发(一)--接入微信公众平台 Java微信公众平台开发(二)--微信服务器post消息体的接收 Java微信公众平台开发(三)--接

用thinkphp进行微信开发的整体设计思考

用thinkphp进行微信开发的整体设计思考 http://www.2cto.com/weixin/201504/388423.html 2015-04-09      0个评论       作者:明之暗夜 收藏    我要投稿 因为项目中很多地方都涉及到微信接口的调用 比如很多前台模块需要用到 后台模块也有少许调用 其他模块也可能会需要调用  为了让他们都能很方便的直接调用 我把他们独立成为一个模块 这个模块包含了基础的微信接口和微信jssdk 具体的设计请参考下面  当然如果有更好的建议可以

微信开发中网页授权access_token与基础支持的access_token异同

问题1:网页授权access_token与分享的jssdk中的access_token一样吗? 答:不一样.网页授权access_token 是一次性的,而基础支持的access_token的是有时间限制的:7200s. 问题2:网页授权access_token与基础支持的access_token不同,那微信分享中的access_token,是不是基础支持的access_token 答:是 网页授权access_token 只能获取到一个微信用户信息,是与微信用户一对一的关系, 而基础支持的ac

C#微信开发之旅(三):AccessToken获取及全局管理

由于AccessToken有效期为2小时,并且接口调用有数量限制,所以开始时选择用WCF做了全局管理(项目中要到AccessToken的地方太多了,支付相关.生成二维码.获取用户信息.菜单操作等等) 下面是AccessToken全局管理的单例类,(原理:通过微信接口获取AccessToken,存储在内存中,当其他项目调用时,会判断是否过期,过期去拿新Token再返回): 1 /// <summary> 2 /// AccessToken类,公众号通过此token 获取相关信息 (单例类) 3

小蚂蚁学习微信公众平台开发(3)--获取token,绑定微信号,自定义菜单,事件响应demo

这个教程的基础篇和提升篇都看完了,总感觉有点隔靴挠痒的感觉,讲的东西我都懂,没有吸收多少新鲜的知识.貌似还没有我这个一年前写的脚本好呢,估计也是照顾新人吧.期待高级篇的讲解,不过现在高级篇估计还在录制当中,所以对微信公众平台开发的学习就先到这里吧. 下面介绍一下我很久以前写的这个脚本.基本上常用的几个功能都有了,access_token的获取,用户的微信号和公司的账号的绑定,查询公司服务器上的资料,自定义表单什么.不过随着水平的提高,现在返回头来看,确实有很多的不足,比较最明显的就是token获

微信开发之分清公众平台和开放平台、公众号全局凭证和网页授权凭证

虽然公司自己的网站和给客户开发的项目中都涉及到了微信开发,自己也写了关于微信开发的两篇文章,但感觉自己对微信开发中的一些概念还是容易混淆,今天浏览了下微信公众平台.微信开放平台的后台和相关文档,算是弄清楚了下面这些东西,至于其他还没弄清楚的,以后想到了再说. 1,微信公众平台(https://mp.weixin.qq.com)和微信开放平台(https://open.weixin.qq.com) “微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台”,登录公众平台账号后,可以看到它有一

使用delphi+intraweb进行微信开发5—准备实现微信API,先从获取AccessToken开始

在前4讲中我们已经使iw开发的应用成功和微信进行了对接,再接下来的章节中我们开始逐一尝试和实现微信的各个API,开始前先来点准备工作. 首先需要明确的是,微信的API都是通过https调用实现的,分为post方法调用和get方法调用.不需要上传数据的采用get方法(例如获取AccessToken),而需要向微信服务器提交数据的采用post方法(例如创建菜单). 微信方法调用均需传递AccessToken(URL参数方式),这个AccessToken不是我们微信接入时使用的Token,这个Acce