分享

C#调用用友U8OpenAPI体验

 quasiceo 2018-09-03

怎么说呢,用友U8的OpenAPI从调用方面来说比U8本身的API方便很多,更适合新接触U8二开的人上手,但是同样U8这款软件的运行效率问题也很严重,OpenAPi的调用方式是先访问U8的OpenAPI网站,然后网站根据appkey和调用方id进行一次转发,所以说OpenAPI不适合数据流量大的二次开发。

为什么要写这篇博文,是因为当时在网上找OpenAPi的资料并没有找到,所以想了想写了一篇这个博文。

第使用OpenAPI的话,二开系统的账号登陆就不用指望去使用Session存了(反正本人是折腾了半天都没成功,貌似原因是http管道通讯变了。),本人的二开系统使用cookie存放账号信息。

接下来进入正题:

调用OpenAPI的准备:

一.在用友开放平台注册账号。

二.申请成为开发者。

三.下载OpenAPI客户端。

四.申请测试账号。

五.U8开放平台配置应用需要调用的接口。

六.配置OpenAPI客户端。

完成准备后就可以开始项目的搭建了。

我这里就放置一个获取U8token的代码吧。

  1. public NewsModel getToken(U8APIModel _u8api)
  2. {
  3. try
  4. {
  5. string API = @"system/token";
  6. string parameter = "from_account=" + _u8api.From_Account + "&app_key=" + _u8api.App_Key + "&app_secret=" + _u8api.App_Secret;
  7. string json = HttpGet(API, parameter);
  8. JObject jo = (JObject)JsonConvert.DeserializeObject(json);
  9. JObject obj = JObject.Parse(json);
  10. var data = obj["token"];

  11. if (State(json))
  12. {
  13. NewsModel nw = new NewsModel
  14. {
  15. State = true
  16. };
  17. nw.News = data["id"].ToString();
  18. return nw;
  19. }
  20. string n = jo["errmsg"].ToString();
  21. NewsModel nm = new NewsModel
  22. {
  23. State = false,
  24. News = n
  25. };
  26. return nm;
  27. }
  28. catch (Exception ex)
  29. {
  30. return new NewsModel
  31. {
  32. State = false,
  33. News = ex.ToString()
  34. };
  35. }
  36. }
gettoken方法是get形式的所以直接放松就可以了,但是需要注意的是OpenAPI的post形式接口是需要json形式的参数的。
想对作者说点什么? 我来说一句
  • Su_victory
    Su_victory: 你好,我是一个刚入行的新人,师父离职了,走之前把项目交给了我,由于项目需要不得不对接用友U8的ERP接口,看到您的这篇文章写得非常好,总结的很到位,但是你这里只有获取Token的C#代码,希望能得到完整的代码,我会将其改写为Java代码,看到后请尽快提供完整的代码,可以发送到邮箱zhwei1228@qq.com,十分感谢!(08-23 10:19#1楼)举报回复
老中医说:男人多吃这个东西,时间延长五倍! 扎马特机械 · 顶新
老中医推荐:让女人床上尖叫的秘笈,1个方法7天硬起来 飞付网络 · 顶新
老中医说:肾虚多吃它,时间延长六倍! 敦福盛 · 顶新
男人肾虚 肾亏咋办?只需吃它 99元老男人必备 一优 · 顶新

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多