反馈已提交

网络繁忙

微信集成常见问题

  • 文档创建者:Catqiu
  • 历史版本:12
  • 最近更新:Carly 于 2024-01-02
  • 1. 概述

    本文总结了 FineReport 与微信集成的常见问题及解决方案。

    微信钉钉推送/单点/同步失败解决方案可参考:微信钉钉推送/单点/同步失败日志定位

    2. 微信集成

    2.1 发生错误,错误码为:500

    问题描述:

    前端报错「发生错误,错误码为:500」

    日志报错:errorCode:500,errorMsg:com.fr.plugin.weixin.server.WeiXinTokenMissedException

    排查步骤一:检查网络

    1)前往平台微信管理>应用管理,编辑已存在的应用,保存,看能不能保存上,可以说明网络正常,不行则网络不通,检查网络

    2)同步通讯录看能否获取用户列表,不行说明网络可能有问题

    3)用「管理系统>微信管理>调试工具工具看下基本信息,token能否获取,获取不到的话一般也是网络问题

    4)在报表服务器上ping  qyapi.weixin.qq.com,看能否ping通,或者如果配置了正向代理的话,看下代理服务器是否有问题

    5)检查服务器是否多个网卡,多网卡的话是否每个网卡都能访问到微信服务器

    6)是否是集群环境,是的话,检查每个节点的网络环境

    排查步骤二:配置问题

    微信后台配置的链接有问题,指向的是别的环境的地址链接,或者说配置好链接以后前端微信应用删除重加了,导致后台配置的链接无效

    在「微信管理>应用快捷配置里,选择应用,点击一键配置,重新配置;或者微信管理>应用快捷配置里,生成单点链接以后重新配置到微信应用后台。

    排查步骤三:重启服务器

    若一键配置无效,可采用重启服务器的方式,服务器重启,所有的代码重新执行。

    排查步骤四:手机微信退出重登

    有可能是手机缓存引起的,退出重新登录即可。

    排查步骤五:微信应用名称

    将微信应用名称修改为英文

    2.2 微信应用添加失败

    问题描述:

    微信应用无法添加成功,报错为:网络异常或请确认当前使用的 corpid 和 secret 是否正确。

    原因分析:

    应用信息有误或网络问题。

    排查步骤一:应用信息排查

    1)检查微信应用配置是否正确,可见范围是否为部门,部门下是否有用户。

    2)检查环境是否能添加正常应用,若能正常添加,说明环境没有问题,进行应用信息排查。

    排查步骤二:网络排查

    1)使用微信调试工具,检查能否获取微信企业信息。通常情况下,应用添加不上的时候,应该会返回如下的内容,这个结果表示报表环境调用微信接口,获取不到 token。

    2)远程的报表环境所在服务器,在浏览器中(推荐使用Chrome)输入以下地址:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=微信应用ID&corpsecret=微信应用secret,返回如下图所示信息,代表服务器网络正常,可以获取微信 token 值,排除服务器网络原因。

    3)如果服务器网络正常,而工程访问不到微信,可能的原因如下:

    • 防火墙:检查下是否开启了防火墙,把工程端口限制了(限制了出站访问)。

    • JDK 问题:更换 JDK 版本。

    • 查看报错:若后台有报错  PKIX path building failed,是 ssl 证书问题,重装 JDK 。

    • 代理服务器配置问题。

    4)外接finedb数据库用户没有建表权限,导致特定SQL语句执行异常

    为外接finedb数据库用户添加建表权限,重启工程。

    5)工程配置SSL,使用了自签名证书,会认为微信服务这种信任证书不可信

    建议在正式工程中,不要使用自签名证书,而是购买经过认证的证书。

    2.3 平台同步微信用户失败

    问题描述:

    平台报错同步失败,失败原因:树构建失败,XX部门找不到对应父部门。

    解决方案:

    1)创建的微信应用,可见范围只是根部门下的某个部门,修改应用的可见范围为根部门或使用 tag 标签(tag标签只能够选单个用户,如果勾选了部门是无法同步的)

    2)企业微信私有部署,不想设置可见范围是根部门,也不支持根据 tag 标签修改应用可见范围,可联系帆软技术支持通过二次开发处理

    2.4 企业微信手动匹配清空后无效果

    问题描述:

    做了企业微信集成,手动匹配,先匹配一遍,保存,再选择不选,点立即更新,这个企业微信用户还是能直接用企业微信端,需要删除用户或者禁用之后,才能立即生效,选择不选,之后立即更新还是没办法立即生效。

    原因分析:

    企业微信本身存在缓存。

    解决方案:

    重新登录或者等待一段时间候会更新。

    2.5 微信解析参数值失败

    问题描述:

    微信集成配置单个模板链接,参数值设置如下,推送到移动端打开后获取不到值:

    原因分析:

    参考文档参数值解析的说明:企业微信集成,当参数值为公式时,不应该勾选解析参数值」。

    解决方案:

    取消勾选解析参数值,则会每次移动端访问是自动计算。

    2.6 微信小程序嵌入报表链接被截断

    问题描述:

    微信小程序集成嵌入的报表链接地址被截断。

    原因分析:

    url中 ? 及之后的内容被截断,是微信小程序本身的机制导致的。

    解决方案:

    需要对url进行转码。

    2.7 redirect_uri需使用可信域名

    问题描述:

    微信集成后,移动端访问,提示「redirect_uri需使用可信域名」

    原因分析:

    微信集成时,移动端访问的redirect_uri应当与微信后台(即网页授权和JS-SDK处)的配置一致

    解决方案:

    1)服务器地址中的域名应与网页授权JS-SDK中的域名保持一致

    2)移动端的redirect_uri和网页授权JS-SDK中的域名一致

    3. 微信单点登录

    3.1 单点登录失败显示移动端的登录页面

    原因分析:

    微信管理后台自建应用的应用主页填写的不是单点链接。

    解决方案:

    单点链接的生成参考 4.2.3 节:企业微信集成

    3.2 所有用户都显示登录页面

    原因分析:

    1)平台用户和集成用户都正常添加可查看,可能是匹配方式错误。

    2)平台用户或集成用户里没有用户数据

    解决方案:

    1)参考文档 4.3 节 企业微信集成

    2)同步平台用户或集成用户即可。

    3.3 部分用户显示登录页面

    原因分析:

    1)该用户在平台被禁用。

    2)平台用户或集成用户的数据缺失导致匹配失败。

    解决方案:

    1)开放权限。

    2)重新匹配数据保持一致。

    3.4 显示PC的登录页面

    解决方案:

    安装HTML5移动端展示插件。

    3.5 微信所有用户单点后显示加载失败。

    原因分析:

    微信管理-服务器地址中,以/结尾,FineReport会自动去掉尾部的/,这里主要是会影响生成链接拼接参数和定时调度推送链接的生成,所以这个去掉尾部/的逻辑也不能去掉。

    解决方案:

    去掉/,并保证在去掉/的时候可以正常访问工程,重新生成地址挂到后台应用主页地址。

    3.6 有自己的门户登录页,登录门户账号后会跳转到平台登录页

    问题描述:

    有自己的门户登录页,登录门户账号后会跳转到平台登录页而不是直接访问首页/目录/单张模板。

    原因分析:

    写了门户登录页,却没有放行微信请求,

    解决方案:

    可以抓包定位到问题,并且放行 /weixin/single/login 请求。

    钉钉:/dingtalk/single/login 

    飞书:/feishu/single/login    

    WeLink:/welink/single/login 

    4. 推送微信消息

    4.1 微信推送打开报错定时结果文件不存在

    问题描述:

    定时调度修改后无法保存,会提示任务更新失败,微信推送定时结果链接,在手机端打开报错提示找不到定时结果文件

    原因分析:

    put 请求被禁用。

    解决方案:

    安装 put、delete 请求转换插件。

    4.2 无法同时推送两个及以上钉钉群

    问题描述:

    定时调度推送至钉钉群,当选择的群为多个时,只有排在第一位的群可以正常收到消息,其他群不行。单独设置推送到其中的某一个群,可以正常推送。

    原因分析:

    微信应用的 chart 相关接口权限未开通导致,如下图所示:

    解决方案:

    开启 chart 相关接口权限。

    4.3 定时调度推送微信链接无单点效果

    问题描述:

    定时调度在移动端微信推送的时候,无法直接获取到用户名。

    原因分析:

    推送自定义链接,需要手动在微信页面生成一个链接进行推送,否则不会走单点逻辑。

    解决方案:

    在微信管理-应用快捷配置中手动生成模板的微信链接进行推送。

    4.4 定时调度部分用户无法接收

    问题描述:

    微信部分用户定时调度消息收不到消息

    排查步骤:

    1)用户是否匹配了平台用

    2)用户匹配的平台用户是否在推送的范围内

    3)检查在触发消息推送的时间点,是否有同步通讯录的操作,导致匹配关系更新或更新不及时出现匹配失败

    4.5 微信集成,企业微信能收消息,个人微信收不到

    问题描述:

    信集成各项配置正常的情况下,企业微信可以收消息,关联的个人微信收不到消息

    解决方案:

    登录企业微信,选择我>设置」,选择「新消息通知」,关闭「仅在企业微信中接收消息」即可。

    4.6 Non-existent task result files

    问题描述:

    推送消息到微信,报错「网络请求失败」,日志报错「java.lang.Exception: Non-existent task result files」

    原因分析:

    tomcat7 的中文编码方式默认为 ISO-8859-1,tomcat 8 和 9 的中文编码方式默认为 UTF-8 。

    当工程所使用的的 Tomcat 版本发生变化,且微信推送的模板名称是中文时,会出现该报错

    解决方案:

    保持 Tomcat 的中文编码方式不变即可。

    5. 预览模板

    5.1 微信集成后扫码控件无法使用

    问题描述:

    微信集成单点是成功的,域名通过了校验,文本框点击扫码按钮没反应。有无法扫码的弹窗提示「当前浏览器无法扫描」,但 PC 端和 App 内正常。报错如下图所示:

    原因分析:

    微信集成环境下,要求实现单点登录,域名必须经过校验。域名校验错误,后台校验的是带XX端口的域名,但是实际 H5 进去之后是不带 XX 端口的域名,导致微信集成后文件控件或文本控件扫码无法使用。

    解决方案:

    可参考:微信集成后文件控件&文本控件扫码无法使用

    5.2 超链跳转报错 ERROR UNKNOWEN

    问题描述:

    移动端模板预览时,点击超链跳转子报表,报错:ERROR UNKNOWEN

    原因分析:

    参数过长导致报错

    解决方案:

    取消勾选超链的「继承报表参数」

    附件列表


    主题: 移动端应用
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持