public void TestWX2() { var appAccount = ProviderGateway.AppAccountProvider.Get("9100cd6c-bf4b-4097-ad02-989adc9c31fb"); var token = ProviderGateway.TokenProvider.GetToken(appAccount); var picUrl = MediaDataHelper.GetPicUrl("1", "14"); var sendResult = WeChatSDK.Work.Message.SendNews(token, "LiuZhiWei", 1000002, "title", "dddddd", "http://www.baidu.com", picUrl); }
public MessageSendResult Send(AppAccountInfo appAccount, MessageInfo message) { var result = new MessageSendResult(); if (appAccount == null) { appAccount = ProviderGateway.AppAccountProvider.Get(message.AppAccountId); } var token = ProviderGateway.TokenProvider.GetToken(appAccount); if (string.IsNullOrWhiteSpace(message.ToOpenId)) { var appUsers = ProviderGateway.AppUserAccountProvider.GetListByUserId(message.TenantId, message.ToUser.Split('|'), appAccount.AppId); var toOpenIds = new List <string>(); foreach (var appUser in appUsers) { toOpenIds.Add(appUser.OpenId); } message.ToOpenId = string.Join("|", toOpenIds); } var description = new StringBuilder(); foreach (var detail in message.Content.Detail) { if (string.IsNullOrWhiteSpace(detail.Text)) { description.AppendFormat("{0}\n", detail.Value); } else { description.AppendFormat("{0}:{1}\n", detail.Text, detail.Value); } } var picUrl = MediaDataHelper.GetPicUrl(message.ProductId, appAccount.Type.ToString()); AppConnectLogHelper.DebugFormat("调用企业微信发送消息:Token{0};ToOpenId{1}; AgentId{2} ContentUrl{3}, ContentTitle{4}, description:{5}, pic:{6},tenantId:{7}", token, message.ToOpenId, appAccount.AgentId, message.Content.Url, message.Content.Title, description.ToString(), picUrl, appAccount.TenantId); if (string.IsNullOrEmpty(message.Content.Url)) { message.Content.Url = AppConnectHostConfig.Cache[0] + string.Format("/Common/Error?title={0}&message={1}", HttpUtility.UrlEncode("友情提醒"), HttpUtility.UrlEncode("抱歉,此消息暂不支持在此查看,请在电脑浏览器中查看")); } WorkMessageSendResult sendResult = new WorkMessageSendResult(); sendResult = WeChatSDK.Work.Message.SendNews(token, message.ToOpenId, Convert.ToInt32(appAccount.AgentId), message.Content.Title, description.ToString(), message.Content.Url, picUrl); if (sendResult.ErrCode == 0) { result.State = MessageState.Success; AppConnectLogHelper.DebugFormat("企业微信发送消息成功{0}", JsonConvert.SerializeObject(sendResult)); } else { result.State = MessageState.Failed; AppConnectLogHelper.ErrorFormat("企业微信发送消息失败,errorCode:{0},errorMsg:{1},tenantId:{2},userId:{3}", sendResult.ErrCode, sendResult.ErrMsg, appAccount.TenantId, message.ToOpenId); } result.ErrMsg = SerializeHelper.Serialize(sendResult); return(result); }
public MessageSendResult Send(AppAccountInfo appAccount, MessageInfo message) { var result = new MessageSendResult(); if (appAccount == null) { appAccount = ProviderGateway.AppAccountProvider.Get(message.AppAccountId); } var token = ProviderGateway.TokenProvider.GetToken(appAccount); if (string.IsNullOrWhiteSpace(message.TemplateId)) { if (string.IsNullOrWhiteSpace(message.TemplateIdShort)) { result.State = MessageState.Failed; result.ErrMsg = "模板为空"; return(result); } //跟据数据库中对应关系获取id var templateId = ProviderGateway.TemplateMappingProvider.GetTemplateId(appAccount.AppId, message.TemplateIdShort); //不存在增加模板 if (string.IsNullOrWhiteSpace(templateId)) { var template = Template.AddTemplate(token, message.TemplateIdShort); if (template.ErrCode != 0) { result.State = MessageState.Failed; result.ErrMsg = SerializeHelper.Serialize(template); return(result); } message.TemplateId = template.TemplateId; ProviderGateway.TemplateMappingProvider.Add( new TemplateMappingInfo { AppId = appAccount.AppId, TemplateIdShort = message.TemplateIdShort, TemplateId = template.TemplateId, CreateBy = message.FromUser }); } else { message.TemplateId = templateId; } } if (string.IsNullOrWhiteSpace(message.ToOpenId)) { var appUser = ProviderGateway.AppUserAccountProvider.GetByUserId(message.TenantId, Convert.ToInt32(message.ToUser), appAccount.AppId); if (appUser == null) { result.State = MessageState.Failed; result.ErrMsg = "用户未绑定"; return(result); } message.ToOpenId = appUser.OpenId; } var jsondata = new StringBuilder(); jsondata.Append("{"); foreach (var detail in message.Content.Detail) { jsondata.Append("\"" + detail.Key + "\":{\"value\":\"" + detail.Value + "\"},"); } jsondata.Remove(jsondata.Length - 1, 1); jsondata.Append("}"); var picUrl = MediaDataHelper.GetPicUrl(message.ProductId, appAccount.Type.ToString()); AppConnectLogHelper.DebugFormat("调用微信服务号发送消息:Token{0};ToOpenId{1}; AgentId{2} ContentUrl{3}, ContentTitle{4}, description:{5}, pic:{6}", token, message.ToOpenId, appAccount.AgentId, message.Content.Url, message.Content.Title, jsondata.ToString(), picUrl); if (string.IsNullOrEmpty(message.Content.Url)) { message.Content.Url = AppConnectHostConfig.Cache[0] + string.Format("/Common/Error?title={0}&message={1}", HttpUtility.UrlEncode("友情提醒"), HttpUtility.UrlEncode("抱歉,此消息暂不支持在此查看,请在电脑浏览器中查看")); } var sendResult = Template.SendTemplateMessageForJson(token, message.ToOpenId, message.TemplateId, "", message.Content.Url, jsondata.ToString()); if (sendResult.ErrCode != 0) { result.State = MessageState.Failed; result.ErrMsg = SerializeHelper.Serialize(sendResult); AppConnectLogHelper.ErrorFormat("企业微信发送消息失败,errorCode:{0},errorMsg:{1}", sendResult.ErrCode, sendResult.ErrMsg); return(result); } result.State = MessageState.Success; result.MessageId = sendResult.MsgId.ToString(); result.ErrMsg = SerializeHelper.Serialize(sendResult); return(result); }