最近遇到一個很奇怪的問題,想咨詢一下如何排查。
我用微信服務(wù)號綁定了域名,之前測試一直是正常的,最近開始出現(xiàn)(qrcode 錯誤代碼(45029):qrcode count out of limit rid: 619256c5-6fc5ad1a-099bc2a9)報錯,然后換了一個服務(wù)號再配置到網(wǎng)站,網(wǎng)站的微信二維碼可以正常合成了。但因為測試次數(shù)比較少,應(yīng)該不存在合成二維碼達(dá)到上限了。于是,我把服務(wù)號綁定到其他網(wǎng)站上,發(fā)現(xiàn)這個服務(wù)號的二維碼合成又正常。
(合成的二維碼是用于用戶掃碼關(guān)注公眾號登錄的,服務(wù)號換個網(wǎng)站能合成應(yīng)該就能排除服務(wù)號的問題了吧,現(xiàn)在排查了一遍網(wǎng)站代碼,也沒發(fā)現(xiàn)問題出在哪,想問一下關(guān)于用戶掃碼關(guān)注服務(wù)號登錄網(wǎng)站的二維碼合成失敗,報錯45029的排查方法)
/dayrui/App/Weixin/Models/User.php
// 綁定二維碼 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']); } // 更新狀態(tài) 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