前言:背景是由于需要实时生成小程序二维码,使用接口B。我们需要获取小程序的access_token,但是获取access_token的请求次数是有限制的(一天2000次),为了避免超出这个限制,后台一般做法是使用redis限时(一般小于7200秒)保存。但是发现时不时出现小程序access_token未超时报失效:40001的错误

接口B文档:wxacode.getUnlimited | 微信开放文档

获取access_token接口文档:auth.getAccessToken | 微信开放文档

一、问题原因

后续找到原因,由于笔者是在2个环境下使用小程序接口,并没有做所谓的中控服务器区分。在测试请求小程序access_token时,正式环境的access_token就会在5分钟内失效,导致5分钟后通过access_token请求小程序接口会报失效:40001,反之亦然。

备注:access_token 的存储与更新

  • access_token 的存储至少要保留 512 个字符空间;
  • access_token 的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token 失效;
  • 建议开发者使用中控服务器统一获取和刷新 access_token,其他业务逻辑服务器所使用的 access_token 均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致 access_token 覆盖而影响业务;
  • access_token 的有效期通过返回的 expires_in 来传达,目前是7200秒之内的值,中控服务器需要根据这个有效时间提前去刷新。在刷新过程中,中控服务器可对外继续输出的老 access_token,此时公众平台后台会保证在5分钟内,新老 access_token 都可用,这保证了第三方业务的平滑过渡;
  • access_token 的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新 access_token 的接口,这样便于业务服务器在API调用获知 access_token 已超时的情况下,可以触发 access_token 的刷新流程

二、问题解决

(1)使用中控服务器,说白了就是共用一台服务器的redis来保存缓存。这是最简便可行的方法。

(2)如果无法满足申请中控服务器,则可再申请一个小程序来作为测试使用

小程序access_token未超时报失效:40001的原因相关推荐

  1. 微信小程序使用vant weapp报错

    微信小程序使用vant weapp报错 错误一:构建错误 错误二:["usingComponents"]["van-button"] 未找到 我的安装流程 1. ...

  2. 微信小程序设置请求超时wx.request等,简单易懂!

    微信小程序设置请求超时wx.request等 一.用到的方法: 个人理解,比较粗糙 看不懂可以百度一下具体用法 new Promise:new了一个函数或者方法,可以被Promise.race等方法调 ...

  3. 微信小程序:未找到 app.json 中的定义的 pages “pages/index/index“ 对应的 WXML 文件

    微信小程序:未找到 app.json 中的定义的 pages "pages/index/index" 对应的 WXML 文件 前情:本人在自学微信小程序时,遇到了调用模板出现错误的 ...

  4. 小程序真机调试报错: errMsg“:“hideLoading:fail:toast can‘t be found“?

    小程序真机调试报错: errMsg":"hideLoading:fail:toast can't be found"? 上线小程序后报错,导致toast直接不显示或者一闪 ...

  5. 微信小程序 border设置单边框失效解决办法

    微信小程序 border设置单边框失效解决办法 遇到的问题 解决的方法 总结 遇到的问题 border-right: 1 rpx solid #ccc;border-bottom: 1 rpx sol ...

  6. 导入微信小程序显示未选择环境或未指定环境,解决办法

    导入微信小程序显示未选择环境或未指定环境 如下图所示: 解决办法:重新导入,选择云开发(需删掉以前的导入记录) 1.点击云开发申请通过 2.右键cloudfuncrions, 3.点击同步云函数列表 ...

  7. 小程序插件封装Component报错 Component is not found in path……或 component is not defined

    小程序插件封装Component报错 小白程序猿,小程序在封装插件的时候遇到 Component报错,解决方式. # 提示为Component is not found in path--解决方式:排 ...

  8. mpvue开发微信小程序,分享按钮报错:`Cannot read property 'apply' of null`

    用mpvue开发微信小程序,分享按钮报错:Cannot read property 'apply' of null thirdScriptError Cannot read property 'app ...

  9. 小程序 换行<br/> 失效问题

    小程序中<br/> 换行会失效 处理方式如下 js中 str = 字符串变量 str.replace('<br/>','\r\n'); wxml: <view class ...

最新文章

  1. mongodb配置windows服务启动
  2. 【数据平台】centos下部署anaconda2和pyhs2组件
  3. Tensorflow LSTM时间序列预测的尝试
  4. xml view里control id的生成逻辑
  5. AOP技术研究 再续
  6. SDUT-保留整数 -
  7. BootStrap里面好看的背景色
  8. 愚公移山第一章伪代码
  9. python如何运行整个项目_如何运行django项目
  10. [转]众多OCR软件
  11. weight_decay一般设置为多少_建盏一般多少钱?建阳建盏定价的依据是什么?宋韵建盏为你解析...
  12. 把字符串中的全角数字替换成半角数字 0123456789 转换成 0123456789
  13. 计算机中文速录技能,亚伟中文速录机训教程(6.0版).doc
  14. 会计设计计算机专业前景,会计、英语、艺术设计、土木工程、计算机5个专业毕业生超10万人...
  15. 【博学谷学习记录】超强总结,用心分享 | JavaSE入门基础知识总结
  16. EF_85mm_1.2L_II_USM拆机电路板靓图
  17. 域控制器故障恢复手记
  18. 如何为系统盘集成SATA驱动
  19. 广告费的分摊计提 预提?NO
  20. 实现生成订单30分钟未支付,则自动取消

热门文章

  1. 在梅林系统的路由器中安装使用opkg软件源
  2. sqllocaldb 2016安装
  3. 永磁直驱风力发电系统,MATLAB simiulink,滑模控制,永磁同步电机,直驱式风力发电
  4. (一)创建项目——vue-cli3实例:电商分类网页
  5. 基于Pytorch的可视化工具
  6. 移动App的推送技术
  7. python 购物车总额_python购物车进阶(函数)
  8. 【Codewars】All Inclusive?
  9. 十步学习法(内容摘要)
  10. Allegro Aurora <III>---Crosstalk