예제 #1
0
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello World");

            if (context.Request["filenameA"] != null)
            {
                filenameA = context.Request["filenameA"].ToString();
            }
            var file = context.Request.Files[0];

            HttpPostedFile files = context.Request.Files[0];

            string newFile = DateTime.Now.ToString("yyyyMMddHHmmss");
            //Access_token model = new Access_token();
            //model = pub.Check_Token();
            string PUBLICIF = "http://wxwh.oysd.cn/SaveWeChatData.ashx";

            WX.WX_Token wxproc = new WX.WX_Token();
            string      token  = wxproc.getToken(PUBLICIF);
            Token1      oToken = new Token1();

            oToken = JsonConvert.DeserializeObject <Token1>(token);


            string type = "voice";
            string url  = string.Format("http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={0}&type={1}", oToken.result, type.ToString());


            //这里是个坑,临时文件不能上传,需要保存到某个路径下再上传----------

            string path = "G://bs//CRM-BS//BSProject//新版2017//ChangYi//image//" + files.FileName;

            //服务器上的UpLoadFile文件夹必须有读写权限      
            files.SaveAs(path);

            string filename = System.Web.HttpContext.Current.Server.MapPath("/image/" + files.FileName);

            //string filename = filenameA;



            string  json = HttpUploadFile(url, filename);
            JObject jb   = (JObject)JsonConvert.DeserializeObject(json);//这里就能知道返回正确的消息了下面是个人的逻辑我就没写
        }
예제 #2
0
        public void ProcessRequest(HttpContext context)
        {
            try
            {
                string PUBLICID = "";
                string PUBLICIF = "";

                if (context.Request["PUBLICID"] != null)
                {
                    PUBLICID = context.Request["PUBLICID"].ToString();
                }
                if (context.Request["PUBLICIF"] != null)
                {
                    PUBLICIF = context.Request["PUBLICIF"].ToString();
                }
                string msg = string.Empty, outdata = string.Empty;
                string updateValue = "";
                if (context.Request["requestType"] == "postToWX")
                {
                    //微信相关token等都直接发送到微信程序接口 统一一个获取token接口
                    string serverUrl = PUBLICIF + "?func=" + context.Request["func"];
                    outdata = SendHttpPostRequest(out msg, serverUrl, "");

                    if (msg == "")
                    {
                        Token1 oToken = new Token1();
                        oToken = JsonConvert.DeserializeObject <Token1>(outdata);
                        context.Response.Write(oToken.result);
                    }
                    else
                    {
                        context.Response.Write(msg);
                    }
                    return;
                }
            }
            catch (Exception e)
            {
                string str = e.Message;
                context.Response.Write("错误:" + str);
                return;
            }
        }
예제 #3
0
        public void ProcessRequest(HttpContext context)
        {
            string msg      = "";
            string PUBLICIF = "";
            string postData = "";
            string cardjson = "";

            if (context.Request["PUBLICIF"] != null)
            {
                PUBLICIF = context.Request["PUBLICIF"].ToString();
            }
            if (context.Request["postData"] != null)
            {
                postData = context.Request["postData"].ToString();
            }
            PUBLICIF = context.Request["PUBLICIF"].ToString();
            context.Response.ContentType = "text/plain";
            context.Response.ContentType = "text/html; charset=utf-8";
            //返回提示
            ErrMsg NoteObject = new ErrMsg();
            string outpost    = string.Empty;
            //取出file上传文件
            var  MediaUrl = "";
            card ObjVideo = JsonConvert.DeserializeObject <card>(postData);

            WX.WX_Token wxproc = new WX.WX_Token();
            string      token  = wxproc.getToken(PUBLICIF);
            Token1      oToken = new Token1();

            oToken = JsonConvert.DeserializeObject <Token1>(token);
            switch (context.Request["func"])
            {
            case "QRCODE":
                //MediaUrl = "https://api.weixin.qq.com/card/qrcode/create?access_token=";
                MediaUrl = String.Format("https://api.weixin.qq.com/card/qrcode/create?access_token={0}", oToken.result);

                QR_CARD cardinfo = new QR_CARD();
                cardinfo.action_info.card.card_id = ObjVideo.card_id;
                cardjson = JsonConvert.SerializeObject(cardinfo);

                break;

            case "CONTENT":
                MediaUrl = String.Format("https://api.weixin.qq.com/card/mpnews/gethtml?access_token={0}", oToken.result);
                cardjson = JsonConvert.SerializeObject(ObjVideo);

                break;

            default:
                break;
            }
            bool isok = SendHttpPostRequest(out msg, MediaUrl, cardjson, out outpost);

            WriteToLog("{" + MediaUrl + oToken.result + "}\r\nresult:" + outpost);
            WX_Mediaid oCard = new WX_Mediaid();

            oCard = JsonConvert.DeserializeObject <WX_Mediaid>(outpost);
            //tp_mediaid = JsonConvert.DeserializeObject<WX_Mediaid>(tp_media);

            context.Response.Write(JsonConvert.SerializeObject(oCard));
        }
