ServiceHelper.cs 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609
  1. using Newtonsoft.Json;
  2. using Newtonsoft.Json.Linq;
  3. using PDF_Office.Properties;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Management;
  9. using System.Net;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. namespace PDF_Office.Helper
  13. {
  14. /// <summary>
  15. /// 注册登陆相关的工具类
  16. /// </summary>
  17. ///
  18. public static class ServiceHelper
  19. {
  20. public static string ALLEmail = "";
  21. public static string ALLPassword = "";
  22. public static string access_token = "";
  23. public static string outemail = "";
  24. public static string outcode = "";
  25. public static string outregister = "";
  26. public static string outlogin = "";
  27. public static string code = "";
  28. public static string okcode = "";
  29. public static string remsg = "";
  30. public static string state = "";
  31. public static string AppCode = "com.brother.pdfreaderprofree.windows";
  32. public static string RequestHost = "http://139.196.160.101:8081";
  33. //验证邮箱
  34. public static string OKemailUrl = "/pdf-office-sso/auth/validUser";
  35. //验证验证码
  36. public static string OKcodeUrl = "/pdf-office-sso/auth/isEmailCodeValid";
  37. //发送验证码
  38. public static string GetcodeUrl = "/pdf-office-sso/auth/getVerifyCode";
  39. //注册邮箱
  40. public static string registerUrl = "/pdf-office-sso/auth/emailRegister";
  41. //登录
  42. public static string LoginUrl = "/pdf-office-sso/auth/emailLogin";
  43. //登出
  44. public static string LogoutUrl = "/pdf-office-sso/user/logout";
  45. //注销
  46. public static string UseroutUrl = "/pdf-office-sso/user/logOffForUser";
  47. //重置密码
  48. public static string RebirthUrl = "/pdf-office-sso/auth/resetPassword";
  49. //获取用户信息
  50. public static string GetUserUrl = "/pdf-office-sso/user/me";
  51. private static string computerInfo;
  52. /// <summary>
  53. /// 电脑品牌信息
  54. /// </summary>
  55. public static string ComputerInfo
  56. {
  57. get {
  58. if (computerInfo == null)
  59. {
  60. computerInfo = GetComputerInfo();
  61. }
  62. return computerInfo;
  63. }
  64. set { computerInfo = value; }
  65. }
  66. private static string systemInfo;
  67. /// <summary>
  68. /// 系统信息
  69. /// </summary>
  70. public static string SystemInfo
  71. {
  72. get
  73. {
  74. if (systemInfo == null)
  75. {
  76. systemInfo = GetSystemInfo();
  77. }
  78. return systemInfo;
  79. }
  80. set { systemInfo = value; }
  81. }
  82. private static string GetSystemInfo()
  83. {
  84. try
  85. {
  86. string s = "";
  87. SelectQuery sq = new SelectQuery("Win32_OperatingSystem");
  88. ManagementObjectSearcher mos = new ManagementObjectSearcher(sq);
  89. ManagementObjectCollection moc = mos.Get();
  90. foreach (ManagementObject mo in moc)
  91. {
  92. s = mo.Properties["Version"].Value.ToString();
  93. }
  94. moc.Dispose();
  95. sq = null;
  96. return s;
  97. }
  98. catch { return ""; }
  99. }
  100. private static string GetComputerInfo()
  101. {
  102. try
  103. {
  104. string s = "";
  105. System.Windows.Controls.TextBox text = new System.Windows.Controls.TextBox();
  106. SelectQuery sq = new SelectQuery("Win32_ComputerSystem");
  107. ManagementObjectSearcher mos = new ManagementObjectSearcher(sq);
  108. ManagementObjectCollection moc = mos.Get();
  109. foreach (ManagementObject mo in moc)
  110. {
  111. s = mo.Properties["Manufacturer"].Value + " " + mo.Properties["Model"].Value;
  112. }
  113. moc.Dispose();
  114. sq = null;
  115. return s;
  116. }
  117. catch { return ""; }
  118. }
  119. //超时同步为20秒
  120. public static String GetUser()
  121. {
  122. HttpWebResponse response = null;
  123. ServicePointManager.DefaultConnectionLimit = 200;
  124. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + GetUserUrl+"");
  125. request.Method = "Get";
  126. request.Headers.Add("Authorization", $"Bearer {Settings.Default.AppProperties.LoginToken}");
  127. request.ContentType = "text/html;charset=UTF-8";
  128. //request.Accept = "application/vnd.api+json;version=1";
  129. request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
  130. request.Timeout = 20000;
  131. request.ServicePoint.Expect100Continue = false;
  132. try
  133. {
  134. response = (HttpWebResponse)request.GetResponse();
  135. using (StreamReader reader = new StreamReader(response.GetResponseStream()))
  136. {
  137. string responseData = reader.ReadToEnd();
  138. Console.WriteLine(responseData);
  139. reader.Close();
  140. JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
  141. if (response != null)
  142. {
  143. response.Close();
  144. }
  145. if (request != null)
  146. {
  147. request.Abort();
  148. }
  149. return jobject["email"].ToObject<string>().ToLower();
  150. }
  151. }
  152. catch
  153. {
  154. return "网络不稳定请重试";
  155. }
  156. }
  157. public static String Ok_email(string intemail,string validType)
  158. {
  159. HttpWebResponse response = null;
  160. ServicePointManager.DefaultConnectionLimit = 200;
  161. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + OKemailUrl);
  162. request.Method = "Post";
  163. request.ContentType = "application/json";
  164. //request.Accept = "application/vnd.api+json;version=1";
  165. request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
  166. request.Timeout = 20000;
  167. request.ServicePoint.Expect100Continue = false;
  168. StringWriter sw = new StringWriter();
  169. using (JsonWriter writer = new JsonTextWriter(sw))
  170. {
  171. writer.WriteStartObject();
  172. writer.WritePropertyName("appId");
  173. writer.WriteValue(16);
  174. writer.WritePropertyName("platformType");
  175. writer.WriteValue(0);
  176. writer.WritePropertyName("username");
  177. writer.WriteValue(intemail);
  178. writer.WritePropertyName("validType");
  179. writer.WriteValue(validType);
  180. writer.WriteEndObject();
  181. }
  182. string postBody = sw.ToString();
  183. using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
  184. {
  185. writer.Write(postBody);
  186. writer.Close();
  187. }
  188. try
  189. {
  190. response = (HttpWebResponse)request.GetResponse();
  191. using (StreamReader reader = new StreamReader(response.GetResponseStream()))
  192. {
  193. string responseData = reader.ReadToEnd();
  194. Console.WriteLine(responseData);
  195. reader.Close();
  196. JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
  197. //outemail = jobject["msg"].ToObject<string>().ToLower();
  198. if (response != null)
  199. {
  200. response.Close();
  201. }
  202. if (request != null)
  203. {
  204. request.Abort();
  205. }
  206. return jobject["msg"].ToObject<string>().ToLower();
  207. }
  208. }
  209. catch
  210. {
  211. return "网络不稳定请重试";
  212. }
  213. }
  214. //⑤报错
  215. public static void Get_code(string action, string email)
  216. {
  217. string post = $"?action={action}&appId=16&receiver={email}&type=0";
  218. HttpWebResponse response = null;
  219. ServicePointManager.DefaultConnectionLimit = 200;
  220. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + GetcodeUrl + post);
  221. request.Method = "Get";
  222. request.ContentType = "text/html;charset=UTF-8";
  223. //request.Accept = "application/vnd.api+json;version=1";
  224. request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
  225. request.Timeout = 20000;
  226. request.ServicePoint.Expect100Continue = false;
  227. try
  228. {
  229. response = (HttpWebResponse)request.GetResponse();
  230. using (StreamReader reader = new StreamReader(response.GetResponseStream()))
  231. {
  232. string responseData = reader.ReadToEnd();
  233. Console.WriteLine(responseData);
  234. reader.Close();
  235. JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
  236. if (response != null)
  237. {
  238. response.Close();
  239. }
  240. if (request != null)
  241. {
  242. request.Abort();
  243. }
  244. }
  245. }
  246. catch
  247. {
  248. }
  249. }
  250. public static String Ok_code(string email, string code, string type)
  251. {
  252. string post = $"?account={email}&code={code}&type={type}&appId=16";
  253. HttpWebResponse response = null;
  254. ServicePointManager.DefaultConnectionLimit = 200;
  255. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + OKcodeUrl + post);
  256. request.Method = "Get";
  257. request.ContentType = "text/html;charset=UTF-8";
  258. //request.Accept = "application/vnd.api+json;version=1";
  259. request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
  260. request.Timeout = 20000;
  261. request.ServicePoint.Expect100Continue = false;
  262. try
  263. {
  264. response = (HttpWebResponse)request.GetResponse();
  265. using (StreamReader reader = new StreamReader(response.GetResponseStream()))
  266. {
  267. string responseData = reader.ReadToEnd();
  268. Console.WriteLine(responseData);
  269. reader.Close();
  270. JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
  271. if (response != null)
  272. {
  273. response.Close();
  274. }
  275. if (request != null)
  276. {
  277. request.Abort();
  278. }
  279. return jobject["msg"].ToObject<string>().ToLower();
  280. }
  281. }
  282. catch
  283. {
  284. return "网络不稳定请重试";
  285. }
  286. }
  287. public static String Register_email(string intemail, string intpassword, string intcode, string uuid)
  288. {
  289. HttpWebResponse response = null;
  290. ServicePointManager.DefaultConnectionLimit = 200;
  291. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + registerUrl);
  292. request.Method = "Post";
  293. request.ContentType = "application/json";
  294. //request.Accept = "application/vnd.api+json;version=1";
  295. request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
  296. request.Timeout = 20000;
  297. request.ServicePoint.Expect100Continue = false;
  298. StringWriter sw = new StringWriter();
  299. using (JsonWriter writer = new JsonTextWriter(sw))
  300. {
  301. writer.WriteStartObject();
  302. writer.WritePropertyName("appId");
  303. writer.WriteValue(16);
  304. writer.WritePropertyName("deviceSign");
  305. writer.WriteValue(uuid);
  306. writer.WritePropertyName("password");
  307. writer.WriteValue(intpassword);
  308. writer.WritePropertyName("platformType");
  309. writer.WriteValue(0);
  310. writer.WritePropertyName("username");
  311. writer.WriteValue(intemail);
  312. writer.WritePropertyName("verifyCode");
  313. writer.WriteValue(intcode);
  314. writer.WriteEndObject();
  315. }
  316. string postBody = sw.ToString();
  317. using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
  318. {
  319. writer.Write(postBody);
  320. writer.Close();
  321. }
  322. try
  323. {
  324. response = (HttpWebResponse)request.GetResponse();
  325. using (StreamReader reader = new StreamReader(response.GetResponseStream()))
  326. {
  327. string responseData = reader.ReadToEnd();
  328. Console.WriteLine(responseData);
  329. reader.Close();
  330. JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
  331. if (response != null)
  332. {
  333. response.Close();
  334. }
  335. if (request != null)
  336. {
  337. request.Abort();
  338. }
  339. if (jobject["msg"].ToObject<string>().ToLower() == "success")
  340. {
  341. access_token = jobject["result"]["access_token"].ToObject<string>().ToLower();
  342. Settings.Default.AppProperties.LoginToken = jobject["result"]["access_token"].ToObject<string>().ToLower();
  343. Settings.Default.Save();
  344. }
  345. return jobject["msg"].ToObject<string>().ToLower();
  346. }
  347. }
  348. catch
  349. {
  350. return "网络不稳定请重试";
  351. }
  352. }
  353. public static String Login(string intemail, string intpassword, string uuid)
  354. {
  355. string postBody = $"?appId=16&deviceSign={uuid}&email={intemail}&password={intpassword}&platformType=0";
  356. HttpWebResponse response = null;
  357. ServicePointManager.DefaultConnectionLimit = 200;
  358. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + LoginUrl + postBody);
  359. request.Method = "Post";
  360. request.ContentType = "application/x-www-form-urlencoded";
  361. //request.Accept = "application/vnd.api+json;version=1";
  362. request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
  363. request.Timeout = 20000;
  364. request.ServicePoint.Expect100Continue = false;
  365. try
  366. {
  367. response = (HttpWebResponse)request.GetResponse();
  368. using (StreamReader reader = new StreamReader(response.GetResponseStream()))
  369. {
  370. string responseData = reader.ReadToEnd();
  371. Console.WriteLine(responseData);
  372. reader.Close();
  373. JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
  374. outlogin = jobject["msg"].ToObject<string>().ToLower();
  375. if (response != null)
  376. {
  377. response.Close();
  378. }
  379. if (request != null)
  380. {
  381. request.Abort();
  382. }
  383. if (jobject["msg"].ToObject<string>().ToLower() == "success")
  384. {
  385. access_token = jobject["result"]["access_token"].ToObject<string>().ToLower();
  386. Settings.Default.AppProperties.LoginToken = jobject["result"]["access_token"].ToObject<string>().ToLower();
  387. Settings.Default.Save();
  388. }
  389. return jobject["msg"].ToObject<string>().ToLower();
  390. }
  391. }
  392. catch
  393. {
  394. return "网络不稳定请重试";
  395. }
  396. }
  397. //⑤报错
  398. public static void Logout(string uuid)
  399. {
  400. string postBody = $"?deviceSign={uuid}&appId=16";
  401. HttpWebResponse response = null;
  402. ServicePointManager.DefaultConnectionLimit = 200;
  403. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + LogoutUrl + postBody);
  404. request.Method = "Post";
  405. request.Headers.Add("Authorization", $"Bearer {Settings.Default.AppProperties.LoginToken}");
  406. request.ContentType = "application/x-www-form-urlencoded";
  407. //request.Accept = "application/vnd.api+json;version=1";
  408. request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
  409. request.Timeout = 20000;
  410. request.ServicePoint.Expect100Continue = false;
  411. try
  412. {
  413. response = (HttpWebResponse)request.GetResponse();
  414. using (StreamReader reader = new StreamReader(response.GetResponseStream()))
  415. {
  416. string responseData = reader.ReadToEnd();
  417. Console.WriteLine(responseData);
  418. reader.Close();
  419. JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
  420. if (response != null)
  421. {
  422. response.Close();
  423. }
  424. if (request != null)
  425. {
  426. request.Abort();
  427. }
  428. }
  429. }
  430. catch
  431. {
  432. }
  433. }
  434. public static String Usergout(string code)
  435. {
  436. string postBody = $"?code={code}";
  437. HttpWebResponse response = null;
  438. ServicePointManager.DefaultConnectionLimit = 200;
  439. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + UseroutUrl + postBody);
  440. request.Method = "Post";
  441. request.Headers.Add("Authorization", $"Bearer {Settings.Default.AppProperties.LoginToken}");
  442. request.ContentType = "application/x-www-form-urlencoded";
  443. //request.Accept = "application/vnd.api+json;version=1";
  444. request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
  445. request.Timeout = 20000;
  446. request.ServicePoint.Expect100Continue = false;
  447. try
  448. {
  449. response = (HttpWebResponse)request.GetResponse();
  450. using (StreamReader reader = new StreamReader(response.GetResponseStream()))
  451. {
  452. string responseData = reader.ReadToEnd();
  453. Console.WriteLine(responseData);
  454. reader.Close();
  455. JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
  456. if (response != null)
  457. {
  458. response.Close();
  459. }
  460. if (request != null)
  461. {
  462. request.Abort();
  463. }
  464. return jobject["msg"].ToObject<string>().ToLower();
  465. }
  466. }
  467. catch
  468. {
  469. return "网络不稳定请重试";
  470. }
  471. }
  472. public static String Rebirth(string intemail, string firstpassword, string secondPassword, string intcode)
  473. {
  474. HttpWebResponse response = null;
  475. ServicePointManager.DefaultConnectionLimit = 200;
  476. HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestHost + RebirthUrl);
  477. request.Method = "Post";
  478. request.ContentType = "application/json";
  479. //request.Accept = "application/vnd.api+json;version=1";
  480. request.UserAgent = "Apifox/1.0.0 (https://www.apifox.cn)";
  481. request.Timeout = 20000;
  482. request.ServicePoint.Expect100Continue = false;
  483. StringWriter sw = new StringWriter();
  484. using (JsonWriter writer = new JsonTextWriter(sw))
  485. {
  486. writer.WriteStartObject();
  487. writer.WritePropertyName("account");
  488. writer.WriteValue(intemail);
  489. writer.WritePropertyName("appId");
  490. writer.WriteValue(16);
  491. writer.WritePropertyName("firstPassword");
  492. writer.WriteValue(firstpassword);
  493. writer.WritePropertyName("platformType");
  494. writer.WriteValue(0);
  495. writer.WritePropertyName("secondPassword");
  496. writer.WriteValue(secondPassword);
  497. writer.WritePropertyName("verifyCode");
  498. writer.WriteValue(intcode);
  499. writer.WriteEndObject();
  500. }
  501. string postBody = sw.ToString();
  502. using (StreamWriter writer = new StreamWriter(request.GetRequestStream()))
  503. {
  504. writer.Write(postBody);
  505. writer.Close();
  506. }
  507. try
  508. {
  509. response = (HttpWebResponse)request.GetResponse();
  510. using (StreamReader reader = new StreamReader(response.GetResponseStream()))
  511. {
  512. string responseData = reader.ReadToEnd();
  513. Console.WriteLine(responseData);
  514. reader.Close();
  515. JObject jobject = (JObject)JsonConvert.DeserializeObject(responseData);
  516. if (response != null)
  517. {
  518. response.Close();
  519. }
  520. if (request != null)
  521. {
  522. request.Abort();
  523. }
  524. return jobject["msg"].ToObject<string>().ToLower();
  525. }
  526. }
  527. catch
  528. {
  529. return "网络不稳定请重试";
  530. }
  531. }
  532. }
  533. }