微信推送模板消息,偶发出现报错errcode

  • 2018-07-30 15:27:04
  • 栏目:CLARK
  • 1681 次浏览

微信模板推送消息,是用来给用户通知一些业务消息的,但是有时候也用它作为批量消息,下发给用户:

批量下发这个动作官方是不建议这样的,还是尽量少操作

在操作过程中,比如说下发1万条相同的消息,通过循环执行之后,查询日志,发现了问题:

成功率特别低,而且大部分推送报错:errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint


接下来就是头疼的排查问题过程:

一、首先按照回执信息,提示意思是说我的access_token已经失效了。

那好,我就重新生成一个最新token,继续批量执行了一遍,不过还是报错

这次的报错是比较有规律的,成功一个,然后错误十几个,再成功一个,这样循环。

那么基本可以排除我的access_token问题了,因为有成功,有失败,而且使用的都是同一个token


二、那么,第二个猜想就是推送接口是不是有频率限制

从原来的循环执行,改写为1秒钟执行一条推送,但是依然会遇到间隔失败的情况

继续去看了看官方文档,对于模板推送的频率说明上是说:没有限制的

综上,可以排除官方频率限制了


三、加入随机字符串,来填充内容

第三猜想是觉得一模一样的内容批量推送,会不会被官方认为滥用借口,采取限流?

然后给推送内容加入了一个随机字符串的东西,让每一条信息都有一个编码,这样的话,每一条消息都是独一无法的

改写推送流程,发送……

查看日志,成功了!


解决办法如下:

给推送模板的内容里面,加入一个随机字符串即可,例如这个函数:

uniqid();

这样的话,不管什么频率的请求,都是百分百成功的!

注意:慎用该功能,如果被大量用户举报,会有封号的风险。

转载请说明出处,本站交流QQ群:648120877

评论