WxPush.mini.cs 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. using BizCom;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.Web.Script.Serialization;
  8. namespace SiteCore
  9. {
  10. public partial class WxPush
  11. {
  12. private static readonly object miniAtObj = new object();
  13. public static string mini_appid = "wx0819ba57901308c0";
  14. public static string mini_appsecret = "d9b31c6be01fc55f082a770a4462ef5c";
  15. static string mini_sendUrl = "https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=";
  16. public static object getMiniAt(HttpHelper http)
  17. {
  18. object cat = WebCache.GetRunCache("miniAt");
  19. if (cat == null)
  20. {
  21. lock (miniAtObj)
  22. {
  23. //http = new HttpHelper();
  24. HttpItem item = new HttpItem()
  25. {
  26. URL = string.Format(tokenUrl, mini_appid, mini_appsecret)
  27. };
  28. HttpResult hResult = http.GetHtml(item);
  29. string html = hResult.Html;
  30. JavaScriptSerializer jss = new JavaScriptSerializer();
  31. Dictionary<string, object> jObj = jss.Deserialize<Dictionary<string, object>>(html);
  32. if (!jObj.ContainsKey("errcode"))
  33. {
  34. string at = jObj["access_token"].ToString();
  35. WebCache.AddRunCacheTime("miniAt", at, 100);
  36. cat = at;
  37. }
  38. }
  39. }
  40. return cat;
  41. }
  42. /// <summary>
  43. /// openid,roomname,starttime,endtime,duration,r+c+posname,formid
  44. /// </summary>
  45. /// <param name="sArr"></param>
  46. public static void sendSignMsg(string[] sArr,List<string> lst)
  47. {
  48. if (sArr.Length<7 || sArr[6] == "") return;
  49. if (!lst.Contains("'" + sArr[6] + "'")) lst.Add("'" + sArr[6] + "'");
  50. if (sArr[6] == "the formId is a mock one") return;
  51. HttpHelper http = new HttpHelper();
  52. HttpResult hResult = null;
  53. object cat = getMiniAt(http);
  54. if (cat != null)
  55. {
  56. var tdata = new
  57. {
  58. keyword1 = new TemplateItem("图书馆座位签到", "#333333"),
  59. keyword2 = new TemplateItem(sArr[1], "#0E7700"),
  60. keyword3 = new TemplateItem(Convert.ToDateTime(sArr[2]).ToString("HH:mm") + "-" + Convert.ToDateTime(sArr[3]).ToString("HH:mm") + ",时长:" + sArr[4] + "小时", "#2148CD"),
  61. keyword4 = new TemplateItem("座位号 "+sArr[5], "#0E7700"),
  62. keyword5 = new TemplateItem("最迟签到使用时间~" + Convert.ToDateTime(sArr[2]).AddMinutes(15).ToString("HH:mm")+",过期未签到将无法使用!", "#0E7700")
  63. };
  64. var msgData = new MiniTemplateData()
  65. {
  66. touser = sArr[0],
  67. template_id = "_fOdxNx3trY5F7audxSTvaIly3J-ZlZRaSul-IsnyRc",
  68. form_id= sArr[6],
  69. page = "pages/lab/lab?remind=1",
  70. data = tdata
  71. };
  72. // miniprogram= minidata,
  73. string msg = Newtonsoft.Json.JsonConvert.SerializeObject(msgData);
  74. HttpItem item = new HttpItem()
  75. {
  76. URL = mini_sendUrl + cat,
  77. Method = "POST",
  78. ContentType = "application/json",
  79. Postdata = msg,
  80. PostEncoding = Encoding.UTF8,
  81. Encoding = Encoding.UTF8
  82. };
  83. //item.Encoding = Encoding.UTF8;
  84. hResult = http.GetHtml(item);
  85. string html = hResult.Html;
  86. //XLog.SaveLog(0,"发送消息返回:" + html);
  87. }
  88. }
  89. public static void sendExpireMsg(string[] sArr, List<string> lst)
  90. {
  91. if (sArr.Length < 7 || sArr[6] == "") return;
  92. if (!lst.Contains("'" + sArr[6] + "'")) lst.Add("'" + sArr[6] + "'");
  93. if (sArr[6] == "the formId is a mock one") return;
  94. HttpHelper http = new HttpHelper();
  95. HttpResult hResult = null;
  96. object cat = getMiniAt(http);
  97. if (cat != null)
  98. {
  99. DateTime cTime = DateTime.Now;
  100. var tdata = new
  101. {
  102. keyword1 = new TemplateItem(sArr[1], "#333333"),
  103. keyword2 = new TemplateItem(sArr[5], "#0E7700"),
  104. keyword3 = new TemplateItem(Convert.ToDateTime(sArr[3]).ToString("HH:mm"),"#2148CD"),
  105. keyword4 = new TemplateItem(Convert.ToInt32(Convert.ToDateTime(sArr[3]).Subtract(cTime).TotalMinutes) + "分钟,如需继续使用请续约!", "#0E7700")
  106. };
  107. var msgData = new MiniTemplateData()
  108. {
  109. touser = sArr[0],
  110. template_id = "EToqfWHBHyCGzzvTMNY6p9p-_guHQMj5Iix3nIgTV1Y",
  111. form_id = sArr[6],
  112. page = "pages/lab/lab?remind=1",
  113. data = tdata
  114. };
  115. // miniprogram= minidata,
  116. string msg = Newtonsoft.Json.JsonConvert.SerializeObject(msgData);
  117. HttpItem item = new HttpItem()
  118. {
  119. URL = mini_sendUrl + cat,
  120. Method = "POST",
  121. ContentType = "application/json",
  122. Postdata = msg,
  123. PostEncoding = Encoding.UTF8,
  124. Encoding = Encoding.UTF8
  125. };
  126. //item.Encoding = Encoding.UTF8;
  127. hResult = http.GetHtml(item);
  128. string html = hResult.Html;
  129. }
  130. }
  131. //提现
  132. public static void sendExtractMoneyMsg(string openid,string form_id,string amount)
  133. {
  134. HttpHelper http = new HttpHelper();
  135. HttpResult hResult = null;
  136. object cat = getMiniAt(http);
  137. if (cat != null)
  138. {
  139. DateTime cTime = DateTime.Now;
  140. var tdata = new
  141. {
  142. keyword1 = new TemplateItem("微信钱包", "#333333"),
  143. keyword2 = new TemplateItem(amount + "元", "#0E7700"),
  144. keyword3 = new TemplateItem("目前你的账户累计获得" + "元", "#2148CD"),
  145. };
  146. var msgData = new MiniTemplateData()
  147. {
  148. touser = openid,
  149. template_id = "eR3za_xz4wYkIYBNC9t4rKfUq_IpAJpMnbi0DYI6kuw",
  150. form_id = form_id,
  151. page = "pages/checkIn/checkInHome?remind=1&ct=1",
  152. data = tdata
  153. };
  154. // miniprogram= minidata,
  155. string msg = Newtonsoft.Json.JsonConvert.SerializeObject(msgData);
  156. HttpItem item = new HttpItem()
  157. {
  158. URL = mini_sendUrl + cat,
  159. Method = "POST",
  160. ContentType = "application/json",
  161. Postdata = msg,
  162. PostEncoding = Encoding.UTF8,
  163. Encoding = Encoding.UTF8
  164. };
  165. //item.Encoding = Encoding.UTF8;
  166. hResult = http.GetHtml(item);
  167. string html = hResult.Html;
  168. }
  169. }
  170. //任务报名通知
  171. public static void sendTaskReceiveMsg(string openid,string form_id,object tid,string btime,string bname,string bphone,string bprice,string bmemo)
  172. {
  173. HttpHelper http = new HttpHelper();
  174. HttpResult hResult = null;
  175. object cat = getMiniAt(http);
  176. if (cat != null)
  177. {
  178. DateTime cTime = DateTime.Now;
  179. var tdata = new
  180. {
  181. keyword1 = new TemplateItem(btime, "#333333"),
  182. keyword2 = new TemplateItem(bname, "#0E7700"),
  183. keyword3 = new TemplateItem(bprice, "#0E7700"),
  184. keyword4 = new TemplateItem(bphone, "#333333"),
  185. keyword5 = new TemplateItem(bmemo, "#333333")
  186. };
  187. var msgData = new MiniTemplateData()
  188. {
  189. touser = openid,
  190. template_id = "3FJ8OG_oqQxCq97ZYwUsIOWTh7VkgpxHtuh0Hc9IKY4",
  191. form_id = form_id,
  192. page = "pages/bounty/bountyDetail?r=1&tid="+tid,
  193. data = tdata
  194. };
  195. // miniprogram= minidata,
  196. string msg = Newtonsoft.Json.JsonConvert.SerializeObject(msgData);
  197. HttpItem item = new HttpItem()
  198. {
  199. URL = mini_sendUrl + cat,
  200. Method = "POST",
  201. ContentType = "application/json",
  202. Postdata = msg,
  203. PostEncoding = Encoding.UTF8,
  204. Encoding = Encoding.UTF8
  205. };
  206. //item.Encoding = Encoding.UTF8;
  207. hResult = http.GetHtml(item);
  208. string html = hResult.Html;
  209. }
  210. }
  211. //任务选中/取消选中通知
  212. public static void sendTaskChioceMsg(string openid, string form_id, object tid, string title,string con)
  213. {
  214. HttpHelper http = new HttpHelper();
  215. HttpResult hResult = null;
  216. object cat = getMiniAt(http);
  217. if (cat != null)
  218. {
  219. DateTime cTime = DateTime.Now;
  220. var tdata = new
  221. {
  222. keyword1 = new TemplateItem(title, "#333333"),
  223. keyword2 = new TemplateItem(con + " " + cTime.ToString("yyyy-MM-dd HH:mm:ss"), "#0E7700")
  224. };
  225. var msgData = new MiniTemplateData()
  226. {
  227. touser = openid,
  228. template_id = "rpvN7kE6vEWq8e4P1rvpWCGtPbxJUjXRmzKUO71zT4E",
  229. form_id = form_id,
  230. page = "pages/bounty/bountyDetail?r=1&tid=" + tid,
  231. data = tdata
  232. };
  233. // miniprogram= minidata,
  234. string msg = Newtonsoft.Json.JsonConvert.SerializeObject(msgData);
  235. HttpItem item = new HttpItem()
  236. {
  237. URL = mini_sendUrl + cat,
  238. Method = "POST",
  239. ContentType = "application/json",
  240. Postdata = msg,
  241. PostEncoding = Encoding.UTF8,
  242. Encoding = Encoding.UTF8
  243. };
  244. //item.Encoding = Encoding.UTF8;
  245. hResult = http.GetHtml(item);
  246. string html = hResult.Html;
  247. }
  248. }
  249. //public static void sendInComeMsg(string[] sArr, List<string> lst)
  250. //{
  251. // //if (sArr.Length < 7 || sArr[6] == "") return;
  252. // //if (!lst.Contains("'" + sArr[6] + "'")) lst.Add("'" + sArr[6] + "'");
  253. // //if (sArr[6] == "the formId is a mock one") return;
  254. // HttpHelper http = new HttpHelper();
  255. // HttpResult hResult = null;
  256. // object cat = getMiniAt(http);
  257. // if (cat != null)
  258. // {
  259. // DateTime cTime = DateTime.Now;
  260. // var tdata = new
  261. // {
  262. // keyword1 = new TemplateItem("\"早起红包\"瓜分资金池", "#333333"),
  263. // keyword2 = new TemplateItem("本次打卡收益" + "元", "#0E7700"),
  264. // keyword3 = new TemplateItem("目前你的账户累计获得" + "元", "#2148CD"),
  265. // keyword4 = new TemplateItem("点击进入小程序查看", "#000000")
  266. // };
  267. // var msgData = new MiniTemplateData()
  268. // {
  269. // touser = sArr[0],
  270. // template_id = "smsJomSa3j_gfdyEDyAiNMLpajDnTOAUCMkpjPqg9xs",
  271. // form_id = sArr[6],
  272. // page = "pages/checkIn/checkInHome?remind=1&ct=1",
  273. // data = tdata
  274. // };
  275. // // miniprogram= minidata,
  276. // string msg = Newtonsoft.Json.JsonConvert.SerializeObject(msgData);
  277. // HttpItem item = new HttpItem()
  278. // {
  279. // URL = mini_sendUrl + cat,
  280. // Method = "POST",
  281. // ContentType = "application/json",
  282. // Postdata = msg,
  283. // PostEncoding = Encoding.UTF8,
  284. // Encoding = Encoding.UTF8
  285. // };
  286. // //item.Encoding = Encoding.UTF8;
  287. // hResult = http.GetHtml(item);
  288. // string html = hResult.Html;
  289. // }
  290. //}
  291. }
  292. public class MiniTemplateData
  293. {
  294. public string touser { get; set; }
  295. public string template_id { get; set; }
  296. public string page { get; set; }
  297. public object form_id { get; set; }
  298. public object data { get; set; }
  299. //public string emphasis_keyword { get; set; }
  300. }
  301. }