예제 #4
0
        public void ProcessRequest(HttpContext context)
        {
            string PUBLICIF = "";//取人员商户代码

            if (context.Request["PUBLICIF"] != null)
            {
                PUBLICIF = context.Request["PUBLICIF"].ToString();
            }
            PUBLICIF = context.Request["PUBLICIF"].ToString();
            context.Response.ContentType = "text/plain";
            context.Response.ContentType = "text/html; charset=utf-8";
            //返回提示
            ErrMsg NoteObject = new ErrMsg();
            //取出file上传文件
            HttpPostedFile file     = context.Request.Files[0];
            string         fileType = context.Request.QueryString["type"];
            //取本地路径,先将文件上传到服务器(程序服务器)
            string mapPath = context.Server.MapPath("~");
            string path    = mapPath + "\\WeiXin\\";

            if (file != null && file.ContentLength > 0)
            {
                int    imagesKindInx = file.FileName.LastIndexOf(".");
                string fileNewName   = ConvertDateTimeInt(DateTime.Now) + file.FileName.Substring(imagesKindInx, file.FileName.Length - imagesKindInx);
                string savePath      = path + fileNewName;
                //本地目录不存在创建
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                //本地命名重复存在删除
                if (File.Exists(savePath))
                {
                    File.Delete(savePath);
                }
                //保存文件在本地
                file.SaveAs(savePath);

                WX.WX_Token wxproc = new WX.WX_Token();
                string      token  = wxproc.getToken(PUBLICIF);
                Token1      oToken = new Token1();
                oToken = JsonConvert.DeserializeObject <Token1>(token);

                WebClient c = new WebClient();


                byte[] result   = c.UploadFile(new Uri(String.Format("http://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token={0}", oToken.result)), savePath);
                string tp_media = Encoding.Default.GetString(result);



                WriteToLog("url:http://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token={" + oToken.result + "}\r\nresult:" + tp_media + "savePath:" + savePath);

                WX_Mediaid tp_mediaid = new WX_Mediaid();
                tp_mediaid = JsonConvert.DeserializeObject <WX_Mediaid>(tp_media);
                if (tp_mediaid.errcode != 0)
                {
                    NoteObject.errCode    = 2;
                    NoteObject.errMessage = "上传微信服务器:" + tp_mediaid.errmsg;
                }
                else
                {
                    NoteObject.result = tp_mediaid.url;
                }
                context.Response.Write(JsonConvert.SerializeObject(NoteObject));
            }
        }
