account.cs 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.AspNetCore.Mvc.Controllers;
  3. using Microsoft.AspNetCore.Mvc.Filters;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Linq;
  7. using System.Text;
  8. using dodohold.core;
  9. using Dataoke;
  10. using System.Text.RegularExpressions;
  11. using Org.BouncyCastle.Ocsp;
  12. using System.Diagnostics;
  13. using TencentCloud.Fmu.V20191213.Models;
  14. using Microsoft.VisualBasic;
  15. using System.Text.Json;
  16. using static System.Runtime.InteropServices.JavaScript.JSType;
  17. using TencentCloud.Cdn.V20180606.Models;
  18. using System.Net;
  19. using TencentCloud.Teo.V20220901.Models;
  20. using MySqlX.XDevAPI;
  21. using Spire.Pdf.Exporting.XPS.Schema;
  22. using COSXML.Network;
  23. using TencentCloud.Wedata.V20210820.Models;
  24. using System.Xml.Linq;
  25. namespace molilian.core
  26. {
  27. public partial class AlimamaPlus
  28. {
  29. /// <summary>
  30. /// 获取可提现余额
  31. /// </summary>
  32. public void GetDrawBalance()
  33. {
  34. DateTime date = DateTime.Now.AddDays(-1);
  35. TkPoolDTO result = new TkPoolDTO();
  36. try
  37. {
  38. string t = $"{date.Convert2UnixTimestamp(true)}";
  39. string dt = date.ToString("yyyy-MM-dd");
  40. string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/settle.account.balance.get.json?" +
  41. $"t={t}&_tb_token_={_tb_token}";
  42. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  43. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  44. .AddHeaders("Cookie", _cookies);
  45. client.Proxy = _proxy;
  46. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  47. var response = client.Request(url);
  48. var body = response.Body();
  49. var root = body.Convert2JsonElement();
  50. int resultCode = root.Read<int>("resultCode", 0);
  51. bool success = root.Read("success", false);
  52. if (!success)
  53. {
  54. new LoggerLibrary("account", "error")
  55. .Info(url, body)
  56. .Save();
  57. throw new Exception(body);
  58. }
  59. var drawBalance = root.PathRead<decimal>("data.totalBalance", 0);
  60. TkPoolCore.UpdateDrawBalance(_accountName, drawBalance);
  61. }
  62. catch (Exception ex) { }
  63. }
  64. public (bool, string) RenewCookie()
  65. {
  66. string cache_key = $"cache:tk_pool:{_accountName}:RenewCookie";
  67. long count = RedisHelper.IncrBy(cache_key);
  68. RedisHelper.Expire(cache_key, 30);
  69. if (count > 1) return (true, "前一个cookie续签正在执行中");
  70. try
  71. {
  72. {
  73. string url = "https://pub.alimama.com/common/getUnionPubContextInfo.json";
  74. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  75. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  76. .AddHeaders("Cookie", _cookies);
  77. client.Proxy = _proxy;
  78. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  79. var response = client.Request(url);
  80. var body = response.Body();
  81. }
  82. {
  83. string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/union.userLoginInfo.get";
  84. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  85. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  86. .AddHeaders("Cookie", _cookies);
  87. client.Proxy = _proxy;
  88. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  89. var response = client.Request(url);
  90. var body = response.Body();
  91. var body2 = body;
  92. }
  93. {
  94. string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/union.login";
  95. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  96. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  97. .AddHeaders("Cookie", _cookies);
  98. client.Proxy = _proxy;
  99. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  100. var response = client.Request(url);
  101. var body = response.Body();
  102. var root = body.Convert2JsonElement();
  103. bool success = root.PathRead<bool>("success", true);
  104. string msgCode = root.PathRead("msgCode", string.Empty);
  105. string msgInfo = root.PathRead("msgInfo", string.Empty);
  106. if (!success)
  107. {
  108. new LoggerLibrary("account", "error")
  109. .Info(url, body)
  110. .Save();
  111. return (false, body);
  112. }
  113. //{"success":false,"msgInfo":"用户淘宝未登录","msgCode":"USER_TB_NOT_LOGIN"}
  114. }
  115. string aso_url;
  116. {
  117. string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/union.auto.signIn.mama.url.get";
  118. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  119. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  120. .AddHeaders("Cookie", _cookies);
  121. client.Proxy = _proxy;
  122. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  123. var response = client.Request(url);
  124. var body = response.Body();
  125. /*
  126. {"success":false,"msgInfo":"用户淘宝未登录","msgCode":"USER_TB_NOT_LOGIN"}
  127. */
  128. var root = body.Convert2JsonElement();
  129. aso_url = root.PathRead("model.url", string.Empty);
  130. bool success = root.Read("success", false);
  131. if (!success)
  132. {
  133. new LoggerLibrary("account", "error")
  134. .Info(url, body)
  135. .Save();
  136. return (false, body);
  137. }
  138. }
  139. {
  140. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  141. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  142. .AddHeaders("Cookie", _cookies);
  143. client.Proxy = _proxy;
  144. //client.AllowAutoRedirect = false;
  145. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  146. var response = client.Request(aso_url);
  147. List<Cookie> cookies_list = response.ResponseMessage.GetCookies();
  148. var body = response.Body();
  149. }
  150. {
  151. string url = "https://pub.alimama.com/common/getUnionPubContextInfo.json";
  152. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  153. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  154. .AddHeaders("Cookie", _cookies);
  155. client.Proxy = _proxy;
  156. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  157. var response = client.Request(url);
  158. var body = response.Body();
  159. }
  160. new DBContext.Table("tk_pool")
  161. .Add("status", 1)
  162. .Add("last_time", DateTime.Now)
  163. .Where("name=@name", new { name = _accountName })
  164. .Update();
  165. _ = TkPoolCore.List(true);
  166. NotifyCore.Notify(new NifyMessage
  167. {
  168. message = $"【淘宝联盟:{_accountName}】cookie 续期",
  169. tags = ["green_circle"]
  170. });
  171. //NotifyCore.AnPushNotify("Cookie更新", $"【淘宝联盟:{_accountName}】cookie 续期");
  172. return (true, string.Empty);
  173. }
  174. catch (Exception ex)
  175. {
  176. new LoggerLibrary("account", "error")
  177. .Info(ex.Message, ex.StackTrace)
  178. .Save();
  179. string message = $"【cookie续期异常】{_accountName}\n\n{ex.Message}\n{ex.StackTrace}";
  180. NotifyCore.Notify(new NifyMessage
  181. {
  182. message = message,
  183. priority = NifyMessagePriority.high,
  184. tags = ["red_circle"]
  185. });
  186. throw;
  187. }
  188. }
  189. }
  190. }