“会话信息已丢失,请重新登录”错误分析与解决方案

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

“会话信息已丢失,请重新登录”错误分析与解决方案

问题描述:

通过SDK调用金蝶云星空API,程序报错提示“会话信息丢失,请重新登录”。

 

 

原因分析:

客户所使用的第三方系统登录授权信息,在金蝶云星空产品端进行参数校验时,校验没有通过,返回会话信息已丢失,请重新登录的错误信息。

 

解决方案:

1、升级SDK为最新版本

前往OpenAPI网站的SDK中心下载最新版本的SDK>> 前往下载

 

2、检查配置文件

2.1 对比产品的第三方系统登录授权信息

确保配置文件的数据和第三方登录授权信息一一对应并且数据正确,如下图所示。

上传图片

 

//第三方系统登录授权的账套ID

<add key="X-KDApi-AcctID" value="5b3de0*******"/>

//服务Url地址 (私有云和公有云都须配置金蝶云星空产品地址,K3Cloud/结尾)

<add key="X-KDApi-ServerUrl" value="http://bj1-api.kingdee.com/galaxyapi/"/>

//第三方系统登录授权的应用ID

<add key="X-KDApi-AppID" value="202655_6f0vR+lH************************"/>

//第三方系统登录授权的应用密钥

<add key="X-KDApi-AppSec" value="b52d7fae9********************"/>

//第三方系统登录授权的用户

<add key="X-KDApi-UserName" value="webapi"/>

//账套语系,默认2052

    <add key="X-KDApi-LCID" value="2052"/>


特别说明:

补丁版本为PT-146894 [7.7.0.202111]之前

第三方登录授权的集成用户必填某一用户,并且配置文件的X-KDApi-UserName的值也要为该用户。

补丁版本为PT-146894 [7.7.0.202111]及之后

如果勾选允许全部用户登录,则X-KDApi-UserName可以为用户列表的任一用户。

如果没有勾选,则X-KDApi-UserName需要在指定用户登录列表中。

 

 

2.2 检查配置文件是否被正确读取

配置文件是否被正确读取,可以在代码调试时对生成的K3CloudApi对象检查得知。

如果发现数据和配置文件中的数据不符,可能是由于:

①配置文件的存放位置不正确

java语言的sdk8.0.3版本为例,其文件位置读取逻辑为:最优先在项目根目录下查找kdwebapi.properties文件,如果找不到,则到资源文件目录下查找kdwebapi.properties文件。

解决配置文件存放位置问题的方法:将配置文件放到项目根目录下。

②配置文件的字符编码不正确

如果集成用户名称中含有中文名,则配置文件的字符编码必须是utf-8。

如果Java语言的sdk版本为7.9.2,则需要升级到8.0.3版本或以上才可解决该问题。

 

3、查看cloud日志错误信息

3.1 获取cloud日志

3.1.1 私有云客户自有服务器搭建金蝶云星空产品) 获取cloud日志

步骤1:联系客户公司IT人员确认并登录到部署安装金蝶云星空产品的服务器。

步骤2:打开IIS查找日志信息

 

   

鼠标点击K3Cloud节点,右键选中浏览,进入到文件路径中,查看日志信息。

 

 

示例中的文件路径为:D:\Program Files (x86)\Kingdee\K3Cloud\WebSite\App_Data\Log

注意:真实路径以客户环境为准。

 

3.1.2 公有云客户(订阅金蝶云星空)获取cloud日志

运维提单获取云服务近期日志信息

详细操作指南:https://vip.kingdee.com/article/153972738560668928

 

3.2 从日志中查找对应错误信息

3.2.1 根据日志查询WebApi信息

打开日志进行搜索关键字WebApiModule,如果查询到则可以初步判断,用户通过SDK与金蝶云星空产品之间有数据交换,则进一步分析问题。

 

如果查找不到,则有以下可能:

①私有云客户没有开启webapi日志,因此不会记录webapi请求的错误信息。

webapi日志开启方法:https://vip.kingdee.com/knowledge/specialDetail/229961573895771136?category=229963554177453824&id=298122933035956480&productLineId=1

②sdk请求的地址和cloud日志所在的服务器地址不一致。

导致该情况的原因非常多,可能是配置文件的ServerUrl不正确,可能是配置文件存放位置不正确导致没有正确读取,可能是cloud日志的来源服务器不正确等等。

 

3.2.2查找webapi请求返回的错误信息

如果查找到含有ERROR - WebApiModule并且发生时间和请求报错时间一致的信息,则可以根据具体的错误信息定位问题。

 

3.3根据错误信息分析原因和常见的解决办法

3.3.1 Fail to VerifyThirtyPassport:The passport is not exists or disabled

原因分析

客户的第三方登录授权信息不存在或者被禁用了。

解决方案

登录金蝶云星空业务站点管理中心,通过Administrator进入第三方登录授权界面,查看调用API的所使用的第三方登录授权信息是否在下图列表中,并且禁用状态为否。

 

3.3.2 Fail to RestoreSessionByApi:用户:???不存在,请采用其他认证方式登录或者联系管理员!

可能一

原因分析

错误信息中的用户名为?或者乱码时,说明系统读取集成用户错误,如果集成用户名中含有中文字符,则可能是配置文件的字符编码不为utf-8,因此无法正确读取。

解决方案

①更换集成用户名为纯英文名。

如果集成用户名称中含有中文名,则配置文件的字符编码必须是utf-8。

如果Java语言的sdk版本为7.9.2,则需要升级到8.0.3版本或以上。


可能二

原因分析

集成用户在用户列表中不存在。

解决方案

进入用户列表,检查使用的集成用户是否存在,配置文件中的集成用户是否与用户数据中的用户名称一致。

 

可能三

原因分析

集成用户不具备操作单据的许可权限

解决方案

进入用户列表,检查使用的集成用户是否拥有许可权限,如果没有需要设置对应的许可分组。

 

 

3.3.3 Fail to RestoreSessionByApi:时间戳验证失败,请求链接已失效,请重试!

原因分析

第三方登录授权的链接有效时间不正确。

解决方案

检查第三方登录授权配置中的链接有效时间是否为0,如果是,改为默认值10即可。

 

 

3.3.4 Fail to VerifyThirtyPassport:Fail to verify X-KD-Signature(from passport)

原因分析

应用id或应用密钥无法正确解析。

解决方案

检查配置文件的应用id和应用密钥等数据。

 

4、若前三个步骤无法定位并解决问题,请将日志打包或截图给提单处理人员,进一步分析问题。


“会话信息已丢失,请重新登录”错误分析与解决方案

问题描述:通过SDK调用金蝶云星空API,程序报错提示“会话信息丢失,请重新登录”。 原因分析:客户所使用的第三方系统登录授权信息,在金...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息