initialize(); echo "=== 清除微信AccessToken缓存 ===\n\n"; // 获取小程序配置 $appId = \app\common\service\ConfigService::get('mnp_setting', 'app_id', ''); if (empty($appId)) { echo "✗ 错误: 未配置小程序AppID\n"; echo "请先在后台配置小程序信息\n"; exit(1); } echo "小程序AppID: {$appId}\n"; // 清除缓存 $cacheKey = 'wx_access_token_' . $appId; $oldToken = cache($cacheKey); if ($oldToken) { echo "旧Token: {$oldToken}\n"; cache($cacheKey, null); echo "✓ 已清除缓存的AccessToken\n"; } else { echo "✓ 缓存中没有AccessToken\n"; } // 尝试重新获取 echo "\n=== 尝试重新获取AccessToken ===\n\n"; $appSecret = \app\common\service\ConfigService::get('mnp_setting', 'app_secret', ''); if (empty($appSecret)) { echo "✗ 错误: 未配置小程序AppSecret\n"; exit(1); } $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appId}&secret={$appSecret}"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); echo "HTTP状态码: {$httpCode}\n"; echo "响应内容: {$response}\n\n"; $result = json_decode($response, true); if (isset($result['access_token'])) { echo "✓ AccessToken获取成功!\n"; echo "Token: {$result['access_token']}\n"; echo "有效期: {$result['expires_in']}秒\n"; // 缓存新Token cache($cacheKey, $result['access_token'], 7000); echo "\n✓ 已缓存新的AccessToken\n"; echo "\n=== 操作完成 ===\n"; echo "现在可以重新尝试生成小程序码了\n"; } else { echo "✗ AccessToken获取失败!\n"; if (isset($result['errcode'])) { echo "错误码: {$result['errcode']}\n"; echo "错误信息: {$result['errmsg']}\n\n"; // 常见错误提示 switch ($result['errcode']) { case 40013: echo "提示: AppID无效,请检查配置\n"; break; case 40125: echo "提示: AppSecret无效,请检查配置或重置AppSecret\n"; break; case 40164: echo "提示: IP不在白名单中,请在微信公众平台添加服务器IP\n"; break; default: echo "请参考微信官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/usability/PublicErrno.html\n"; } } exit(1); }