public ActionResult UploadImage() { var message = "上传成功!"; var isError = false; foreach (var fileKey in Request.Files.AllKeys) { var file = Request.Files[fileKey]; try { if (file != null) { var fileName = Path.GetFileName(file.FileName); var path = Path.Combine(Server.MapPath("~/MediaFiles"), fileName); file.SaveAs(path); var result = MediaApi.UploadForeverMedia(AccessToken, path); if (!string.IsNullOrWhiteSpace(result.errmsg)) { isError = true; message = result.errmsg; } } } catch (Exception ex) { isError = true; message = ex.Message; } } return(Json(new { Message = message, IsError = isError })); }
public UploadForeverMediaResult UploadForeverMedia(string path) { UploadForeverMediaResult uploadForeverMediaResult = null; string appId = WxOperatorProvider.Provider.GetCurrent().AppId; uploadForeverMediaResult = MediaApi.UploadForeverMedia(appId, path); return(uploadForeverMediaResult); }
public void UploadForeverMediaTest() { var accessToken = AccessTokenContainer.GetToken(_appId); var file = @"E:\1.jpg"; var result = MediaApi.UploadForeverMedia(accessToken, file); Assert.IsNotNull(result.media_id); mediaId = result.media_id; }
private static void UploadImgToWeixin(string accessToken, MediaList_OthersResult imgResult, string saveName, string filePath) { foreach (var item in imgResult.item) { if (item.name == saveName) { MediaApi.DeleteForeverMedia(accessToken, item.media_id); } } MediaApi.UploadForeverMedia(accessToken, filePath); }
private string UploadForeverMediaTest() { var accessToken = AccessTokenContainer.GetToken(_appId); var file = @"..\..\AdvancedAPIs\Media\test.jpg"; var result = MediaApi.UploadForeverMedia(accessToken, file); Assert.IsNotNull(result.media_id); mediaId = result.media_id; return(mediaId); }
private string UploadForeverMediaTest() { var accessToken = AccessTokenContainer.GetAccessToken(_appId); var file = GetParentRootRelativePath() + @"AdvancedAPIs\Media\test.jpg"; var result = MediaApi.UploadForeverMedia(accessToken, file); Assert.IsNotNull(result.media_id); mediaId = result.media_id; return(mediaId); }
private void SendImg(string accessToken, MediaList_OthersResult imgResult) { for (int i = 0; i < 6; i++) { string imgName = string.Format("send{0}.jpg", i); if (imgResult.item.Find(p => p.name == imgName) == null) { var filePath = Server.MapPath("~/image/" + imgName); var mediaId = MediaApi.UploadForeverMedia(accessToken, filePath).media_id; } } }
private string UploadForeverMedia(int wid, string mediaPath) { string err; var token = WeiXinCRMComm.getAccessToken(wid, out err); if (!string.IsNullOrEmpty(err)) { return(string.Empty); } var result = MediaApi.UploadForeverMedia(token, Server.MapPath(mediaPath)); return(result.media_id); }
public static UploadForeverMediaResult UploadForeverMedia(string accessTokenOrAppId, string src) { if (src.StartsWith("http")) { return(ApiHandlerWapper.TryCommonApi(delegate(string accessToken) { string url = $"{"https"}://api.weixin.qq.com/cgi-bin/material/add_material?access_token={accessToken.AsUrlData()}"; var fileBytes = HttpHelper.HttpDownload(src); return Post.GetResult <UploadForeverMediaResult>(HttpHelper.HttpUpload(url, fileBytes, Path.GetFileName(src), "media")); }, accessTokenOrAppId)); } return(MediaApi.UploadForeverMedia(accessTokenOrAppId, App.GetLocalResource(src))); }
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); }
public async Task <string> UploadMedia(string fileFullPath, string mediaID) { if (string.IsNullOrWhiteSpace(fileFullPath)) { return(mediaID); } var tempProfilePicturePath = Path.Combine(_appFolders.TempFileDownloadFolder, fileFullPath); var mpid = await _userMpAppService.GetDefaultMpId(); var account = await _mpAccountAppService.Get(new Abp.Application.Services.Dto.EntityDto <int> { Id = mpid }); var access_token = await _accessTokenContainer.TryGetAccessTokenAsync(account.AppId, account.AppSecret); Senparc.Weixin.MP.AdvancedAPIs.Media.UploadForeverMediaResult responseModel = null; var result = ""; try { responseModel = MediaApi.UploadForeverMedia(access_token, tempProfilePicturePath); //result = MediaApi.UploadForeverMedia(access_token, tempProfilePicturePath).media_id; result = responseModel.media_id; } catch { access_token = await _accessTokenContainer.TryGetAccessTokenAsync(account.AppId, account.AppSecret, true); try { responseModel = MediaApi.UploadForeverMedia(access_token, tempProfilePicturePath); } catch (Exception e) { throw new UserFriendlyException(e.Message); } //result = MediaApi.UploadForeverMedia(access_token, tempProfilePicturePath).media_id; result = responseModel.media_id; } return(result); }
public UploadForeverMediaResult UploadForeverImage(string keyValue, string webRootPath) { var id = Convert.ToInt64(keyValue); string appId = WxOperatorProvider.Provider.GetCurrent().AppId; WxImage wxImage = wxImageRepository.Get(id); AccessTokenResult accessTokenResult = AccessTokenContainer.GetAccessTokenResult(appId); string fullFilePaht = webRootPath + wxImage.FilePath; var uploadForeverMediaResult = MediaApi.UploadForeverMedia(accessTokenResult.access_token, fullFilePaht, 10000); if (uploadForeverMediaResult.ErrorCodeValue == 0) { wxImage.MediaId = uploadForeverMediaResult.media_id; wxImage.MediaUrl = uploadForeverMediaResult.url; wxImageRepository.Update(wxImage); } return(uploadForeverMediaResult); }
public IHttpActionResult UploadPhotos(Guid typeId) { var ids = HttpContext.Current.Request.Form["mediaIds"].Trim(',').Split(','); foreach (var mediaId in ids) { var fileName = DateTime.Now.ToString("yyyy-MM-dd"); //文件保存的名字 var fileSaveName = Guid.NewGuid().ToString("N") + ".png"; //租户Id var dirName = TenantId.ToString(); var path = Path.Combine(HttpContext.Current.Server.MapPath("~/MediaFiles"), dirName); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } path = Path.Combine(path, fileSaveName); //从临时素材获取 using (var stream = File.Create(path)) { //TODO:切换SDK MediaApi.Get(WeChatConfigManager.Current.GetAccessToken(), mediaId, stream); } //上传到永久素材 var result = MediaApi.UploadForeverMedia(AccessToken, path); if (!string.IsNullOrWhiteSpace(result.errmsg)) { return(BadRequest(result.errmsg)); } //写入数据 var pic = new Site_Image { IsFrontCover = !db.Site_Images.Any(p => p.ResourcesTypeId == typeId), MediaId = result.media_id, Name = fileName, //站内地址 SiteUrl = string.Format("/MediaFiles/{0}/{1}", dirName, fileSaveName), Url = result.url, ResourcesTypeId = typeId }; SetModel(pic, default(Guid)); db.Site_Images.Add(pic); db.SaveChanges(); } return(Ok()); }
public void AfterDeleteNewsTest() { var accessToken = AccessTokenContainer.GetAccessToken(_appId); var file = @"E:\1.jpg"; var result = MediaApi.UploadForeverMedia(accessToken, file); Assert.IsNotNull(result.media_id); var new1 = new NewsModel() { author = "test", content = "test", content_source_url = "http://qy.weiweihi.com/Content/Images/app/qyhelper.png", digest = "test", show_cover_pic = "1", thumb_media_id = result.media_id, title = "test" }; var new2 = new NewsModel() { author = "test", content = "test111", content_source_url = "http://qy.weiweihi.com/Content/Images/app/qyhelper.png", digest = "test", show_cover_pic = "1", thumb_media_id = result.media_id, title = "test" }; var result1 = MediaApi.UploadNews(accessToken, 10000, new1, new2); Assert.IsNotNull(result1.media_id); var clientMsgId = SystemTime.Now.Ticks.ToString(); GroupMessageApi.SendGroupMessageByOpenId(accessToken, GroupMessageType.mpnews, result1.media_id, clientMsgId, 10000, "o3IHxjrPzMVZIJOgYMH1PyoTW_Tg", "o3IHxjrPzMVZIJOgYMH1PyoTW_Tg"); //var result2 = MediaApi.UpdateForeverNews(accessToken, result1.media_id, 0, 10000, new2); MediaApi.DeleteForeverMedia(accessToken, result1.media_id); //Assert.AreEqual(result2.errcode, ReturnCode.请求成功); }
//[TestMethod] private string UploadAndUpdateNewsTest(string accessToken) { var file = @"E:\1.jpg"; var result = MediaApi.UploadForeverMedia(accessToken, file); Assert.IsNotNull(result.media_id); var new1 = new NewsModel() { author = "test", content = "test", content_source_url = "http://qy.weiweihi.com/Content/Images/app/qyhelper.png", digest = "test", show_cover_pic = "1", thumb_media_id = result.media_id, title = "test" }; var new2 = new NewsModel() { author = "test", content = "test111", content_source_url = "http://qy.weiweihi.com/Content/Images/app/qyhelper.png", digest = "test", show_cover_pic = "1", thumb_media_id = result.media_id, title = "test" }; var result1 = MediaApi.UploadNews(accessToken, 10000, new1, new2); Assert.IsNotNull(result1.media_id); //var result2 = MediaApi.UpdateForeverNews(accessToken, result1.media_id, 0, 10000, new2); //Assert.AreEqual(result2.errcode, ReturnCode.请求成功); return(result1.media_id); }
/// <summary> /// 保存配置信息 /// </summary> protected void btnSubmit_Click(object sender, EventArgs e) { //ChkAdminLevel("site_config", MXEnums.ActionEnum.Edit.ToString()); //检查权限 string ruleName = ""; try { //保存之前,删除以前的数据 int requestType = int.Parse(lblreqestType.Text);//请求的类别 if (requestType == 6) { ruleName = "关注时的触发内容"; } else if (requestType == 0) { ruleName = "默认回复内容"; } else if (requestType == 7) { ruleName = "取消关注时的触发内容"; } Model.manager manager = GetAdminInfo(); Model.wx_userweixin weixin = GetWeiXinCode(); //添加前删除原来的数据 rBll.DeleteRule(int.Parse(hidId.Value)); Model.wx_requestRule rule = new Model.wx_requestRule(); rule.uId = manager.id; rule.wId = weixin.id; rule.ruleName = ruleName; rule.reqestType = requestType; rule.isDefault = false; rule.createDate = DateTime.Now; Model.wx_requestRuleContent rc = new Model.wx_requestRuleContent(); if (rblResponseType.SelectedItem.Value == "0") { //纯文本 //规则 if (this.txtContent.Text.Trim().Length == 0) { JscriptMsg("内容不能为空", "back", "Error"); return; } rule.responseType = 1;//回复的类型:文本1,图文2,语音3,视频4,第三方接口5 int rId = rBll.Add(rule); //内容 rc.rId = rId; rc.uId = manager.id; rc.rContent = txtContent.Text.Trim(); rc.createDate = DateTime.Now; rcBll.Add(rc); } else if (rblResponseType.SelectedItem.Value == "1") { //图文 rule.responseType = 2; //回复的类型:文本1,图文2,语音3,视频4,第三方接口5 int rId = rBll.Add(rule); } else if (rblResponseType.SelectedItem.Value == "2") { //语音 if (this.txtMusicTitle.Text.Trim().Length == 0) { JscriptMsg("音乐不能为空", "back", "Error"); return; } if (this.txtMusicFile.Text.Trim().Length == 0) { JscriptMsg("音乐链接不能为空", "back", "Error"); return; } //规则 rule.responseType = 3;//回复的类型:文本1,图文2,语音3,视频4,第三方接口5 int rId = rBll.Add(rule); //Modify by Yidane //语音先上传微信服务器,获取到media_id,保存到数据库 if (File.Exists(Server.MapPath(txtMusicFile.Text))) { try { var err = string.Empty; var token = WeiXinCRMComm.getAccessToken(weixin.id, out err); if (string.IsNullOrEmpty(err)) { var result = MediaApi.UploadForeverMedia(token, Server.MapPath(txtMusicFile.Text)); rc.extStr = result.media_id; } } catch (Exception) { } } //内容 rc.rId = rId; rc.uId = manager.id; rc.createDate = DateTime.Now; rc.mediaUrl = txtMusicFile.Text; rc.rContent = txtMusicTitle.Text; rc.remark = txtMusicRemark.Text; rcBll.Add(rc); if (string.IsNullOrEmpty(rc.extStr)) { JscriptMsg("编辑" + ruleName + "有问题!", "subscribe.aspx?act=" + MyCommFun.QueryString("act"), "Error"); } } AddAdminLog(MXEnums.ActionEnum.Edit.ToString(), "编辑" + ruleName); //记录日志 JscriptMsg("编辑" + ruleName + "成功!", "subscribe.aspx?act=" + MyCommFun.QueryString("act"), "Success"); } catch { JscriptMsg("编辑" + ruleName + "有问题!", "subscribe.aspx?act=" + MyCommFun.QueryString("act"), "Error"); } }
public void PushNews(string accessToken, string webPath, string tempStr) { OpenIdResultJson json = UserApi.Get(accessToken, ""); var imgResult = MediaApi.GetOthersMediaList(accessToken, UploadMediaFileType.image, 0, 10000); var DircetPath = Environment.CurrentDirectory + "/image/"; if (!Directory.Exists(DircetPath)) { Directory.CreateDirectory(DircetPath); } for (int i = 0; i < 6; i++) { string imgName = string.Format("send{0}.jpg", i); if (imgResult.item.Find(p => p.name == imgName) == null) { var imgPath = webPath + "/image/" + imgName; var filePath = DircetPath + "/image/" + imgName; CommonUtility.HttpUtility.DownloadFile(imgPath, filePath); var mediaId = MediaApi.UploadForeverMedia(accessToken, filePath).media_id; } } imgResult = MediaApi.GetOthersMediaList(accessToken, UploadMediaFileType.image, 0, 10000); string sendCountTxtUrl = webPath + "/" + "sendcount.txt"; var sendCountTxt = CommonUtility.HttpUtility.Get(sendCountTxtUrl); var sendCount = int.Parse(sendCountTxt); NewsModel[] newsList = new NewsModel[sendCount]; var dataSevice = new DataAccessSerive(); var jobList = dataSevice.GetTopJobInfoList(); if (jobList.Count > 0) { List <Article> articles = new List <Article>(); int i = 0; string imgName; foreach (var job in jobList) { if (i == sendCount) { break; } string domain = ConfigurationManager.AppSettings.Get("domain"); string website = ConfigurationManager.AppSettings.Get("website"); imgName = "send" + i.ToString() + ".jpg"; string imgUrl = string.Format("{0}/image/{1}", domain, imgName); var jobDetail = dataSevice.GetJobDetail(job.JobId); var news = new NewsModel() { author = "", content = tempStr.Replace("[ComName]", job.ComName) .Replace("[ComBrief]", jobDetail.ComBrief) .Replace("[DetailPalce]", jobDetail.DetailPalce) .Replace("[LinkMan]", jobDetail.LinkMan) .Replace("[Phone]", jobDetail.Phone) .Replace("[JobName]", jobDetail.JobName) .Replace("[JobType]", jobDetail.JobType) .Replace("[LowMoney]", jobDetail.LowMoney) .Replace("[HrNum]", jobDetail.HrNum) .Replace("[Edu]", jobDetail.Edu) .Replace("[RegisterDate]", jobDetail.RegisterDate) .Replace("[EffectDate]", jobDetail.EffectDate) .Replace("[Other]", jobDetail.Other) .Replace("[Sex]", jobDetail.Sex) , //content_source_url = domain + "/html/detail.html?id=" + job.JobId, content_source_url = website, digest = job.ComName + "诚聘" + job.JobName, show_cover_pic = "0", thumb_media_id = imgResult.item.Find(p => p.name == imgName).media_id, title = job.ComName + "诚聘" + job.JobName }; newsList[i] = news; i++; } UploadForeverMediaResult mediaResult = MediaApi.UploadNews(accessToken, 100000, newsList); try { if (isDebug != "1") { GroupMessageApi.SendGroupMessageByGroupId(accessToken, "-1", mediaResult.media_id, GroupMessageType.mpnews, true); } Console.WriteLine("素材提交推送 推送成功"); logger.Info(DateTime.Now.ToString() + " 素材提交推送 推送成功"); } catch (Exception ex) { Console.WriteLine("素材提交推送 推送失败 " + ex.Message); var MailService = new MailSendFunc(); MailService.SendMail("*****@*****.**", ex.Message, "素材提交推送异常", mailCfg); logger.ErrorException(DateTime.Now.ToString() + "素材提交推送失败 " + ex.Message, ex); } } }
/// <summary> /// 上传站点资源 /// </summary> /// <param name="resoureType"></param> /// <param name="file"></param> /// <param name="db"></param> /// <returns></returns> public static Site_FileBase Upload(Site_ResourceType resoureType, string fileName, byte[] fileStream, AppDbContext db, out AjaxResponse ajaxMessage) { ajaxMessage = new AjaxResponse { Success = true }; var fileSaveName = Guid.NewGuid().ToString("N") + Path.GetExtension(fileName); var tenantId = WeiChatApplicationContext.Current.TenantId; var dirName = tenantId.ToString(); var path = Path.Combine(HttpContext.Current.Server.MapPath("~/MediaFiles"), dirName); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } path = Path.Combine(path, fileSaveName); File.WriteAllBytes(path, fileStream); UploadForeverMediaResult result = null; result = resoureType.ResourceType == SiteResourceTypes.Video ? MediaApi.UploadForeverVideo(WeChatConfigManager.Current.GetAccessToken(), path, fileName, "test") : MediaApi.UploadForeverMedia(WeChatConfigManager.Current.GetAccessToken(), path); if (!string.IsNullOrWhiteSpace(result.errmsg)) { ajaxMessage.Success = false; ajaxMessage.Message = result.errmsg; } else { switch (resoureType.ResourceType) { case SiteResourceTypes.Gallery: { var pic = new Site_Image { IsFrontCover = false, MediaId = result.media_id, Name = fileName, SiteUrl = string.Format("/MediaFiles/{0}/{1}", dirName, fileSaveName), Url = result.url, ResourcesTypeId = resoureType.Id, CreateBy = HttpContext.Current.User.Identity.GetUserId(), CreateTime = DateTime.Now, TenantId = tenantId }; db.Site_Images.Add(pic); db.SaveChanges(); return(pic); } break; case SiteResourceTypes.Voice: { var voice = new Site_Voice { MediaId = result.media_id, Name = fileName, SiteUrl = string.Format("/MediaFiles/{0}/{1}", dirName, fileSaveName), Url = result.url, ResourcesTypeId = resoureType.Id, CreateBy = HttpContext.Current.User.Identity.GetUserId(), CreateTime = DateTime.Now, TenantId = tenantId }; db.Site_Voices.Add(voice); db.SaveChanges(); return(voice); } break; case SiteResourceTypes.Video: { var video = new Site_Video { MediaId = result.media_id, Name = fileName, SiteUrl = string.Format("/MediaFiles/{0}/{1}", dirName, fileSaveName), Url = result.url, ResourcesTypeId = resoureType.Id, CreateBy = HttpContext.Current.User.Identity.GetUserId(), CreateTime = DateTime.Now, TenantId = tenantId }; db.Site_Videos.Add(video); db.SaveChanges(); return(video); } break; default: ajaxMessage.Success = false; ajaxMessage.Message = "不支持上传此类型"; break; } } return(null); }
/// <summary> /// 点击事件 /// </summary> /// <param name="requestMessage">请求消息</param> /// <returns></returns> public override IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage) { IResponseMessageBase reponseMessage = null; //菜单点击,需要跟创建菜单时的Key匹配 switch (requestMessage.EventKey) { case "OneClick": { //这个过程实际已经在OnTextOrEventRequest中命中“OneClick”关键字,并完成回复,这里不会执行到。 var strongResponseMessage = CreateResponseMessage <ResponseMessageText>(); reponseMessage = strongResponseMessage; strongResponseMessage.Content = "您点击了底部按钮。\r\n为了测试微信软件换行bug的应对措施,这里做了一个——\r\n换行"; } break; case "SubClickRoot_Text": { var strongResponseMessage = CreateResponseMessage <ResponseMessageText>(); reponseMessage = strongResponseMessage; strongResponseMessage.Content = "您点击了子菜单按钮。"; } break; case "SubClickRoot_News": { var strongResponseMessage = CreateResponseMessage <ResponseMessageNews>(); reponseMessage = strongResponseMessage; strongResponseMessage.Articles.Add(new Article() { Title = "您点击了子菜单图文按钮", Description = "您点击了子菜单图文按钮,这是一条图文信息。这个区域是Description内容\r\n可以使用\\r\\n进行换行。", PicUrl = "https://sdk.weixin.senparc.com/Images/qrcode.jpg", Url = "https://sdk.weixin.senparc.com" }); //随机添加一条图文,或只输出一条图文信息 if (SystemTime.Now.Second % 2 == 0) { strongResponseMessage.Articles.Add(new Article() { Title = "这是随机产生的第二条图文信息,用于测试多条图文的样式", Description = "这是随机产生的第二条图文信息,用于测试多条图文的样式", PicUrl = "https://sdk.weixin.senparc.com/Images/qrcode.jpg", Url = "https://sdk.weixin.senparc.com" }); } } break; case "SubClickRoot_Music": { //上传缩略图 #if NET45 var filePath = "~/Images/Logo.thumb.jpg"; #else var filePath = "~/wwwroot/Images/Logo.thumb.jpg"; #endif var uploadResult = MediaApi.UploadTemporaryMedia(appId, UploadMediaFileType.thumb, ServerUtility.ContentRootMapPath(filePath)); //PS:缩略图官方没有特别提示文件大小限制,实际测试哪怕114K也会返回文件过大的错误,因此尽量控制在小一点(当前图片39K) //设置音乐信息 var strongResponseMessage = CreateResponseMessage <ResponseMessageMusic>(); reponseMessage = strongResponseMessage; strongResponseMessage.Music.Title = "天籁之音"; strongResponseMessage.Music.Description = "真的是天籁之音"; strongResponseMessage.Music.MusicUrl = "https://sdk.weixin.senparc.com/Content/music1.mp3"; strongResponseMessage.Music.HQMusicUrl = "https://sdk.weixin.senparc.com/Content/music1.mp3"; strongResponseMessage.Music.ThumbMediaId = uploadResult.thumb_media_id; } break; case "SubClickRoot_Image": { //上传图片 var filePath = "~/Images/Logo.jpg"; var uploadResult = MediaApi.UploadTemporaryMedia(appId, UploadMediaFileType.image, ServerUtility.ContentRootMapPath(filePath)); //设置图片信息 var strongResponseMessage = CreateResponseMessage <ResponseMessageImage>(); reponseMessage = strongResponseMessage; strongResponseMessage.Image.MediaId = uploadResult.media_id; } break; case "SendMenu": //菜单消息 { //注意: //1、此接口可以在任意地方调用(包括后台线程),此处演示为通过 //2、一下"s:"前缀只是 Senparc.Weixin 的内部约定,可以使用 OnTextRequest事件中的 requestHandler.SelectMenuKeyword() 方法自动匹配到后缀(如101) var menuContentList = new List <SendMenuContent>() { new SendMenuContent("101", "满意"), new SendMenuContent("102", "一般"), new SendMenuContent("103", "不满意") }; //使用异步接口 CustomApi.SendMenuAsync(appId, OpenId, "请对 Senparc.Weixin SDK 给出您的评价", menuContentList, "感谢您的参与!"); reponseMessage = new ResponseMessageNoResponse(); //不返回任何消息 } break; case "SubClickRoot_Agent": //代理消息 { //获取返回的XML var dt1 = SystemTime.Now; reponseMessage = MessageAgent.RequestResponseMessage(this, agentUrl, agentToken, RequestDocument.ToString()); //上面的方法也可以使用扩展方法:this.RequestResponseMessage(this,agentUrl, agentToken, RequestDocument.ToString()); var dt2 = SystemTime.Now; if (reponseMessage is ResponseMessageNews) { (reponseMessage as ResponseMessageNews) .Articles[0] .Description += string.Format("\r\n\r\n代理过程总耗时:{0}毫秒", (dt2 - dt1).Milliseconds); } } break; case "Member": //托管代理会员信息 { //原始方法为:MessageAgent.RequestXml(this,agentUrl, agentToken, RequestDocument.ToString());//获取返回的XML reponseMessage = this.RequestResponseMessage(agentUrl, agentToken, RequestDocument.ToString()); } break; case "OAuth": //OAuth授权测试 { var strongResponseMessage = CreateResponseMessage <ResponseMessageNews>(); strongResponseMessage.Articles.Add(new Article() { Title = "OAuth2.0测试", Description = "选择下面两种不同的方式进行测试,区别在于授权成功后,最后停留的页面。", //Url = "https://sdk.weixin.senparc.com/oauth2", //PicUrl = "https://sdk.weixin.senparc.com/Images/qrcode.jpg" }); strongResponseMessage.Articles.Add(new Article() { Title = "OAuth2.0测试(不带returnUrl),测试环境可使用", Description = "OAuth2.0测试(不带returnUrl)", Url = "https://sdk.weixin.senparc.com/oauth2", PicUrl = "https://sdk.weixin.senparc.com/Images/qrcode.jpg" }); var returnUrl = "/OAuth2/TestReturnUrl"; strongResponseMessage.Articles.Add(new Article() { Title = "OAuth2.0测试(带returnUrl),生产环境强烈推荐使用", Description = "OAuth2.0测试(带returnUrl)", Url = "https://sdk.weixin.senparc.com/oauth2?returnUrl=" + returnUrl.UrlEncode(), PicUrl = "https://sdk.weixin.senparc.com/Images/qrcode.jpg" }); reponseMessage = strongResponseMessage; } break; case "Description": { var strongResponseMessage = CreateResponseMessage <ResponseMessageText>(); strongResponseMessage.Content = GetWelcomeInfo(); reponseMessage = strongResponseMessage; } break; case "SubClickRoot_PicPhotoOrAlbum": { var strongResponseMessage = CreateResponseMessage <ResponseMessageText>(); reponseMessage = strongResponseMessage; strongResponseMessage.Content = "您点击了【微信拍照】按钮。系统将会弹出拍照或者相册发图。"; } break; case "SubClickRoot_ScancodePush": { var strongResponseMessage = CreateResponseMessage <ResponseMessageText>(); reponseMessage = strongResponseMessage; strongResponseMessage.Content = "您点击了【微信扫码】按钮。"; } break; case "ConditionalMenu_Male": { var strongResponseMessage = CreateResponseMessage <ResponseMessageText>(); reponseMessage = strongResponseMessage; strongResponseMessage.Content = "您点击了个性化菜单按钮,您的微信性别设置为:男。"; } break; case "ConditionalMenu_Femle": { var strongResponseMessage = CreateResponseMessage <ResponseMessageText>(); reponseMessage = strongResponseMessage; strongResponseMessage.Content = "您点击了个性化菜单按钮,您的微信性别设置为:女。"; } break; case "GetNewMediaId": //获取新的MediaId { var strongResponseMessage = CreateResponseMessage <ResponseMessageText>(); try { var result = MediaApi.UploadForeverMedia(appId, ServerUtility.ContentRootMapPath("~/Images/logo.jpg")); strongResponseMessage.Content = result.media_id; } catch (Exception e) { strongResponseMessage.Content = "发生错误:" + e.Message; WeixinTrace.SendCustomLog("调用UploadForeverMedia()接口发生异常", e.Message); } } break; default: { var strongResponseMessage = CreateResponseMessage <ResponseMessageText>(); strongResponseMessage.Content = "您点击了按钮,EventKey:" + requestMessage.EventKey; reponseMessage = strongResponseMessage; } break; } return(reponseMessage); }