收藏
回答

发送模版消息返回40001,但是消息又发送成功了

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小程序 Bug POST https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN 客户端 7.0.4 2.0.0

- 当前 业务逻辑

我们现在的发送微信模版消息的逻辑是,在发送模版消息前从缓存中取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\"}"


- 有哪位能提供一些好的思路或解决方案么?


最后一次编辑于  2019-05-10
回答关注问题邀请回答
收藏

3 个回答

  • 橘子
    橘子
    2019-05-16

    我们批量推送模板消息的时候也遇到这个问题,推动80条消息,分了8次才推完,大部分都会报40001错,但是重新推送又正常了,并不是access_token真的过期了,但是我们好像没有遇到报40001还能收到的问题,所以我们的解决方案是,当报40001的时候,不管access_token有没有过期,都重新获取一次,然后再次推送,如果报40001用户还能收到,那真就无解了,因为无法判断用户到底有没有收到

    access_token频繁失效真是个大坑,不止推送模板消息的接口,其他接口也会出现,然而微信并没有给出明确的说法,唯一的解决方案就是刷新access_token再重新调用接口

    2019-05-16
    有用 2
    回复
  • 泥巴安
    泥巴安
    2019-05-16

    这个问题刚入坑真的头大,一上线就懵了,排查了许久。

    2019-05-16
    有用 1
    回复
  • 是小白啊
    是小白啊
    2019-05-10

    第一条 返回:"data":"{\"errcode\":40001,\"errmsg\":\"invalid credential, access_token is invalid or not latest hint: [e0800hb19!]\"}=>在这个的时候也会下发通知吗?



    2019-05-10
    有用
    回复 3
    • Fish
      Fish
      2019-06-06

      借楼!我用同一个access_token调用获取二维码的接口,相同的请求,大部分时候能成功,但有时候会失败,返回40001.

      搜索论坛40001能看到好多类似的问题。这是怎么回事呀,官方能给出解答吗?

      2019-06-06
      回复
    • 是小白啊
      是小白啊
      2019-06-10回复Fish

      检查下是哪里有刷新了这个token吗?

      2019-06-10
      回复
    • 浩
      2020-05-29
      我也遇到了,我可以确定我没有刷新token,还有一个小时的才过期,可问题就是有那么几个推不成功,这个是为啥????
      2020-05-29
      回复
登录 后发表内容