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);
        }
예제 #3
0
        /// <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);
            }
        }