1、Access_token
定时向服务器获取,刷新服务器值。
access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效
1、建议公众号开发者使用中控服务器统一获取和刷新Access_token,其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token覆盖而影响业务;--避免负载均衡多服务器同时获取
2、目前Access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器对外输出的依然是老access_token,此时公众平台后台会保证在刷新短时间内,新老access_token都可用,这保证了第三方业务的平滑过渡;
3、Access_token的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token的接口,这样便于业务服务器在API调用获知access_token已超时的情况下,可以触发access_token的刷新流程
手动刷新失败时最好有自己程序的报警机制,虽然微信也提供了报警机制,方便能及时处理问题
2、每月有10次的重置接口调用次数的机制,可以提高每月接口请求次数
每个帐号每月共10次清零操作机会,清零生效一次即用掉一次机会(10次包括了平台上的清零和调用接口API的清零)。
3、开发前,微信会首先验证服务器的有效性,微信支付服务器为80端口或者443端口
1、填写服务器配置
2、验证服务器地址的有效性
3、依据接口文档实现业务逻辑
微信公众号接口必须以http://或https://开头,分别支持80端口和443端口。
4、Oauth 微信网页授权
1.授权域名需要注意
授权回调域名配置规范为全域名
2.scope的两种方式
1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
3、oauth流程
3.1、生成指定格式带oauth的URI,里面包含redirect_url地址
3.2、用户点击3.1生成的URI后,在重定向的接口中获取到code值,request中获取
3.3、通过code值,去微信服务器获取网页版的access_token,以及openid值,用户刷新access_token值refresh_token
3.4、网页版的access_token的也有有效期,
由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。
3.5、拉取用户信息(需scope为 snsapi_userinfo),第三方进入公众号,不需要关注公众号就可以操作
4、获取微信服务器IP地址
如果公众号基于安全等考虑,需要获知微信服务器的IP地址列表,以便进行相关限制,可以通过该接口获得微信服务器IP地址列表或者IP网段信息。