金蝶云星空资料(对外)
[星空资料]-轻分析
轻分析-私有云环境设置
轻分析-问题处理
轻分析-文档说明
轻分析-概述
轻分析-移动办公平台
其他移动办公平台
轻分析-集成企业微信
轻分析-集成钉钉
[星空资料]-银企直连
银企平台服务器IP(特征码)变更证明重新注册许可
金蝶EAS Cloud BOS银企平台用户手册
银企平台安装
如何查看银企平台安装包的版本号?
金蝶云网上银行应用指南
[星空资料]-操作手册
智能会计平台-凭证模板设置
金蝶客户工作台操作手册
K2649 金蝶云系统操作手册-费用报销 V1.0
K2651 金蝶云系统操作手册-存货核算 V1.0
K2652 金蝶云系统操作手册-产品成本核算 V1.0
K2602 金蝶云系统操作手册-多组织 V1.0
K2612 金蝶云系统操作手册-报表 V1.0
K2613 金蝶云系统操作手册_固定资产 V1.0
K2614 金蝶云系统操作手册_应付管理 V1.0
K2615 金蝶云系统操作手册_应收管理 V1.0
K2616 金蝶云系统操作手册_出纳管理 V1.0
K2617 金蝶云系统操作手册_智能会计平台 V1.0
K2641 金蝶云系统操作手册-采购管理 V1.0
K2642 金蝶云系统操作手册-销售管理 V1.0
K2643 金蝶云系统操作手册-信用管理 V1.0
K2644 金蝶云系统操作手册-发票管理 V1.0
K2645 金蝶云系统操作手册-库存管理 V1.0
K2646 金蝶云系统操作手册_组织间结算 V1.0
K2611 金蝶云系统操作手册-总账 V1.0
K2647 金蝶云系统操作手册-条码管理 V1.0
K2648 金蝶云系统操作手册-生产管理 V1.0
K2649 金蝶云系统操作手册-委外管理 V1.0
金蝶云系统财务标准操作手册 V1.0
金蝶云系统合并报表操作手册 V1.0
6_对账方案操作手册
合并报表-样式方案设置案例
合并报表-调整、抵消分录设置案例
[星空资料]-账套处理
新建账套
账套备份
[星空资料]-移动端配置
金蝶云APP配置
企微-集成配置
钉钉-集成配置
飞书-集成配置
瑞个尔开发跟踪
瑞格尔_问题跟踪记录表
银企安装
[星空资料]-常见问题
单据基本操作
总账账龄分析表怎样做核销
金蝶云星空中如何设置银行账号显示或者不显示[**]加密符号
本文档使用 MrDoc 发布
-
+
首页
其他移动办公平台
**星空平台轻分析集成移动办公平台配置文档** 轻分析移动轻应用,用于为数据分析、数据斗方和仪表板提供移动端展现能力,支持在多种移动办公平台使用。对于标准产品已经集成的移动办公平台(云之家、企业微信、钉钉),请参考配置文档<https://q.kingdee.com/support/index.html?version=1.0&docId=Tkcaa683n>;对于其他移动办公平台,需以二次开发的方式获取轻分析移动端的H5页面链接,详细教程请阅读本文。 # 配置单点登录规则 ## 添加移动办公平台 轻分析管理员进入轻分析主题管理首页,点击管理---->发布管理---->移动轻应用---->设置---->移动轻应用管理  点击添加移动办公平台  输入移动办公平台ID、用户标识,上传移动办公平台图标后点击确定保存。移动办公平台ID由产品研发团队颁发,获取方式见附录;用户标识与下文第二步获取accessToken的请求参数appUserType的值所对应。  ## 星空新增第三方系统单点登录信息 管理员登录星空,点击系统管理,第三方系统登录授权。  点击新增,获取应用ID,按照提示获取星空应用ID,星空应用密钥,填写应用名称。  # 通过二次开发的方式获取轻分析移动端的H5页面链接 为了在移动办公平台APP上能看到发布到移动轻应用的卡片,需要通过二次开发来获取轻分析移动端的H5页面链接,二次开发的代码部署在客户自己的服务器上。如图所示,在移动办公平台APP上跳转至客户部署二开代码的服务器地址,再重定向到轻分析移动端H5页面链接。  接下来讲述通过二次开发的方法如何调用API接口构建一条单点登录到轻分析移动端H5页面的链接。 ## 获取accessToken接口 1. 服务器地址 https://q.kingdee.com/qing-lightapp/webApi/getAccessToken 1. 请求方式:POST 2. 参数说明 | 参数说明 | 必选 | 类型 | 说明 | |-----------|----|--------|-------------------------------------------------------------------------------------------------------| | appId | 是 | string | 移动办公平台id,由轻分析产品研发团队颁发 | | timestamp | 是 | string | Unix时间戳,单位:秒,形如:1552879016 | | sign | 是 | string | 签名串,除sign外,其他参数均参与签名,签名规则:参数名按字典顺序,把参数值(不含参数名)连接起来,然后md5生成的32位小写字符串,如: | | | | | md5(appId+appSecret+cipher+timestamp),不含加号 | | cipher | 是 | string | 请求业务数据集(json格式数据),是把json数据经过base64加密的字符串,另外,base64密文字符串还需要再进行utf8格式的urlencode处理。注意:参与签名时,需去掉urlencode | 请求业务数据集(json格式数据),是把json数据经过base64加密的字符串,另外,base64密文字符串还需要再进行utf8格式的urlencode处理。注意:参与签名时,需去掉urlencode **注:appId和appSecret获取方式见附录** 1. cipher参数说明(json数据): | 参数说明 | 必选 | 类型 | 说明 | |-------------|----|--------|--------------------------------------| | appUserId | 是 | string | 产品端的用户标识(用户名) | | appUserType | 是 | string | 产品端的用户标识类型(UserName),与appUserId的值相关。 | cipher参数格式: ```json { " appUserId ":"xxxxxxxxxxxx", "appUserType":"UserName" } ``` **注:此cipher参数值(json),需base64加密且密文要经过urlencode处理** 1. 请求示例 ```html POST /qing-lightapp/webApi/getAccessToken HTTP/1.1 Host: [serverUrl] Content-Length: xxx Content-Type: application/x-www-form-urlencoded appId=xxx×tamp=xxx&sign=xxx&cipher=xxx ``` 1. 返回参数说明(json格式数据) 返回值(失败) ```json { "errorCode": "XX", "errorMessage": "XXX" } ``` 返回值(成功) ```json { “data”: { “accessToken”: “xxx” } } ``` **注:accessToken和用户绑定,两个小时有效,每次调用如果当前用户已有accessToken并没过期则自动延期,有效期重新变为2小时。没有则创建新的accessToken。以后每次业务系统访问轻应用,都携带accessToken访问。** ## 构造轻分析移动端H5页面单点登录链接 1. H5页面链接 https://q.kingdee.com/qing-lightapp/index.html?accessToken=xxx&appType=thirdparty 1. 参数说明 | 参数说明 | 必选 | 类型 | 说明 | |-------------|----|--------|---------------------| | accessToken | 是 | string | 登录凭证 | | appType | 是 | string | APP类型,固定为thirdparty | **注:二次开发代码可参考附录** # 附录 ## appId(移动办公平台ID)和appSecret获取方式 云之家联系郑裕侠获取,同时提供星空应用ID、星空应用密钥、产品唯一编码: (1)[第一步中星空新增第三方系统单点登录信息](#_苍穹新增第三方应用单点登录信息)所获取的星空应用ID和星空应用密钥,用于轻分析移动端与星空平台之间的交互; (2)产品唯一编码,用于检验appId是否填写正确。在第一步中添加移动办公平台所在界面,将鼠标移动到第一个红点,当鼠标变为手的形状,按下鼠标左键的同时按下[ctrl]键,下方便会出现产品唯一编码。  ## 二次开发代码例子 ```java @RequestMapping("/login") public void login(HttpServletRequest request, HttpServletResponse response) throws IOException { String serverUrl = "https://q.kingdee.com/qing-lightapp/"; String getAccessTokenUrl = serverUrl + "webApi/getAccessToken"; String appId = "100002"; // 轻分析产品研发团队颁发的移动办公平台ID,根据实际而定 String appSecret = "8a94f5e6-6aa3-47ff-90fc-0f054b7e0346"; // 轻分析产品研发团队颁发的移动办公平台密钥,根据实际而定 String timestamp = String.*valueOf*(System.*currentTimeMillis*() / 1000); String appUserId = "张三"; // 用户名 String appUserType = "UserName"; // 用户标识类型(UserName) JSONObject jsonObject = new JSONObject(); jsonObject.put("appUserId", appUserId); jsonObject.put("appUserType", appUserType); String jsonStr = jsonObject.toJSONString(); String cipher = Base64.*getEncoder*().encodeToString(jsonStr.getBytes()); StringBuilder sb = new StringBuilder(); sb.append(appId).append(appSecret).append(cipher).append(timestamp); String sign = DigestUtils.*md5DigestAsHex*(sb.toString().getBytes()); cipher = URLEncoder.*encode*(cipher, "UTF-8"); Map<String, Object> formMap = new HashMap<>(); formMap.put("cipher", cipher); formMap.put("appId", appId); formMap.put("timestamp", timestamp); formMap.put("sign", sign); String result = HttpRequest.*post*(getAccessTokenUrl) .header("Content-type", "application/x-www-form-urlencoded") .form(formMap) .execute().body(); System.*out*.println(result); JSONObject accessTokenJson = JSON.*parseObject*(result); String accessToken = accessTokenJson.getJSONObject("data").getString("accessToken"); String redirectUrl = serverUrl + "index.html?appType=thirdparty&accessToken=" + accessToken; response.sendRedirect(redirectUrl); } ```
超级管理员
2024年4月23日 11:10
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码