微信开发遇到的错误汇总:
1. 错误代码40001
"errcode": 40001,
"errmsg": "invalid credential, access_token is invalid or not latest hint: [iGyDwA0217vr35!]"
这是因为你在某个地方再次去请求了一次access_token导致现在所使用的无效了,或者是这是一个缺字少母的access_token;
解决方式比较简单,再去请求一次就可以了,一定要保证所用的access_token是最近一次请求的.至于怎么保证,有兴趣的道友可以看看我这篇博客:存储access_token
2. 错误代码41001
缺少access_token. 在做创建自定义菜单的时候,一开始是在同一文件里面获取access_token,所以在文件头部写死了
define("ACCESS_TOKEN","8U6GaLhUMJEIX_Ohw2X5WxGZMrfHhJ53WZQPiuU_aqAmouvEwPHm_tTfwXLE78nB4rZVY9WAW9xuH6aIkAElBQfNITKoG45qs26bYugA5weVaSckVeZHpZCpPUHzEGZSXIJjADAEPQ");这是全局变量.
后来写活了,在另一个文件的函数获得access_token,以$access_token接收,
//创建菜单
function createMenu($data){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmpInfo = curl_exec($ch);
if (curl_errno($ch)) {
return curl_error($ch);
}
curl_close($ch);
return $tmpInfo;
}
这是我自己本身的一个问题,$access_token作为一个局部变量是不可以在函数里面使用的,所以传参就好了,
$url="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;将$url作为createMenu($url,$data)的参数就ok.
3.错误代码42001
"errcode": 42001,
"errmsg": "access_token expired hint: [Tji9sA0167rsz5!]"
access_token是有时限的(目前为7200s,也就是2小时),这个错误是access_token超时了,重新获取就是了.
4.Error source: interface call,这是接口请求到达上限的错误,不知道什么原因.我那次就出现这个问题了,我个人觉得是腾讯的问题,我根本就没有用那么多,请求个access_Token而已,最后向腾讯微信公众平台反馈了,现在还没鸟我,第二天就可以使用的了,这应该是个bug......出现了就等第二天吧.
目前微信开发的学习还比较初级,暂记这几个问题.另附微信开发返回码对应表与接口请求上限表:http://www.slovty.cn/source/wxerror.html