电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

移动平台第三方系统集成方案V2.0

来源:金蝶云社区作者:金蝶2024-09-238

移动平台第三方系统集成方案V2.0

       最近收到很多客户和伙伴的反馈,希望能够在第三方系统中,集成金蝶云星空的业务审批,例如查看业务审批列表,接受待办消息推送,点击待办消息进行审批等。尤其是在钉钉环境中,对业务审批的集成更为迫切(由于钉钉出入口ip的限制,金蝶公有云环境无法直接接入钉钉)。基于这个考虑,我们推出了移动平台第三方系统集成方案,详细介绍如下:

  1.  接入流程与使用场景,如图所示:

    a、 开发者在金蝶云星空后台进行相关配置,并实现相关的接口;
    b、 客户提交工作流后,待办消息会由金蝶云星空系统,自动推送到指定的接口;
    c 、开发者获得推送的消息后,对消息的处理(如推送到钉钉等);
    d、 客户接收到推送的消息,点击进入开发者设计的中转页面,并通过单点登录的方式进入金蝶云系统进行;

    e、如果不需要接受消息推送,那么只需要实现单点登录即可;

    f、适用版本:8.0 及以上补丁

    g、对应的单据,需要再Administrator登录==》移动平台单据启用设置===》启用移动审批;

    h、Administrator登录==》参数设置==》基础管理===》移动平台==》发送第三方消息==开启

2. 单点登录实现:
    2.1参数设置:
    登录金蝶云星空后台,打开表单-第三方系统登录授权,点击新增,如下图:

    
      点击获取应用ID,按步骤操作,操作完成后,如下图所示,其中 应用名称和密钥可修改;集成用户不需要选择,然后点击保存:


     
 2.2 代码实现:
    开发者需要根据上述应用id,密钥,以及当前登录用户名,来生成单点登录的链接,并在中转页面中进行跳转,c#代码示例如下:

private void GotoCloud()

      {

        string url = GetUrl();  

        this.Response.Redirect(url);

      }

      private string GetUrl()

      {

        //数据中心Id

        string acctId = "5d1af48d463f54"; 

        //用户名

        string username = "db"; 

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

        string appId = "204740_5ecB67CG1oCZW9/JSYQOybwFTMw62omL";

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

        string appSecret = "090de81733b5466cb90bdb2cc6e76b19"; 

        int lcId = 2052; //语言标识 中文:2052,繁体:3067,英文:1033        

        long timestamp = CurrentTimeMillis() / 1000; //时间戳        

        string[] arr = new string[] { acctId, username, appId, appSecret, timestamp.ToString() };

        //签名

        string sign = GetSignature(arr);    

        //base64编码       

        string sign64 = GetBase64String(appId,username,appSecret,sign,timestamp);

        //金蝶云星空后台设置的系统公网地址 

        string serverUrl = "http://172.17.1.121/k3cloud"; 

        //登录成功后打开的表单Id,业务审批列表:Mob_XWfListEdit; 业务审批详情:Mob_DistributionWfBill;

        string formId = "MOB_CoreConsole";

        //移动单据列表则用formtype = "mobilelist"  

        string formType = "mobile"; 

        //单据详情主键,如果打开的是业务审批详情,需要传入的是待办任务id

        string pkId = ""; 

        string url = GetUrl(serverUrl, acctId, lcId, sign64, formId, formType, pkId);

        return url;

      }

 

      private string GetUrl(string serverUrl, string acctId, int lcId, string sign64, string formId, string formType, string pkId)

      { 

        string url = string.Format(@"{0}/xmobile/cloud.html?entryrole=oo&acctid={1}&lcid={2}&sign={3}&formid={4}&formtype={5}&pkid={6}", serverUrl,  acctId, lcId, sign64, formId, formType, pkId);        

        return url;

      }

 

      private string GetBase64String(string appId, string username, string appSecret, string sign, long timestamp)

      {

        //下面json中的参数严格区分大小写,请保持一致

        string signInfo = "{'appId':'" + appId + "','username':'" + System.Web.HttpUtility.UrlEncode(username) +  "','sign':'" + sign + "','timestamp':" + timestamp + "}";      

        byte[] bytes = Encoding.UTF8.GetBytes(signInfo);

        return Convert.ToBase64String(bytes);

      }

         

      private string GetSignature(string[] arr)

      {

        //1. 将数组进行排序

        //2. 将数组拼接成一个字符串进行sha加密

        Array.Sort(arr, StringComparer.Ordinal);

        var arrString = string.Join("", arr);

        var sha = System.Security.Cryptography.SHA256.Create();

        var shaArr = sha.ComputeHash(Encoding.UTF8.Ge

移动平台第三方系统集成方案V2.0

最近收到很多客户和伙伴的反馈,希望能够在第三方系统中,集成金蝶云星空的业务审批,例如查看业务审批列表,接受待办消息推送,...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信