移动BOS
  • 移动BOS说明
  • 移动表单
    • 移动表单设计
    • 移动表单插件
    • 移动BOS开发技巧
    • 自定义基础资料
    • 移动特性接口
    • 底部菜单插件开发
  • 移动单据
    • 移动单据设计
    • 移动单据列表插件
    • 移动单据插件
    • 单据列表过滤
    • 单据附件
  • 移动单据分录
    • 标准分录详情
    • 自定义分录详情
  • 移动报表
    • 表格式报表
    • 图表式报表
  • 移动打印
    • 云之家打印
    • Android App标签打印
  • 业务审批
    • 移动平台单据启用设置
    • 移动单据编辑
  • 移动开发调试
    • 移动开发如何本地调试
  • 集成
    • 云之家集成
    • 微信集成
    • 第三方平台集成
Powered by GitBook
On this page

Was this helpful?

  1. 集成

第三方平台集成

Previous微信集成

Last updated 6 years ago

Was this helpful?

1. 适用环境:7.x版本(2018年8月10号以后),6.x版本(2018年4月26号以后);2. 路径:cloud后台,系统管理---第三方系统登录授权3. 配置:

如图,所示,填写应用id,名称,以及集成用户(即对应的用户名称);根据上述消息生成授权链接: 参考代码如下:

namespace Kingdee.BOS.Mobile.FormPlugIns
{
    [Description("第三方授权登录")]
    public class TestLoginBySign : AbstractMobilePlugin
    {
        public override void AfterBindData(EventArgs e)
        {
            base.AfterBindData(e);
        }

        public override void AfterButtonClick(Core.DynamicForm.PlugIn.Args.AfterButtonClickEventArgs e)
        {
            base.AfterButtonClick(e);
            if (e.Key.EqualsIgnoreCase("FButton"))
            {
                string acctID = this.View.Model.GetValue("FAcctID").ToString();
                string username = this.View.Model.GetValue("FUserName").ToString();
                string appId = this.View.Model.GetValue("FAppID").ToString();
                string appSecret = this.View.Model.GetValue("FAppSecret").ToString();
                int lcId = 2052;
                //时间戳
                long timestamp = DateTimeFormatUtils.CurrentTimeMillis() / 1000;
                //签名
                string[] arr = new string[] { acctID, username, appId, appSecret, timestamp.ToString() };
                string sign = Kingdee.BOS.Util.SHA1Util.GetSignature(arr);
                //url
                string url = string.Format("http://localhost/k3cloud/mobile/k3cloudForPhone.html?acctid={0}&username={1}&appid={2}&sign={3}&timestamp={4}&lcid={5}&formid=BOS_MOB_ActivityEdit&formtype=mobileform", acctID, username, appId, sign, timestamp, lcId);
                this.View.GetControl("FUrl").SetValue(url);
                this.View.UpdateView("FUrl");
            }
        }
    }
}

如果是java环境没有获得签名的包;也可以自己够家里:
public class SHA1Util
    {
        /// <summary>
        /// SHA1签名
        /// </summary>
        /// <param name="arr"></param>
        /// <returns></returns>
        public static string GetSignature(string[] arr)
        {
            //1. 将数组进行排序
            //2. 将数组拼接成一个字符串进行sha1加密
            Array.Sort(arr, StringComparer.Ordinal);
            var arrString = string.Join("", arr);
            var sha1 = SHA1.Create();
            var sha1Arr = sha1.ComputeHash(Encoding.UTF8.GetBytes(arrString));
            StringBuilder enText = new StringBuilder();
            foreach (var b in sha1Arr)
            {
                enText.AppendFormat("{0:x2}", b);
            }

            return enText.ToString();
        }
    }