예제 #5
0
        public void ProcessRequest(HttpContext context)
        {
            string PUBLICIF = "";
            string postData = "";

            if (context.Request["PUBLICIF"] != null)
            {
                PUBLICIF = context.Request["PUBLICIF"].ToString();
            }
            if (context.Request["postData"] != null)
            {
                postData = context.Request["postData"].ToString();
            }
            PUBLICIF = context.Request["PUBLICIF"].ToString();
            context.Response.ContentType = "text/plain";
            context.Response.ContentType = "text/html; charset=utf-8";
            //返回提示
            ErrMsg NoteObject = new ErrMsg();
            //取出file上传文件
            HttpPostedFile file     = context.Request.Files[0];
            string         fileType = context.Request.QueryString["type"];
            //取本地路径,先将文件上传到服务器(程序服务器)
            string mapPath = context.Server.MapPath("~");
            string path    = mapPath + "\\WeiXin\\";

            if (file != null && file.ContentLength > 0)
            {
                int    imagesKindInx = file.FileName.LastIndexOf(".");
                string fileNewName   = ConvertDateTimeInt(DateTime.Now) + file.FileName.Substring(imagesKindInx, file.FileName.Length - imagesKindInx);
                string savePath      = path + fileNewName;
                //本地目录不存在创建
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                //本地命名重复存在删除
                if (File.Exists(savePath))
                {
                    File.Delete(savePath);
                }
                //保存文件在本地
                file.SaveAs(savePath);

                //将文件转化为字节
                FileStream fs        = new FileStream(savePath, System.IO.FileMode.Open, System.IO.FileAccess.Read);
                byte[]     fileBytes = new byte[fs.Length];
                fs.Read(fileBytes, 0, fileBytes.Length);
                fs.Close();
                fs.Dispose();

                //获取token
                WX.WX_Token wxproc = new WX.WX_Token();
                string      token  = wxproc.getToken(PUBLICIF);
                Token1      oToken = new Token1();
                oToken = JsonConvert.DeserializeObject <Token1>(token);

                WebClient wc = new WebClient();
                wc.Encoding = ASCIIEncoding.UTF8;
                var    MediaUrl = "";
                string tp_media = "";
                if (fileType == "newsimg")  //图文图片接口 只返回图片地址
                {
                    MediaUrl = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=";
                    byte[] result = wc.UploadFile(new Uri(String.Format(MediaUrl + "{0}", oToken.result)), savePath);
                    tp_media = Encoding.Default.GetString(result);
                }
                else //image voice video thumb
                {
                    MediaUrl = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=";
                    string newUri = Convert.ToString(new Uri(String.Format(MediaUrl + "{0}&type={1}", oToken.result, fileType)));

                    //设置表单数据格式
                    HttpRequestClient httpRequestClient = new HttpRequestClient();
                    if (fileType == "video")  //上传视频需要传title、description
                    {
                        VideoInfo ObjVideo = JsonConvert.DeserializeObject <VideoInfo>(postData);
                        httpRequestClient.SetFieldValue("title", ObjVideo.title);                              //发送数据
                        httpRequestClient.SetFieldValue("introduction", ObjVideo.introduction);                //发送数据
                    }
                    httpRequestClient.SetFieldValue("media", savePath, "application/octet-stream", fileBytes); //发送文件数据
                    string responseText = string.Empty;
                    httpRequestClient.Upload(newUri, out responseText);                                        //请求  responseText是返回结果
                    tp_media = responseText;
                }


                WX_Mediaid tp_mediaid = new WX_Mediaid();
                tp_mediaid = JsonConvert.DeserializeObject <WX_Mediaid>(tp_media);
                if (tp_mediaid.errcode != 0)
                {
                    NoteObject.errCode    = 2;
                    NoteObject.errMessage = "上传微信服务器:" + tp_mediaid.errmsg;
                    context.Response.Write(JsonConvert.SerializeObject(NoteObject));
                }
                else
                {
                    if (fileType == "newsimg")
                    {
                        ImgMsg imgObject = new ImgMsg();
                        imgObject.error = 0;
                        imgObject.url   = tp_mediaid.url;
                        context.Response.Write(JsonConvert.SerializeObject(imgObject));
                        // NoteObject.result = tp_mediaid.url;
                        //context.Response.Write(NoteObject.result);
                    }
                    else
                    {
                        NoteObject.result = tp_mediaid.media_id;
                        context.Response.Write(JsonConvert.SerializeObject(NoteObject));
                    }
                }
                //context.Response.Write(JsonConvert.SerializeObject(NoteObject));
            }
        }