account.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  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. {"invalidKey":null,"info":{"ok":true,"message":null},"data":{"noLogin":true,"ip":"121.206.54.236","loginUrlPrefix":"http://www.alimama.com/member/login.htm?forward=","env":"product"},"ok":true} */
  84. {
  85. string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/union.userLoginInfo.get";
  86. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  87. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  88. .AddHeaders("Cookie", _cookies);
  89. client.Proxy = _proxy;
  90. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  91. var response = client.Request(url);
  92. var body = response.Body();
  93. var body2 = body;
  94. }
  95. {
  96. string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/union.login";
  97. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  98. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  99. .AddHeaders("Cookie", _cookies);
  100. client.Proxy = _proxy;
  101. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  102. var response = client.Request(url);
  103. var body = response.Body();
  104. var root = body.Convert2JsonElement();
  105. /*
  106. {"success":true,"model":{}}
  107. */
  108. bool success = root.PathRead<bool>("success", true);
  109. string msgCode = root.PathRead("msgCode", string.Empty);
  110. string msgInfo = root.PathRead("msgInfo", string.Empty);
  111. if (!success)
  112. {
  113. new LoggerLibrary("account", "error")
  114. .Info(url, body)
  115. .Save();
  116. return (false, body);
  117. }
  118. //{"success":false,"msgInfo":"用户淘宝未登录","msgCode":"USER_TB_NOT_LOGIN"}
  119. }
  120. string aso_url;
  121. {
  122. string url = "https://pub.alimama.com/openapi/param2/1/gateway.unionpub/union.auto.signIn.mama.url.get";
  123. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  124. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  125. .AddHeaders("Cookie", _cookies);
  126. client.Proxy = _proxy;
  127. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  128. var response = client.Request(url);
  129. var body = response.Body();
  130. /*
  131. {"success":false,"msgInfo":"用户淘宝未登录","msgCode":"USER_TB_NOT_LOGIN"}
  132. {"model":{"url":"https://www.alimama.com/aso/tvs?domain=taobao&sign_account=670430e31dbb7459635d7db887fbc39b&sign_time=1717670916&token=64616532303JDaxNfPy83okP3kLScwCkGiuMcyC4Pcyn92UtF465646233393431&target=6874747073JDaxNfPy83okP3kLScwCkGiuMcyC4PcynF6D&defaultLoginURL=https%3A%2F%2Flogin.taobao.com%2Fmember%2Flogin.jhtml%3Ffrom%3Dalimama"},"success":true}
  133. */
  134. var root = body.Convert2JsonElement();
  135. aso_url = root.PathRead("model.url", string.Empty);
  136. bool success = root.Read("success", false);
  137. if (!success)
  138. {
  139. new LoggerLibrary("account", "error")
  140. .Info(url, body)
  141. .Save();
  142. return (false, body);
  143. }
  144. }
  145. {
  146. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  147. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  148. .AddHeaders("Cookie", _cookies);
  149. client.Proxy = _proxy;
  150. //client.AllowAutoRedirect = false;
  151. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  152. var response = client.Request(aso_url);
  153. List<Cookie> cookies_list = response.ResponseMessage.GetCookies();
  154. var body = response.Body();
  155. }
  156. {
  157. string url = "https://pub.alimama.com/common/getUnionPubContextInfo.json";
  158. var client = new WebClientUtility().SetContentType("application/json;charset=utf-8")
  159. .AddHeaders("X-Requested-With", "XMLHttpRequest")
  160. .AddHeaders("Cookie", _cookies);
  161. client.Proxy = _proxy;
  162. if (!string.IsNullOrEmpty(_user_agent)) client.UserAgent = _user_agent;
  163. var response = client.Request(url);
  164. var body = response.Body();
  165. /*
  166. {"invalidKey":null,"info":{"ok":true,"message":null},"ok":true,"data":{"nnormalGradeLevel":3,"mmNick":"tb628735153169@alimama","hasHighCommPerm":1,"ip":"121.206.54.236","avatar":"//img.alicdn.com/bao/uploaded/i3/6000000006221/O1CN01S9dQzd1vpGrjjldrF_!!6000000006221-0-userheaderimgshow.jpg","userType":1,"env":"product","imgUrlPrefix":"//img.alicdn.com/tfscom","memberid":6172912691,"hasPubPermission":"1","newVersion":1}}
  167. */
  168. }
  169. new DBContext.Table("tk_pool")
  170. .Add("status", 1)
  171. .Add("last_time", DateTime.Now)
  172. .Where("name=@name", new { name = _accountName })
  173. .Update();
  174. _ = TkPoolCore.List(true);
  175. NotifyCore.Notify(new NifyMessage
  176. {
  177. message = $"【淘宝联盟:{_accountName}】cookie 续期",
  178. tags = ["green_circle"]
  179. });
  180. //NotifyCore.AnPushNotify("Cookie更新", $"【淘宝联盟:{_accountName}】cookie 续期");
  181. return (true, string.Empty);
  182. }
  183. catch (Exception ex)
  184. {
  185. new LoggerLibrary("account", "error")
  186. .Info(ex.Message, ex.StackTrace)
  187. .Save();
  188. string message = $"【cookie续期异常】{_accountName}\n\n{ex.Message}\n{ex.StackTrace}";
  189. NotifyCore.Notify(new NifyMessage
  190. {
  191. message = message,
  192. priority = NifyMessagePriority.high,
  193. tags = ["red_circle"]
  194. });
  195. return (false, "cookie续期异常");
  196. }
  197. }
  198. }
  199. }