public static RequestApiResult <WeixinGroupMessageSendAllResult> SendAll(DomainContext domainContext, WeixinGroupMessageSendAllArgs args) { string accessToken = domainContext.AccessToken; RequestApiResult <WeixinGroupMessageSendAllResult> result = GroupMessageApi.SendAll(accessToken, args); if (result.Success == false) { if (result.Retry) { if (result.ApiError.ErrorCode == 40001) { accessToken = AccessTokenGetter.Refresh(domainContext.AppId, accessToken); } result = GroupMessageApi.SendAll(accessToken, args); if (result.Success == false) { _log.Write("GroupMessageApi.SendAll 失败", result.GetDetail(), TraceEventType.Warning); } } else { _log.Write("GroupMessageApi.SendAll 失败", result.GetDetail(), TraceEventType.Warning); } } return(result); }
public string SendGroupMessage(DomainContext domainContext, SendGroupMessageArgs args) { if (args == null) { return("参数错误。"); } GroupMessageEntity groupMessage = new GroupMessageEntity(); groupMessage.AppId = domainContext.AppId; if (args.GroupId >= 0) { groupMessage.IsToAll = false; groupMessage.GroupId = args.GroupId; } else { groupMessage.IsToAll = true; } groupMessage.Type = args.Type; groupMessage.Content = args.Content; groupMessage.Url = args.Url; groupMessage.Name = args.Name; groupMessage.MediaId = args.MediaId; groupMessage.ArticleId = args.ArticleId; WeixinGroupMessageSendAllArgs apiArgs = null; switch (groupMessage.Type) { case EnumGroupMessageType.Text: WeixinGroupMessageSendAllArgs_Text textMsg = new WeixinGroupMessageSendAllArgs_Text(); textMsg.Content.Content = groupMessage.Content; apiArgs = textMsg; break; case EnumGroupMessageType.Image: WeixinGroupMessageSendAllArgs_Image imageMsg = new WeixinGroupMessageSendAllArgs_Image(); imageMsg.Image.MediaId = groupMessage.MediaId; apiArgs = imageMsg; break; case EnumGroupMessageType.Article: string mediaId = _materialManager.GetArticleMaterialMediaId(args.ArticleId.Value); if (String.IsNullOrEmpty(mediaId) == false) { WeixinGroupMessageSendAllArgs_Mpnews articleMsg = new WeixinGroupMessageSendAllArgs_Mpnews(); articleMsg.Mpnews.MediaId = mediaId; apiArgs = articleMsg; } break; default: break; } if (apiArgs == null) { return("参数错误。"); } //先往微信后台添加,成功后写数据库 apiArgs.Filter.IsToAll = groupMessage.IsToAll; if (groupMessage.GroupId.HasValue && groupMessage.GroupId >= 0) { apiArgs.Filter.GroupId = groupMessage.GroupId.ToString(); } // apiArgs.MsgType RequestApiResult <WeixinGroupMessageSendAllResult> sendAllResult = GroupMessageApiWrapper.SendAll(domainContext, apiArgs); if (sendAllResult.Success == false) { return(sendAllResult.Message); } groupMessage.MsgId = sendAllResult.ApiResult.MsgId; groupMessage.MsgDataId = sendAllResult.ApiResult.MsgDataId; groupMessage.Domain = domainContext.Domain.Id; _dataBase.Insert(groupMessage); return(null); }