- 当前 业务逻辑
我们现在的发送微信模版消息的逻辑是,在发送模版消息前从缓存中取token,然后发送,当微信返回的状态码为40001时,我们就会刷新当前的token,然后业务再次请求发送短信模版
- 当前bug:
微信返回的是40001,但是用户却收到了两条短信模版,根据日志,一条发送的errorcode为 40001,一条为 0
第一条 返回:"data":"{\"errcode\":40001,\"errmsg\":\"invalid credential, access_token is invalid or not latest hint: [e0800hb19!]\"}
第二条返回:{"data":"{\"errcode\":0,\"errmsg\":\"ok\"}"
- 有哪位能提供一些好的思路或解决方案么?
我们批量推送模板消息的时候也遇到这个问题,推动80条消息,分了8次才推完,大部分都会报40001错,但是重新推送又正常了,并不是access_token真的过期了,但是我们好像没有遇到报40001还能收到的问题,所以我们的解决方案是,当报40001的时候,不管access_token有没有过期,都重新获取一次,然后再次推送,如果报40001用户还能收到,那真就无解了,因为无法判断用户到底有没有收到
access_token频繁失效真是个大坑,不止推送模板消息的接口,其他接口也会出现,然而微信并没有给出明确的说法,唯一的解决方案就是刷新access_token再重新调用接口
这个问题刚入坑真的头大,一上线就懵了,排查了许久。
第一条 返回:"data":"{\"errcode\":40001,\"errmsg\":\"invalid credential, access_token is invalid or not latest hint: [e0800hb19!]\"}=>在这个的时候也会下发通知吗?
借楼!我用同一个access_token调用获取二维码的接口,相同的请求,大部分时候能成功,但有时候会失败,返回40001.
搜索论坛40001能看到好多类似的问题。这是怎么回事呀,官方能给出解答吗?
检查下是哪里有刷新了这个token吗?