public void AddTempMaterialTest() { WeChatResult <TempMaterialResult> weChatResult = materialLinkUp.AddTempMaterial( "G:\\FFOutput\\wxtest.amr"); WeChatResult <string> fileResult; if (string.IsNullOrWhiteSpace(weChatResult.resultData.media_id)) { fileResult = materialLinkUp.GetTempMaterial(weChatResult.resultData.thumb_media_id, "F:\\ps\\FileImg\\file.txt"); } else { fileResult = materialLinkUp.GetTempMaterial(weChatResult.resultData.media_id, "F:\\ps\\FileImg\\file.txt"); } try { JObject videoResult = JsonConvert.DeserializeObject <JObject>(fileResult.resultData); string fileName = SimulateRequest.DownloadFile(videoResult["video_url"].ToString(), "F:\\ps\\FileImg\\bigBreast.txt"); Assert.IsNotNull(fileName); } catch (Exception ex) { Assert.IsNotNull(ex.Message); } Assert.IsNotNull(fileResult.resultData); }
/// <summary> /// 从微信服务器下载多媒体文件,返回实际存储在本地的文件名,null则下载失败 /// </summary> /// <param name="filePathName">保存在本地的文件名,(由于文件扩展名未知)文件名以实际返回为准</param> /// <param name="media_id">媒体文件Id</param> /// <returns>实际存储在本地的文件名</returns> public string DownloadMediaFile(string filePathName, string media_id) { string url = "http://file.api.weixin.qq.com/cgi-bin/media/get?access_token={0}&media_id={1}"; url = string.Format(url, Connect.GetAccessToken(), media_id); try { string fileName = SimulateRequest.DownloadFile(url, filePathName); _logObj.InfoFormat("下载多媒体文件DownloadMediaFile(),微信处理成功,文件存储为:" + fileName); return(fileName); } catch (Exception ex) { if (ex.Message.StartsWith("{") && ex.Message.EndsWith("}")) { var resultObj = JsonConvert.DeserializeObject <JObject>(ex.Message); if (resultObj["errcode"] != null && resultObj["errcode"].ToString() != "0") { _logObj.Error("下载多媒体文件DownloadMediaFile(),微信服务报错"); var errorCode = new WeixinErrorInfo(resultObj["errcode"].ToString()); _logObj.Warn(string.Format("{0}【errmsg:{1}】", errorCode.ToString(), resultObj["errmsg"].ToString())); } } else { _logObj.Error("下载多媒体文件DownloadMediaFile(),出错", ex); } } return(null); }
/// <summary> /// 获取临时素材 /// </summary> /// <param name="mediaId">临时素材的媒体文件ID</param> /// <param name="filePathName">指定个临时包含路径的文件名</param> /// <returns>实际保存好的包含路径的文件名</returns> public WeChatResult <string> GetTempMaterial(string mediaId, string filePathName) { string accessToken = connect.GetAccessToken(); string url = $"https://api.weixin.qq.com/cgi-bin/media/get?access_token={accessToken}&media_id={mediaId}"; try { string fileName = SimulateRequest.DownloadFile(url, filePathName); WeChatResult <string> weChatResult = new WeChatResult <string>("{\"errcode\":0,\"errmsg\":\"SUCCESS\"}"); weChatResult.resultData = fileName; return(weChatResult); } catch (Exception ex) { SystemLogHelper.Error(MethodBase.GetCurrentMethod(), $"获取临时素材GetTempMaterial,报错", ex); WeChatResult <string> errorResult = new WeChatResult <string>(ex.Message); return(errorResult); } }