最近遇到一个很奇怪的问题,想咨询一下如何排查。
我用微信服务号绑定了域名,之前测试一直是正常的,最近开始出现(qrcode 错误代码(45029):qrcode count out of limit rid: 619256c5-6fc5ad1a-099bc2a9)报错,然后换了一个服务号再配置到网站,网站的微信二维码可以正常合成了。但因为测试次数比较少,应该不存在合成二维码达到上限了。于是,我把服务号绑定到其他网站上,发现这个服务号的二维码合成又正常。
(合成的二维码是用于用户扫码关注公众号登录的,服务号换个网站能合成应该就能排除服务号的问题了吧,现在排查了一遍网站代码,也没发现问题出在哪,想问一下关于用户扫码关注服务号登录网站的二维码合成失败,报错45029的排查方法)
// 绑定二维码 public function qrcode_bang($member) { $rt = weixin_get_access_token(); if ($rt['code']) { $access_token = $rt['msg']; $param = [ 'expire_seconds' => 2592000, 'action_name' => 'QR_LIMIT_STR_SCENE', 'action_info' => array( 'scene' => array( 'scene_str' => $member ? 'bang-'.(int)$member['id'] : 'login-'.md5(SYS_TIME.$_SERVER['HTTP_USER_AGENT']), ), ) ]; $rt = wx_post_https_json_data( 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=' . $access_token, $param ); if (!$rt['code']) { return dr_return_data(0, 'qrcode '.$rt['msg']); } // 更新状态 if ($member) { \Phpcmf\Service::M()->db->table('member_oauth')->where('uid', $member['id'])->where('oauth', 'wechat')->update([ 'access_token' => 1, ]); } $url = 'https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=' . $rt['data']['ticket']; return dr_return_data(1, $url, $param); } else { return dr_return_data(0, 'access_token '.$rt['msg']); } }官方插件里的生成登陆二维码用的 QR_LIMIT_STR_SCENE ,是永久二维码,你可以改为 QR_STR_SCENE 试试。https://developers.weixin.qq.com/doc/offiaccount/Account_Management/Generating_a_Parametric_QR_Code.html