/// <summary> /// 订阅(关注)事件 /// </summary> /// <returns></returns> public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage) { Task.Run(() => { string openId = requestMessage.FromUserName; var replyItem = MpEventBll.GetByKey("ych_subscribe"); if (replyItem != null) { switch (replyItem.ReplyType) { case "text": CustomApi.SendText(BaseClass.AppId, openId, EConvert.ConvertEmojiHtml(Senparc.Weixin.HttpUtility.RequestUtility.UrlDecode(replyItem.ReplyContent))); break; case "img": CustomApi.SendImage(BaseClass.AppId, openId, replyItem.ReplyContent); break; } } }); //将消息转发到客服 var responseMessage = new SuccessResponseMessage(); return(responseMessage); }
/// <summary> /// 发送纯图片 /// </summary> /// <param name="openId">OPENID</param> /// <param name="mediaId">上传在公众平台的资源ID</param> public static void SendImage(string openId, string mediaId) { var accessToken = GetAccessToken(); var result = CustomApi.SendImage(accessToken, openId, mediaId); LogErrorInfo(result, openId, "SendImage"); }
/// <summary> /// 处理小视频请求 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override IResponseMessageBase OnShortVideoRequest(RequestMessageShortVideo requestMessage) { Task.Run(() => { try { string openId = requestMessage.FromUserName; var replyItem = MpEventBll.GetByKey("ych_automsg"); if (replyItem != null) { switch (replyItem.ReplyType) { case "text": CustomApi.SendText(BaseClass.AppId, openId, EConvert.ConvertEmojiHtml(Senparc.Weixin.HttpUtility.RequestUtility.UrlDecode(replyItem.ReplyContent))); break; case "img": CustomApi.SendImage(BaseClass.AppId, openId, replyItem.ReplyContent); break; } } } catch (Exception e) { LogHandler.Error($"错误位置:微信图片消息回复\n请求数据:{JsonConvert.SerializeObject(requestMessage)}\n错误信息:{e.StackTrace}"); } }); //将消息转发到客服 var responseMessage = CreateResponseMessage <ResponseMessageTransfer_Customer_Service>(); return(responseMessage); }
/// <summary> /// 发送微信消息 /// </summary> /// <param name="openid"></param> /// <param name="mediaid"></param> private void SendWxImg(string openid, string mediaid) { if (!string.IsNullOrEmpty(mediaid)) { try { CustomApi.SendImage(accesstoken, openid, mediaid); } catch (Exception ex) { LogWriter.Error(ex, string.Format("openid为{0}的用户第一次发送登录图片出错", openid)); UpdateAccessToken(); try { CustomApi.SendText(accesstoken, openid, mediaid); } catch (Exception ex2) { LogWriter.Error(ex2, string.Format("openid为{0}的用户第二次发送登录图片出错", openid)); UpdateNewAccessToken(); try { CustomApi.SendText(accesstoken, openid, mediaid); } catch (Exception ex3) { LogWriter.Error(ex3, string.Format("openid为{0}的用户第三次发送登录图片出错", openid)); } } } } }
public void SendImageTest() { var accessToken = AccessTokenContainer.GetAccessToken(_appId); var result = CustomApi.SendImage(accessToken, openId, "10001037"); Assert.IsNotNull(result); Assert.AreEqual("ok", result.errmsg); }
public void AfterDeleteImgTest() { var accessToken = AccessTokenContainer.GetAccessToken(_appId); var file = @"..\..\AdvancedAPIs\Media\test.jpg"; var result = MediaApi.UploadForeverMedia(accessToken, file); Assert.IsNotNull(result.media_id); CustomApi.SendImage(accessToken, "o3IHxjrPzMVZIJOgYMH1PyoTW_Tg", result.media_id); MediaApi.DeleteForeverMedia(accessToken, result.media_id); }
/// <summary> /// 发送客服消息 /// </summary> /// <param name="strMsgType"></param> /// <param name="wechat"></param> /// <param name="strOpenids"></param> /// <param name="obj"></param> /// <param name="strTitle"></param> /// <param name="strComment"></param> /// <returns></returns> private static WxJsonResult SendMsgKF(Weixin.MP.GroupMessageType MsgType, SysWechatConfig wechat, string[] strOpenids, object obj, string strTitle = null, string strComment = null) { WxJsonResult Ret = null; foreach (var openId in strOpenids) { WxJsonResult returnResult = null; switch (MsgType) { case GroupMessageType.text: returnResult = CustomApi.SendText(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (string)obj); break; //case GroupMessageType.mpnews: // returnResult = CustomApi.SendNews(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (List<Article>)obj); // break; case GroupMessageType.mpnews: returnResult = CustomApi.SendMpNews(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (string)obj); break; case GroupMessageType.image: returnResult = CustomApi.SendImage(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (string)obj); break; case GroupMessageType.video: returnResult = CustomApi.SendVideo(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (string)obj, strTitle, strComment); break; case GroupMessageType.voice: returnResult = CustomApi.SendVoice(wechat.WeixinAppId, wechat.WeixinCorpSecret, openId, (string)obj); break; } if (returnResult.errcode != ReturnCode.请求成功) { Ret = returnResult; } else if (Ret == null) { Ret = returnResult; } } return(Ret); }
/// <summary> /// Click事件接收 /// </summary> /// <param name="requestMessage"></param> /// <returns></returns> public override IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage) { Task.Run(() => { try { string key = requestMessage.EventKey; string openId = requestMessage.FromUserName; var replyItem = MpEventBll.GetByKey(key); if (replyItem != null) { switch (replyItem.ReplyType) { case "text": CustomApi.SendText(BaseClass.AppId, openId, replyItem.ReplyContent); break; case "img": CustomApi.SendImage(BaseClass.AppId, openId, replyItem.ReplyContent); break; case "news": CustomApi.SendMpNews(BaseClass.AppId, openId, replyItem.ReplyContent); break; } } } catch (Exception e) { LogHandler.Error($"错误位置:微信CLIKC事件回复\n请求数据:{JsonConvert.SerializeObject(requestMessage)}\n错误信息:{e.StackTrace}"); } }); var responseMessage = new SuccessResponseMessage(); return(responseMessage); }
public static void SendImage(List <Guid?> userIds, string text) { QueryOpenId(userIds).ForEach(openId => CustomApi.SendImage(AppId, openId, text)); }
/// <summary> /// 处理文字请求 /// </summary> /// <returns></returns> public override Senparc.Weixin.MP.Entities.IResponseMessageBase OnTextRequest(RequestMessageText requestMessage) { Task.Run(() => { try { string openId = requestMessage.FromUserName; string replyMode; LogHandler.Info(JsonConvert.SerializeObject(requestMessage)); var contentList = MsgReplyBll.GetReplyInfo(requestMessage.Content, out replyMode); LogHandler.Info(JsonConvert.SerializeObject(contentList)); LogHandler.Info("replyMode" + replyMode); if (contentList != null && contentList.Count > 0) { if (replyMode == AutoReplyMode.random_one.ToString()) { contentList = new List <mpmsgreplycontent>() { contentList[0] }; } foreach (var replyContent in contentList) { switch (replyContent.ReplyType) { //类型枚举参照 Senparc.Weixin.MP.AutoReplyType 枚举 case "text": CustomApi.SendText(BaseClass.AppId, openId, EConvert.ConvertEmojiHtml(Senparc.Weixin.HttpUtility.RequestUtility.UrlDecode(replyContent.ReplyContent))); break; case "img": CustomApi.SendImage(BaseClass.AppId, openId, replyContent.ReplyContent); break; case "news": CustomApi.SendMpNews(BaseClass.AppId, openId, replyContent.ReplyContent); break; } } } else { var replyItem = MpEventBll.GetByKey("ych_automsg"); if (replyItem != null) { switch (replyItem.ReplyType) { case "text": CustomApi.SendText(BaseClass.AppId, openId, EConvert.ConvertEmojiHtml(Senparc.Weixin.HttpUtility.RequestUtility.UrlDecode(replyItem.ReplyContent))); break; case "img": CustomApi.SendImage(BaseClass.AppId, openId, replyItem.ReplyContent); break; } } } } catch (Exception e) { LogHandler.Error($"错误位置:微信文字请求回复\n请求数据:{JsonConvert.SerializeObject(requestMessage)}\n错误信息:{e.StackTrace}"); } }); //将消息转发到客服 var responseMessage = CreateResponseMessage <ResponseMessageTransfer_Customer_Service>(); return(responseMessage); }