收藏
回答

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

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
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\"}"


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


最后一次编辑于  05-10  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

3 个回答

  • 橘子
    橘子
    05-16

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

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

    05-16
    赞同 1
    回复
  • 是柿子啊
    是柿子啊
    05-10

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



    05-10
    赞同
    回复 2
    • Fish
      Fish
      06-06

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

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

      06-06
      回复
    • 是柿子啊
      是柿子啊
      06-10回复Fish

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

      06-10
      回复
  • 泥巴安
    泥巴安
    05-16

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

    05-16
    赞同
    回复