Ykb_APIServer.cs 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. using ConsoleApp1.Controller.Sql_controller;
  2. using Newtonsoft.Json;
  3. using Newtonsoft.Json.Linq;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace ConsoleApp1.Controller.Ykb_API
  10. {
  11. /// <summary>
  12. /// 易快报api接口调用类
  13. /// </summary>
  14. public class Ykb_APIServer
  15. {
  16. private DateTime dtttime;
  17. private static HttpHepler http = new HttpHepler();
  18. private string token, refreshToken;
  19. private string appKey = "6dc9da42-b1ee-4ba0-971e-8bd122359a1a";//接入账号
  20. private string appSecurity = "655fa5d5-68d8-48ba-b618-c7b4dd6b43a7";//接入密码
  21. private string ID = "gCEbY44UmM4Q00"; //企业ID
  22. /// <summary>
  23. /// 获取地址前缀
  24. /// </summary>
  25. /// <returns></returns>
  26. public string location()
  27. {
  28. string url = "https://app.ekuaibao.com/api/openapi/v2/location?corpId=" + ID;
  29. var str = http.retObject(url);
  30. JObject json = JsonConvert.DeserializeObject<JObject>(str.ToString());
  31. string htps = json["value"].ToString();
  32. return htps;
  33. }
  34. /// <summary>
  35. /// 获取token
  36. /// </summary>
  37. /// <param name="appkey"></param>
  38. /// <param name="appSecurity"></param>
  39. /// <returns>value值</returns>
  40. public string getAccessToken()
  41. {
  42. //string _location = location();
  43. string url = "https://dd2.ekuaibao.com/api/openapi/v1/auth/getAccessToken";
  44. string dictionary = "{\"appKey\"" + ":" + "\"" + appKey + "\"," + "\"appSecurity\"" + ":" + "\"" + appSecurity + "\"}";
  45. var str = http.HttpPost(url, dictionary);
  46. JObject json = JsonConvert.DeserializeObject<JObject>(str.ToString());
  47. refreshToken = json["value"]["refreshToken"].ToString();
  48. token = json["value"]["accessToken"].ToString();
  49. return token;
  50. }
  51. /// <summary>
  52. /// 刷新授权
  53. /// </summary>
  54. /// <param name="accessToken">即将过期的授权码</param>
  55. /// <param name="refreshToken">刷新的授权码</param>
  56. /// <param name="powerCode">商品授权码</param>
  57. /// <returns></returns>
  58. public string refreshTokens(string accessToken, string powerCode = "219904")
  59. {
  60. ///POST 方法 https://app.ekuaibao.com/api/openapi/v2/auth/refreshToken?accessToken=
  61. string url = "https://dd2.ekuaibao.com/api/openapi/v2/auth/refreshToken?accessToken=" + accessToken + "&refreshToken=" + refreshToken + "&" + powerCode;
  62. var str = http.HttpPost(url, null);
  63. JObject json = JsonConvert.DeserializeObject<JObject>(str.ToString());
  64. token = json["value"].ToString();
  65. return token;
  66. }
  67. /// <summary>
  68. /// 超时判断
  69. /// </summary>
  70. /// <param name="ken"></param>
  71. /// <returns></returns>
  72. public string dttoken(string ken = "")
  73. {
  74. string AccessToken = "";
  75. if (dtttime.ToString() == "0001/1/1 0:00:00")
  76. {
  77. dtttime = DateTime.Now;
  78. AccessToken = getAccessToken();
  79. }
  80. if (dtttime.ToString() != "0001/1/1 0:00:00" && (dtttime.AddHours(2) < dtttime))
  81. {
  82. AccessToken = refreshTokens(ken);
  83. }
  84. return AccessToken;
  85. }
  86. /// <summary>
  87. /// 时间戳转换(毫秒级)
  88. /// </summary>
  89. /// <param name="datetime"></param>
  90. /// <returns></returns>
  91. public static long DateTimeToInt(DateTime datetime)
  92. {
  93. return (datetime.ToUniversalTime().Ticks - new DateTime(1970, 1, 1).Ticks) / 10000;
  94. }
  95. #region 根据名称获取自定义档案项
  96. /// <summary>
  97. /// 获取自定义档案项
  98. /// </summary>
  99. /// <param name="accessToken">认证token</param>
  100. /// <param name="start">分页查询的起始序号</param>
  101. /// <param name="count">查询数据条数</param>
  102. /// <returns></returns>
  103. public string dimensions(string accessToken, string Code)
  104. {
  105. string url = "https://dd2.ekuaibao.com/api/openapi/v1/dimensions/getDimensionByCode?accessToken=" + accessToken + "&code=" + Code;
  106. var items = http.retObject(url);
  107. return items.ToString();
  108. }
  109. #endregion
  110. #region 创建自定义档案项
  111. public string InsertDAN(string accesToken, string name,string dimensionId,string code)
  112. {
  113. string url = " https://dd2.ekuaibao.com/api/openapi/v1/dimensions/items?accessToken=" + accesToken;
  114. string dictionary = "{\"dimensionId\":\""+ dimensionId + "\",\"name\":\""+name + "\",\"code\":\""+code + "\",\"parentId\":\"\"}";
  115. var items = http.HttpPost(url, dictionary);
  116. return items;
  117. }
  118. #endregion
  119. #region 判断自定义档案项是否存在
  120. public string setDAN(string accesToken, string code)
  121. {
  122. string url = "https://dd2.ekuaibao.com/api/openapi/v1/dimensions/getDimensionByCode?accessToken=" + accesToken + "&code="+ code;
  123. var items = http.retObject(url);
  124. JObject setYkb = JsonConvert.DeserializeObject<JObject>(items.ToString());
  125. return setYkb["count"].ToString();
  126. }
  127. #endregion
  128. }
  129. }