天天看點

金蝶雲如何html5登入,第三方系統單點登入到金蝶雲指南V2

啟用第三方系統登入授權

金蝶雲如何html5登入,第三方系統單點登入到金蝶雲指南V2

2   測試第三方系統單點登陸

使用生成的連結測試是否能正常的單點登入。

金蝶雲如何html5登入,第三方系統單點登入到金蝶雲指南V2

3   在第三方系統中生成簽名授權的URL

【參數格式】:ud={"dbid":"5be178b96562c0","username":"Administrator","appid":"1","signeddata":"804e89bc062fd55cc463617b964530e12b90b540","timestamp":"1545815603",

"lcid":"2052","origintype":"SimPas","entryrole":"","formid":"","formtype":"","pkid":"","otherargs":""}

【參數說明】:

dbid:資料中心的ID;

username:使用者名稱;

appid:應用程式ID,通過Administrator登入資料中心後,在【系統管理】分類的【第三方系統登入授權】功能裡面進行新增維護;(雲之家可以不填由querystring參數決定)

signeddata:參考文章【http://club.kingdee.com/forum.php?mod=viewthread&tid=1026953】;

timestamp:登入時間戳(Unix時間戳,定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數);

lcid(可選):語言ID,中文2052(預設),英文1033,繁體3076;

origintype: XT=雲之家內建(同時要求entryrole=XT);SimPas=簡單通行證內建;

entryrole:驗證權限的入口角色;

formid: 登入後預設打開功能的表單id;

formtype:登入後預設打開功能的格式,目前有單據bill和清單list兩種方式,沒有清單的功能統一為bill;

pkid:formid對應表單的主鍵;formtype為list時忽略,formtype為bill時起作用,如果為空表示新增狀态;

otherargs:作為使用者自定義參數傳入,使用于二開,具體内容和格式由二開人員确定,最終在指定表單的插件中通過GetCustomParameter(FormConst.StartAppArgs)擷取,具體參考【http://club.kingdee.com/forum.php?mod=viewthread&tid=1028839】

.

NET示例代碼如下:

using Kingdee.BOS.Util;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Kingdee.BOS.BusinessEntity.Login;

namespace PassportLogin

{

class Program

{

static void Main(string[] args)

{

int lcId = 2052;

long timestamp = DateTimeFormatUtils.CurrentTimeMillis() / 1000;//時間戳

string dbId = "57b11d0f7a3b1a";//資料中心ID

string usserName = "ly";//使用者名稱

string appId = "SRMLightApp";//第三方系統應用Id

string appSecret = "7d9169bfbdc34e9cbd96069db5e72917";//第三方系統應用秘鑰

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

string sign = Kingdee.BOS.Util.SHA1Util.GetSignature(arr);//簽名

SimplePassportLoginArg arg = new SimplePassportLoginArg();

arg.appid = appId;

arg.dbid = dbId;

arg.lcid = lcId.ToString();

arg.origintype = "SimPas";

arg.signeddata = sign;

arg.timestamp = timestamp.ToString();

arg.username = usserName;

arg.entryrole = string.Empty;

arg.formid = string.Empty;

arg.formtype = string.Empty;

arg.otherargs = string.Empty;

arg.pkid = string.Empty;

string argJosn = Kingdee.BOS.JSON.KDObjectConverter.SerializeObject(arg);//json格式

string argJsonBase64 = System.Text.UTF8Encoding.UTF8.GetBytes(argJosn).ToBase64();//base64編碼

string silverlightUrl = "http://localhost/K3Cloud/Silverlight/IndexSL.aspx?ud=" + argJsonBase64;// Silverlight入口連結

string html5Url = "http://localhost/K3Cloud/html5/IndexSL.aspx?ud=" + argJsonBase64;// html5入口連結

Console.WriteLine(silverlightUrl);

Console.WriteLine(html5Url);

Console.ReadLine();

}

}

}

中文名的進不去隻到登入界面,請配置

common.config配置   

4   從第三方系統登出使用者

接口位址:http://ip/K3Cloud/Kingdee.BOS.ServiceFacade.ServicesStub.User.UserService.LogoutByOtherSystem.common.kdsvc

請求類型:post

參數

參數名稱:ap0

參數值:{"AcctID":"5ab22542230aaf","AppId":"hr","Username":"txt","SignedData":"4cdde33b74d55c328291a24f299cb745a50621bc","Timestamp":1525413177}

AcctID:資料中心ID

Username:為要登出的使用者名稱

AppId:應用ID

SignedData:簽名資料,算法同上

Timestamp:時間戳

金蝶雲如何html5登入,第三方系統單點登入到金蝶雲指南V2

5、知識擴充連結

V1版本內建:https://vip.kingdee.com/article/1245利用啟動插件校驗機制實作免登入功能,實作跨系統無縫內建參考如下文章:

http://club.kingdee.com/forum.php?mod=viewthread&tid=1332377