怎么說呢,用友U8的OpenAPI從調用方面來說比U8本身的API方便很多,更適合新接觸U8二開的人上手,但是同樣U8這款軟件的運行效率問題也很嚴重,OpenAPi的調用方式是先訪問U8的OpenAPI網站,然后網站根據appkey和調用方id進行一次轉發(fā),所以說OpenAPI不適合數據流量大的二次開發(fā)。
為什么要寫這篇博文,是因為當時在網上找OpenAPi的資料并沒有找到,所以想了想寫了一篇這個博文。
第使用OpenAPI的話,二開系統(tǒng)的賬號登陸就不用指望去使用Session存了(反正本人是折騰了半天都沒成功,貌似原因是http管道通訊變了。),本人的二開系統(tǒng)使用cookie存放賬號信息。
接下來進入正題:
調用OpenAPI的準備:
一.在用友開放平臺注冊賬號。
二.申請成為開發(fā)者。
三.下載OpenAPI客戶端。
四.申請測試賬號。
五.U8開放平臺配置應用需要調用的接口。
六.配置OpenAPI客戶端。
完成準備后就可以開始項目的搭建了。
我這里就放置一個獲取U8token的代碼吧。
- public NewsModel getToken(U8APIModel _u8api)
- {
- try
- {
- string API = @"system/token";
- string parameter = "from_account=" + _u8api.From_Account + "&app_key=" + _u8api.App_Key + "&app_secret=" + _u8api.App_Secret;
- string json = HttpGet(API, parameter);
- JObject jo = (JObject)JsonConvert.DeserializeObject(json);
- JObject obj = JObject.Parse(json);
- var data = obj["token"];
- if (State(json))
- {
- NewsModel nw = new NewsModel
- {
- State = true
- };
- nw.News = data["id"].ToString();
- return nw;
- }
- string n = jo["errmsg"].ToString();
- NewsModel nm = new NewsModel
- {
- State = false,
- News = n
- };
- return nm;
- }
- catch (Exception ex)
- {
- return new NewsModel
- {
- State = false,
- News = ex.ToString()
- };
- }
- }
gettoken方法是get形式的所以直接放松就可以了,但是需要注意的是OpenAPI的post形式接口是需要json形式的參數的。




