using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Net; using System.Text; using System.Threading; using WX.CRM.BLL.TS; using WX.CRM.BLL.Util; using WX.CRM.Common; namespace WX.CRM.CRMServices.TS { public class TSSendRes { public void StartPush() { WX_TSADDFRIEND_BL bl = new WX_TSADDFRIEND_BL(); string clientid = Utility.GetSettingByKey("CRMClientKey"); WX.CRM.IBLL.Util.ISecurityHelper sHelper = new SecurityHelper(); string url = "https://console.tim.qq.com/v4/openim/sendmsg?usersig={0}&identifier={1}&sdkappid={2}&random={3}&contenttype=json"; //用户签名 string usersig = ConfigurationManager.AppSettings["yunim_usersig"] != null ? ConfigurationManager.AppSettings["yunim_usersig"].ToString() : "eJx1z09PgzAYx-E7r6LhitH*ATZMPJABRt3ColuyemmatmDjgApVBON7N*KScfG5-j7JN8*XAwBwd*unSy5E815bZgejXHANXAyxH7gXZ2CMloxbRlo5AeRDCDEJwrlSn0a3ivHCqvZPBYtwCX9vprRUtdWFPhkuK12j2d7JVzb1-g91upzGTbpf3SWrt30ncv8QC*r5tt4IKoexwCKJPJpVPHvEfdkMVy*eiXUa98tjPN4e05wsghLqQ0Dxfb99zvnQ1H31QOCYRclH26*puJklra7U6SdEMApRhF3n2-kBGp1YWA__"; string identifier = ConfigurationManager.AppSettings["yunim_identifier"] != null ? ConfigurationManager.AppSettings["yunim_identifier"].ToString() : "admin1"; string sdkappid = ConfigurationManager.AppSettings["yunim_appid"] != null ? ConfigurationManager.AppSettings["yunim_appid"].ToString() : "1400023565"; string random2 = new Random().Next(1000000, 2000000).ToString(); url = string.Format(url, usersig, identifier, sdkappid, random2); DataTable table = bl.GetTsSendPici();//获取批次 DataTable scriptTable = bl.GetNewestScriptVersion(); string version = string.Empty; string scriptName = string.Empty; if (scriptTable != null && scriptTable.Rows.Count > 0) { version = scriptTable.Rows[0]["version"].ToString(); scriptName = scriptTable.Rows[0]["scriptname"].ToString(); } //LogHelper.Info("批次数量:" + table.Rows.Count ); foreach (DataRow row in table.Rows) { string timeslotend = row["timeslotend"].ToString(); string timeslotstart = row["timeslotstart"].ToString(); int timetype = Convert.ToInt32(row["timetype"]); decimal pici = Convert.ToDecimal(row["pici"]); string alias = row["alias"].ToString().Replace("-", "_").ToLower(); LogHelper.Info("微信号:" + alias); DataTable tuiResTable = bl.GetTsAddFriendRes(pici); string content = string.Empty; foreach (DataRow item in tuiResTable.Rows) { string resid = item["RESID"].ToString(); string phone = sHelper.decyptData(clientid, item["MOBILE"].ToString()); string validatemsg = item["validatemsg"].ToString(); if (string.IsNullOrEmpty(resid) || string.IsNullOrEmpty(phone)) { continue; } content += phone + "," + resid + "," + validatemsg + "$"; } //LogHelper.Info("微信号:"+ alias+",数量:"+ tuiResTable.Rows.Count); long random = new Random().Next(1000000, 2000000); var msgobj = new { SyncOtherMachine = 1, //消息同步至发送方 From_Account = "admin1", To_Account = alias + "_yun", MsgRandom = random, MsgTimeStamp = (long)Utility.ConvertDateTimeInt(DateTime.Now), MsgBody = new List() { new { MsgType= "TIMTextElem", MsgContent=new {Text= "{\"pici\":"+pici+",\"timeslotstart\":\""+timeslotstart+"\",\"timeslotend\":\""+timeslotend+"\",\"timetype\":"+timetype+",\"version\":\""+version+"\",\"scriptName\":\""+scriptName+"\",\"alias\":\""+alias+"\",\"resource\":\""+content+"\"}"} } } }; //LogHelper.Info("content:" + content); var para = JsonConvert.SerializeObject(msgobj); WebClient webClient = new WebClient(); webClient.Encoding = Encoding.UTF8; webClient.Headers[HttpRequestHeader.ContentType] = "application/json"; //string result = webClient.UploadString(url, "POST", "{\"jobwxusername\" : \"Ashu|29|7 Years|.NET\"}"); string result = webClient.UploadString(url, "POST", para); //LogHelper.Info("推送结果:"+ result); ResultMsg resultMsg = JsonConvert.DeserializeObject(result); DateTime dateTime = Utility.ConvertIntDateTime(resultMsg.MsgTime); int isOk = 2; if (resultMsg.ActionStatus.ToUpper() == "OK") { isOk = 1; bl.UpdateSendResStutas(alias, pici, dateTime, isOk, result); } else { bl.UpdateSendResStutas(alias, pici, dateTime, isOk, result); } Thread.Sleep(200); } //Console.WriteLine("窝巢了:" + result); //Console.ReadLine(); } } /// /// {"ActionStatus":"OK","ErrorInfo":"","ErrorCode":0,"MsgTime":1515033067} /// public class ResultMsg { public string ActionStatus { get; set; } public string ErrorInfo { get; set; } public int ErrorCode { get; set; } public long MsgTime { get; set; } } }