微信第三方开发 errcode : 40094解决方案

{errcode : 40094 ,errmsg : req id: 40ZR.a0918ns30, invalid component credential}
这个是我遇到的问题网页授权oauth2.0错误信息

我当时思路如下:

1、微信服务器返回给我的授权码code是没有问题的,因为他不是invalid code这个错误

2、accesstoken肯定没问题,因为也没报 invalid accesstoken这个错误

3、微信官网找此错误码,发现居然没有,虽然找到一个一样的错误码40094,但是那个是微信卡卷的跟这个不是一个概念

4、百度,google满世界找这个错误码,发现找到的只有两条类似的,都没解决,但是在里面有人说可能是阿里云服务器IP不是固定的原因导致的

5、问了下我们的阿里云服务器IP是买的固定的

6、实属无奈之下猜想是不是,腾讯跟阿里巴巴竞争封他的IP

至于我为什么会有以上想法完全是因为,这个网页授权有时可以,有时不行,而且毫无规律可言

但不能获取授权token+openid的时候 就会一直出现40094错误

解决办法:最终解决发现问题来源是,缓存服务器的问题即accesstoken问题

  1、至于我为什么没考虑到token过期,因为他始终没出现过token过期的问题

  2、导致token过期的罪魁祸首是,因为我们申请了两个测试公众号第三方用于开发,我们的token都是存储在阿里云OCS缓存里面,将这个token添加到缓存的时候有个key值,因为我用的这个环境跟另外一个环境所配置的key值是一样的,那后来导致的后果就是,谁的后刷新,谁的token就可以用,所以会出现有时可以有时不行,

当我的后刷新token的话那就可以成功访问,当我的先刷新的话我的就不能访问,因为后者替换了前者,所以实际上取出来的token是没有过期的,但是跟这个第三方应用对接不上也就是key!=value,所以不存在token过期的错误,才会出现以上的凭证不对的错误,微信首先验证token是否有效,然后再去根据appid和token进行相应的处理吧,所以我的应用相当于用了一个其他应用有效的token,当然token跟应用对接的原理大伙可以看看网页授权2.0的实现机制,所以最终把另外一个应用的云缓存key值换了,结果现在畅通无阻,整个世界清静了,当然token过期是同事找到的,因为我被他的错误码误导了,导致我排除了token无效的思路

转载于:https://my.oschina.net/honesty/blog/507504

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值