private void SendMsg() { string content = rtxtInputBox.Text.Trim(); if (content == "") { MessageBoxAdapter.ShowInfo("发送内容不能为空,请重新输入"); rtxtInputBox.Text = ""; return; } string openId = this.Name; string url = TheMotherWin.WeiXinOfServiceOnlineInovkeAddress + "/api/share/v1/SendWXMessage"; string payLoad = new WXRequestTextMessage { touser = openId, msgtype = WXRequestMessageType.text.ToString(), text = new WXTextMessageWrapper { content = content } }.ToJson(); HttpAdapter.postAsyncStr(url, payLoad, (ret1, res1) => { webBrowser.Document.InvokeScript("sendMsg", new object[] { content }); rtxtInputBox.Text = ""; }, (he) => { MessageBoxAdapter.ShowInfo("发送失败:" + he.Message); }); }
public InvokeResult <string> SendWXMessageSchedule() { InvokeResult <string> result = new InvokeResult <string>(); try { IList <WXSend> messagesToSend = BuilderFactory.DefaultBulder(GlobalManager.getConnectString()).ListByPage <WXSend>(new WXSend { Status = 0 }.ToStringObjectDictionary(false), new ListPager { PageNo = 1, PageSize = 10, OrderByClause = "ScheduleTime" }); if (messagesToSend.Count == 0) { //无消息需要发送 result.ret = "无消息需要发送"; } else { string batchNum = RandomAdapter.GetRandomString(8); List <IBatisNetBatchStatement> statements = new List <IBatisNetBatchStatement>(); List <string> errMsgs = new List <string>(); foreach (WXSend messageToSend in messagesToSend) { string payload; if (messageToSend.SendCatalog.ToLower() == WXRequestMessageType.text.ToString()) { payload = new WXRequestTextMessage { touser = messageToSend.toUserName, msgtype = WXRequestMessageType.text.ToString(), text = new WXTextMessageWrapper { content = messageToSend.SendContent.ReplaceEmoji() } }.ToJson(); } else if (messageToSend.SendCatalog.ToLower() == WXRequestMessageType.news.ToString()) { WXRequestNewsItem newsItem = JsonConvert.DeserializeObject <WXRequestNewsItem>(messageToSend.SendContent.ReplaceEmoji()); payload = new WXRequestNewsMessage { touser = messageToSend.toUserName, msgtype = WXRequestMessageType.news.ToString(), news = new WXNewsMessageWrapper { articles = new List <WXRequestNewsItem> { newsItem } } }.ToJson(); } else { payload = ""; } _SendWXMessage(payload, () => { statements.Add(new IBatisNetBatchStatement { StatementName = messageToSend.GetUpdateMethodName(), ParameterObject = new { Id = messageToSend.Id, BatchNum = batchNum, SendTime = DateTime.Now, Status = 1, SendResult = 0 }.ToStringObjectDictionary(), Type = SqlExecuteType.UPDATE }); }, (errCode, errMsg) => { errMsgs.Add(errMsg); statements.Add(new IBatisNetBatchStatement { StatementName = messageToSend.GetUpdateMethodName(), ParameterObject = new { Id = messageToSend.Id, BatchNum = batchNum, SendTime = DateTime.Now, Status = 2, SendResult = errCode }.ToStringObjectDictionary(), Type = SqlExecuteType.UPDATE }); }); } if (statements.Count > 0) { BuilderFactory.DefaultBulder(GlobalManager.getConnectString()).ExecuteNativeSqlNoneQuery(statements); } result.ret = "发送成功->发送批号:" + batchNum; if (errMsgs.Count > 0) { result.ret = "发送失败->发送批号:" + batchNum + " 错误:" + string.Join(";", errMsgs.Distinct().ToArray()); } } } catch (Exception ex) { result.ErrorCode = 59997; result.ErrorMessage = ex.Message; } return(result); }