IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    解决多个位置存储微信公号api access_token值导致接口返回42001错误

    wwek发表于 2015-08-07 07:39:55
    love 0

    故障现象

    微信服务号发送模版消息失败,生成事件二维码图片也失败

    代码没有任何改动,莫名其妙就这样了

    # 调试过程
    检查后发现如下返回错误
    {     "errcode": 40001,     "errmsg": "invalid credential, access_token is invalid or not latest" }

    {
    “errcode”: 40001,
    “errmsg”: “invalid credential, access_token is invalid or not latest”
    }

    {
    “errcode”: 40001,
    “errmsg”: “invalid credential, access_token is invalid or not latest”
    }
    检查微信所有api相关参数是否正确,检查都是对的
    重新获取新的access_token测试能通过
    一度怀疑是不是缓存有效期是不是出问题了
    过期了应该是下图的样子42001,而不是40001呀
    42001

    {
    “errcode”: 42001,
    “errmsg”: “access_token expired”
    }

    {
    “errcode”: 42001,
    “errmsg”: “access_token expired”
    }
    https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=CM2Dt8rXdcMB5k_In4mGRF6M2jT_NYAakU4RyrHyj1uRXNxdmupGDRhWYA_DSgG_LRgcwXRbsJCVrR5IVBl5rx3jNRyo-T_xPTJ4ZhrjCxc
    # 找到问题
    http://segmentfault.com/q/1010000002998425
    最后一句话点醒了我
    yi5344 说道 access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
    突然想起来,在我们的系统当中有两处独立的微信公众号SDK调用,缓存access_token是独立工作的。
    对于同一个微信公众号来说 access_token 是一把钥匙。
    如果本地access_token多处单独存储和缓存,这样会导致多处都去更新微信api中access_token值,当更新发生的时候这样只有一处是正常的,其他地方本地的access_token就失效了。
    # 解决方法
    对于同一个微信公众账号的  access_token 只能存储在一个地方。
    猜您也喜欢:

    电脑硬件接口的详细图解

    Internet Explorer 9 Beta发布了 ie9 下载

    自制山寨版Sunjar阳光罐头 geek 进行时 【转】

    Google Spanner原理- 全球级的分布式数据库

    2010年5月中的最新暴强状态+语录
    无觅


沪ICP备19023445号-2号
友情链接