Exemple #1
0
        /// <summary>
        /// 根据当前日期 判断Access_Token 是否超期
        /// 如果超期返回新的Access_Token  否则返回之前的Access_Token
        /// </summary>
        public string IsExistAccess_Token()
        {
            string            Token = string.Empty;
            WXCustomerService ws    = new WXCustomerService();
            //查询已存在的记录
            WXAccessToken at = ws.GetQueryWXAccessToken();

            Token = at.Access_token;
            if (at.Expires_in <= DateTime.Now)
            {
                WebClient wc = new WebClient();
                wc.Encoding = Encoding.UTF8;

                var url = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type={0}&appid={1}&secret={2}",
                                        "client_credential", "wx1a4fb84b6f156f44", "2b72be8ef2978b11a34fa9ecfadf313b");
                string josn_Token = wc.DownloadString(url);
                if (!josn_Token.Contains("errcode"))
                {
                    string[] test = josn_Token.Split(',');
                    test[0] = test[0].Replace("\"", "");
                    Token   = test[0].Substring(14);
                }
                //修改WXAccessToken表
                WXAccessToken wx = new WXAccessToken();
                wx.Access_token = Token;
                wx.Expires_in   = DateTime.Now.AddSeconds(7000);
                ws.UploadWXAccessToken(wx);
            }

            return(Token);
        }
Exemple #2
0
        /// <summary>
        /// 获取
        /// </summary>
        /// <param name="AppID"></param>
        /// <param name="AppSecret"></param>
        /// <param name="Reflesh">是否更新缓存</param>
        /// <returns></returns>
        public static string GetToken(string AppID, string AppSecret, bool Reflesh)
        {
            string        key     = "access_token_" + AppID;
            WXAccessToken wxToken = null;

            if (!Reflesh)
            {
                wxToken = RedisUtil.Get <WXAccessToken>(key);
                if (wxToken != null && !string.IsNullOrEmpty(wxToken.access_token))
                {
                    return(wxToken.access_token);
                }
            }
            string req_url = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={AppID}&secret={AppSecret}";
            string result  = HttpHelper.GetData(req_url, 5000);

            if (string.IsNullOrEmpty(result))
            {
                return(string.Empty);
            }
            wxToken = JsonConvert.DeserializeObject <WXAccessToken>(result);
            if (wxToken.errcode == 0 && !string.IsNullOrEmpty(wxToken.access_token))
            {
                RedisUtil.Set(key, wxToken, TimeSpan.FromMinutes(60));
                return(wxToken.access_token);
            }
            else
            {
                log4net.LogHelper.WriteInfo(typeof(WxHelper), "GetToken失败result: " + result);
                return(string.Empty);
            }
        }
Exemple #3
0
        /// <summary>
        /// 获取凭证(首先判断数据库是否存在凭证以及是否过期,如过期,重新获取)
        /// </summary>
        /// <returns></returns>
        public WXAccessToken GetAccessToken(int comid, string AppId, string AppSecret)
        {
            try
            {
                DateTime      fitcreatetime = DateTime.Now.AddHours(-2);
                WXAccessToken token         = new WXAccessTokenData().GetLaststWXAccessToken(fitcreatetime, comid);
                if (token == null)
                {
                    string geturl   = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + AppId + "&secret=" + AppSecret;
                    string jsonText = new GetUrlData().HttpGet(geturl);

                    XmlDocument doc = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"root\":" + jsonText + "}");

                    XmlElement rootElement  = doc.DocumentElement;
                    string     access_token = rootElement.SelectSingleNode("access_token").InnerText;

                    //把获取到的凭证录入数据库中
                    token = new WXAccessToken()
                    {
                        Id           = 0,
                        ACCESS_TOKEN = access_token,
                        CreateDate   = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")),
                        Comid        = comid
                    };
                    int edittoken = new WXAccessTokenData().EditAccessToken(token);
                }
                return(token);
            }
            catch
            {
                return(null);
            }
        }
Exemple #4
0
        /// <summary>
        /// 获取AccessToken
        /// </summary>
        private static string GetAccessToken()
        {
            var appId             = BLLConfig.Get("wx_appid");
            var appSecret         = BLLConfig.Get("wx_appsecret");
            var accessToken       = BLLConfig.Get("wx_access_token");
            var accessTokenExpire = BLLConfig.Get("wx_access_token_expire");

            if ((!string.IsNullOrEmpty(accessTokenExpire)) && (!string.IsNullOrEmpty(accessToken)) && DateTime.Now < DateTime.Parse(accessTokenExpire))
            {
                return(accessToken);
            }
            string        parm          = string.Format("grant_type=client_credential&appid={0}&secret={1}", appId, appSecret);
            string        result        = RequestUtil.Get("https://api.weixin.qq.com/cgi-bin/token?" + parm);
            WXAccessToken wxAccessToken = JSONHelper.JsonToObject <WXAccessToken>(result);

            if (wxAccessToken.errcode != 0)
            {
                return(string.Empty);
            }
            using (Entities db = new Entities())
            {
                db.ht_sys_config.FirstOrDefault(p => p.xkey == "wx_access_token").xvalue        = wxAccessToken.access_token;
                db.ht_sys_config.FirstOrDefault(p => p.xkey == "wx_access_token_expire").xvalue = DateTime.Now.AddSeconds(wxAccessToken.expires_in - 60).ToString();
                if (db.SaveChanges() > 0)
                {
                }
                else
                {
                }
            }
            return(wxAccessToken.access_token);
        }
Exemple #5
0
        /// <summary>
        /// 更新最新AccessToken
        /// </summary>
        public void UploadWXAccessToken(WXAccessToken wx)
        {
            DbParam[] dbParams = new DbParam[] {
                new DbParam("@Access_token", DbType.String, wx.Access_token, ParameterDirection.Input),
                new DbParam("@Expires_in", DbType.String, wx.Expires_in.ToString(), ParameterDirection.Input),
            };

            base.ExecuteNoQueryBySqlString("update WXAccessToken set Access_token=@Access_token,Expires_in=@Expires_in", dbParams);
            //return dbParams[1].Value.ObjectToInt32();
        }
        internal int EditAccessToken(WXAccessToken accesstoken)
        {
            string sql = "INSERT INTO [EtownDB].[dbo].[WXAccessToken]([ACCESS_TOKEN],[createdate],[comid])VALUES('" + accesstoken.ACCESS_TOKEN + "','" + accesstoken.CreateDate + "'," + accesstoken.Comid + ")";

            if (accesstoken.Id > 0)
            {
                sql = "UPDATE [EtownDB].[dbo].[WXAccessToken]   SET [ACCESS_TOKEN] = '" + accesstoken.ACCESS_TOKEN + "',[createdate] = '" + accesstoken.CreateDate + "',comid=" + accesstoken.Comid + "  WHERE id=" + accesstoken.Id;
            }
            var cmd = sqlHelper.PrepareTextSqlCommand(sql);

            return((int)cmd.ExecuteNonQuery());
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            initJavascript();
            //根据公司id得到开发者凭据
            WeiXinBasic basicc = new WeiXinBasicData().GetWxBasicByComId(comid);

            if (basicc != null)
            {
                //获取凭证(首先判断数据库是否存在凭证以及是否过期,如过期,重新获取)
                WXAccessToken token = GetAccessToken(comid, basicc.AppId, basicc.AppSecret);

                //获得以前总共抓取关注者列表的次数
                int MaxOtainNo = new ObtainGzListLogData().GetMaxObtainNo(comid);

                //计算需要向微信端发送请求次数
                int weixintotal = AskWeixinTotal(token.ACCESS_TOKEN);//获得关注微信用户总数目
                if (weixintotal == 0)
                {
                    Literal1.Text = "获得关注微信用户总数目出错";
                    return;
                }
                int askno = int.Parse(Math.Ceiling((double)weixintotal / (double)10000).ToString());

                for (int i = 0; i < askno; i++)
                {
                    if (i == 0)//第一次请求,发送无参数next_openid
                    {
                        AskWeixin(token.ACCESS_TOKEN, "", MaxOtainNo + 1);
                    }
                    else //第一次以后请求,发送带参数next_openid
                    {
                        string next_openid = new ObtainGzListLogData().GetNextOpenId(comid, MaxOtainNo + 1);
                        if (next_openid != "")
                        {
                            AskWeixin(token.ACCESS_TOKEN, next_openid, MaxOtainNo + 1);
                        }
                    }
                }

                //BindGrid(comid, MaxOtainNo + 1);
                UnloadJavascript();
                Literal1.Text = "共获取微信关注用户数量:" + weixintotal;
            }
            else
            {
                UnloadJavascript();
                Literal1.Text = "公司开发者凭据获取有误";
            }
        }
 public int EditAccessToken(WXAccessToken accesstoken)
 {
     using (var sql = new SqlHelper())
     {
         try
         {
             var internalData = new InternalWXAccessToken(sql);
             int result       = internalData.EditAccessToken(accesstoken);
             return(result);
         }
         catch
         {
             throw;
         }
     }
 }
 public WXAccessToken GetLaststWXAccessToken(DateTime fitcreatetime, int comid)
 {
     using (var sql = new SqlHelper())
     {
         try
         {
             var           internalData = new InternalWXAccessToken(sql);
             WXAccessToken result       = internalData.GetLaststWXAccessToken(fitcreatetime, comid);
             return(result);
         }
         catch
         {
             throw;
         }
     }
 }
Exemple #10
0
 //获取微信全局Token
 protected void btngGetToken_Click(object sender, EventArgs e)
 {
     try
     {
         string            strSQL   = " SELECT Access_Token, LastReqDate FROM dbo.WeiXinToken WHERE AppId=@AppId";
         DynamicParameters dyParams = new DynamicParameters();
         dyParams.Add("@AppId", GlobalUtils.AppId);
         WXAccessToken wxToken = PublicConn.QueryActivitySingle <WXAccessToken>(strSQL, ref dyParams);
         if (wxToken != null)
         {
             strAccessToken = wxToken.Access_Token + "<br/>" + wxToken.LastReqDate;
         }
     }
     catch (Exception ex)
     {
         Tool.JavaScript.Alert(ex.Message);
     }
 }
Exemple #11
0
 /// <summary>
 /// 更新最新AccessToken
 /// </summary>
 /// <param name="wx"></param>
 public void UploadWXAccessToken(WXAccessToken wx)
 {
     (new WXCustomerAccessor()).UploadWXAccessToken(wx);
 }
Exemple #12
0
        //给客户发送顾问的信息
        public static void Sendweixinchient(string openid, int comid)
        {
            WeiXinBasic basic = new WeiXinBasicData().GetWxBasicByComId(comid);


            string company     = "";
            string channelname = "";
            string name        = "";

            WxMessageLogData messagelogdata = new WxMessageLogData();
            //var messageinfo = messagelogdata.GetWxMessageLogSendTime(comid, openid);//查询2小时内是否给渠道发送过消息

            //if (messageinfo == 0)
            //{

            //会员
            MemberCardData carddata = new MemberCardData();
            var            userdata = new B2bCrmData();

            var userinfo = userdata.GetB2bCrm(openid, comid);

            if (userinfo != null)
            {
                name = userinfo.Name;
            }

            var cardinfo = carddata.GetMemberCardByOpenId(openid);

            if (cardinfo != null)
            {
                //获取渠道
                var channeldata = new MemberChannelData();
                var channelinfo = channeldata.GetChannelDetail(int.Parse(cardinfo.IssueCard.ToString()));
                if (channelinfo != null)
                {
                    channelname = channelinfo.Name; //渠道名称

                    if (channelinfo.Companyid == 0) //内部渠道
                    {
                        B2bCompanyData comdata = new B2bCompanyData();
                        var            cominfo = comdata.GetCompanyBasicById(comid);
                        if (cominfo != null)
                        {
                            company = cominfo.Com_name;
                        }
                    }
                    else
                    { //外部合作单位,调取合作单位名称
                        var channelcompanydata = new MemberChannelcompanyData();
                        var channelcominfo     = channelcompanydata.GetChannelCompany(channelinfo.Companyid.ToString());
                        if (channelcominfo != null)
                        {
                            company = channelcominfo.Companyname;
                        }
                    }
                }
            }


            if (channelname != "" && channelname != "默认渠道" && channelname != "微信注册" && channelname != "网站注册")
            {
                //微信客服 文本消息
                string data = SendWxMsg(comid, openid, 1, "", name + "你好,我是您的服务顾问" + company + "的 " + channelname + "  ,\n请直接在微信上给我语音或文字留言,我会在手机微信上看到留言并很快回复。您不信? 现在就试试…", "", basic.Weixinno);

                //微信模板消息
                new Weixin_tmplmsgManage().WxTmplMsg_SubscribeActReward(comid, openid, name + "你好,我是您的服务顾问" + company + "的 " + channelname + "  , \\n请直接在微信上给我语音或文字留言,我会在手机微信上看到留言并很快回复。您不信? 现在就试试…\\n", "向《我的服务顾问:" + channelname + "》微信咨询", DateTime.Now.ToString(), "");
                WxMessageLog messagelog = new WxMessageLog();
                messagelog.Comid  = comid;
                messagelog.Weixin = openid;
                var messageedit = messagelogdata.EditWxMessageLog(messagelog);//插入日志

                //顾问录入的 问候语音
                int isreplymediasuc = 0;//发送语音消息状态:0失败;1成功

                WXAccessToken m_accesstoken = WeiXinManage.GetAccessToken(basic.Comid, basic.AppId, basic.AppSecret);
                //根据用户微信得到其顾问微信,然后根据微信和标记得到最新的一条保存路径(注:已经上传过语音的即mediaid!="")
                Wxmedia_updownlog udlog = new Wxmedia_updownlogData().GetWxmedia_updownlog(openid, (int)Clientuptypemark.DownGreetVoice, basic.Comid);
                if (udlog == null)
                {
                    isreplymediasuc = 0;
                }
                else
                {
                    string media_id = new WxUploadDownManage().UploadMultimedia(m_accesstoken.ACCESS_TOKEN, "voice", udlog.savepath);
                    if (media_id != "")
                    {
                        Wxmedia_updownlog uplog = new Wxmedia_updownlog
                        {
                            id               = 0,
                            mediaid          = media_id,
                            mediatype        = "voice",
                            savepath         = udlog.savepath,
                            created_at       = ConvertDateTimeInt(DateTime.Now).ToString(),
                            createtime       = DateTime.Now,
                            opertype         = "up",
                            operweixin       = openid,
                            clientuptypemark = (int)Clientuptypemark.DownGreetVoice,//上传多媒体信息
                            comid            = basic.Comid,
                            relativepath     = udlog.relativepath,
                            txtcontent       = "",
                            isfinish         = 1
                        };
                        int uplogresult = new Wxmedia_updownlogData().Edituploadlog(uplog);
                        if (uplogresult == 0)
                        {
                            isreplymediasuc = 0;
                        }
                        else
                        {
                            //resxml = "<xml><ToUserName><![CDATA[" + requestXML.FromUserName + "]]></ToUserName><FromUserName><![CDATA[" + requestXML.ToUserName + "]]></FromUserName><CreateTime>" + ConvertDateTimeInt(DateTime.Now) + "</CreateTime><MsgType><![CDATA[voice]]></MsgType><Voice><MediaId><![CDATA[" + media_id + "]]></MediaId></Voice></xml>";
                            isreplymediasuc = 1;
                            SendWxMsg(comid, openid, 2, "", "", media_id, basic.Weixinno);
                        }
                    }
                    else
                    {
                        isreplymediasuc = 0;
                    }
                }

                ////如果发送语音失败,则发送客服消息
                //if (isreplymediasuc == 0)
                //{
                //}
            }
            //}
        }
Exemple #13
0
        public static string SendWxMsg(int comid, string tousername, int type, string img, string txt, string mediaid, string fromusername)
        {
            //B2b_company_manageuser manageuser = UserHelper.CurrentUser();//客服信息(账户表B2b_company_manageuser)

            B2b_crm crm = new B2bCrmData().GetB2bCrmByWeiXin(tousername);

            if (crm == null)
            {
                return(JsonConvert.SerializeObject(new { type = 1, msg = "发送客服消息失败" }));
            }
            //else
            //{
            //    if (crm.Whetherwxfocus == false)
            //    {
            //        return JsonConvert.SerializeObject(new { type = 1, msg = "微信用户已经取消了关注" });
            //    }
            //}


            WeiXinBasic basicc = new WeiXinBasicData().GetWxBasicByComId(comid);

            if (basicc != null)
            {
                //获取凭证(首先判断数据库是否存在凭证以及是否过期,如过期,重新获取)
                WXAccessToken token = WeiXinManage.GetAccessToken(comid, basicc.AppId, basicc.AppSecret);
                //发送文本信息
                string err = "";//返回错误原因

                string createmenuurl   = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" + token.ACCESS_TOKEN;
                string createmenutext1 = ""; //微信菜单内容
                if (type == 1)               //文本
                {
                    createmenutext1 = "{\"touser\":\"" + tousername + "\", \"msgtype\":\"text\",\"text\":{\"content\":\"" + txt + "\"}}";
                }
                if (type == 2)//语音
                {
                    if (mediaid != "")
                    {
                        createmenutext1 = "{\"touser\":\"" + tousername + "\", \"msgtype\":\"voice\",\"voice\":{\"media_id\":\"" + mediaid + "\"}}";
                    }
                    else
                    {
                        return(JsonConvert.SerializeObject(new { type = 1, msg = "语音mediaid不可为空" }));
                    }
                }
                if (type == 3)//图片
                {
                    if (mediaid != "")
                    {
                        createmenutext1 = "{\"touser\":\"" + tousername + "\", \"msgtype\":\"image\",\"image\":{\"media_id\":\"" + mediaid + "\"}}";
                    }
                    else
                    {
                        return(JsonConvert.SerializeObject(new { type = 1, msg = "图片mediaid不可为空" }));
                    }
                }

                if (err.Length > 0)
                {
                    return(JsonConvert.SerializeObject(new { type = 1, msg = err }));
                }
                else
                {
                    string createmenuutret = new GetUrlData().HttpPost(createmenuurl, createmenutext1);

                    XmlDocument createselfmenudoc = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"root\":" + createmenuutret + "}");

                    XmlElement createselfmenurootElement = createselfmenudoc.DocumentElement;
                    string     createerrcode             = createselfmenurootElement.SelectSingleNode("errcode").InnerText;
                    if (createerrcode != "0")
                    {
                        //短信提示 ,查询会员账户,并检测是否今天发送过短信,如果发送过就不发送了,每天发送一次
                        var crmdata = new B2bCrmData();
                        var crminfo = crmdata.b2b_crmH5(tousername, comid);
                        if (crminfo != null)
                        {
                            if (crminfo.Phone != "")
                            {
                                var smstixing = new WxRequestXmlData().GetWxErr_sms_SendMsgList(comid, crminfo.Phone);
                                if (smstixing == 0)
                                {
                                    var smstixinginsert = new WxRequestXmlData().InsertWxErr_sms_SendMsgList(comid, crminfo.Phone);
                                    if (smstixinginsert != 0)
                                    {
                                        var    cominfo   = B2bCompanyData.GetCompany(comid);
                                        string comname   = "";
                                        string weixincom = "";
                                        if (cominfo != null)
                                        {
                                            comname   = cominfo.Com_name;
                                            weixincom = cominfo.B2bcompanyinfo.Weixinname;
                                        }

                                        ////发送短信
                                        //var smsmsg = "";
                                        //var smssendback = SendSmsHelper.SendSms(crminfo.Phone, "有一条给您发送微信消息接收失败 请关注" + comname + "微信账户: " + weixincom + " ,输入“我的消息”获取消息内容!", comid, out smsmsg);
                                    }
                                }
                            }
                        }

                        //发送客服信息,信息内容录入数据库
                        if (type == 1)//文本
                        {
                            RequestXML retRequestXML = new RequestXML();
                            retRequestXML.PostStr    = createmenutext1;
                            retRequestXML.ToUserName = tousername;
                            //retRequestXML.FromUserName = new WeiXinBasicData().GetWxBasicByComId(comid).Weixinno.ConvertTo<string>("");
                            retRequestXML.FromUserName = fromusername;
                            retRequestXML.CreateTime   = ConvertDateTimeInt(DateTime.Now).ToString();
                            retRequestXML.MsgType      = "text";
                            retRequestXML.Content      = txt;
                            retRequestXML.contentType  = false;
                            retRequestXML.Comid        = comid;
                            retRequestXML.Sendstate    = 0;//发送状态为 未发送


                            int inswxexchangemsg = new WxRequestXmlData().EditWxRequestXmlLog(retRequestXML);
                        }
                        //发送客服信息,信息内容录入数据库
                        if (type == 2)//语音
                        {
                            RequestXML retRequestXML = new RequestXML();
                            retRequestXML.PostStr    = createmenutext1;
                            retRequestXML.ToUserName = tousername;
                            //retRequestXML.FromUserName = new WeiXinBasicData().GetWxBasicByComId(comid).Weixinno.ConvertTo<string>("");
                            retRequestXML.FromUserName = fromusername;
                            retRequestXML.CreateTime   = ConvertDateTimeInt(DateTime.Now).ToString();
                            retRequestXML.MsgType      = "voice";
                            retRequestXML.Recognition  = txt;
                            retRequestXML.contentType  = false;
                            retRequestXML.Comid        = comid;
                            retRequestXML.MediaId      = mediaid;
                            retRequestXML.Sendstate    = 0;//发送状态为 未发送


                            int inswxexchangemsg = new WxRequestXmlData().EditWxRequestXmlLog(retRequestXML);
                        }

                        if (type == 3)//图片
                        {
                            RequestXML retRequestXML = new RequestXML();
                            retRequestXML.PostStr    = createmenutext1;
                            retRequestXML.ToUserName = tousername;
                            //retRequestXML.FromUserName = new WeiXinBasicData().GetWxBasicByComId(comid).Weixinno.ConvertTo<string>("");
                            retRequestXML.FromUserName = fromusername;
                            retRequestXML.CreateTime   = ConvertDateTimeInt(DateTime.Now).ToString();
                            retRequestXML.MsgType      = "image";
                            retRequestXML.PicUrl       = img;
                            retRequestXML.contentType  = false;
                            retRequestXML.Comid        = comid;
                            retRequestXML.Sendstate    = 0;//发送状态为 未发送

                            int inswxexchangemsg = new WxRequestXmlData().EditWxRequestXmlLog(retRequestXML);
                        }


                        return(JsonConvert.SerializeObject(new { type = 1, msg = "回复客服信息失败" + createerrcode }));
                    }
                    else
                    {
                        //发送客服信息,信息内容录入数据库
                        if (type == 1)//文本
                        {
                            RequestXML retRequestXML = new RequestXML();
                            retRequestXML.PostStr    = createmenutext1;
                            retRequestXML.ToUserName = tousername;
                            //retRequestXML.FromUserName = new WeiXinBasicData().GetWxBasicByComId(comid).Weixinno.ConvertTo<string>("");
                            retRequestXML.FromUserName = fromusername;
                            retRequestXML.CreateTime   = ConvertDateTimeInt(DateTime.Now).ToString();
                            retRequestXML.MsgType      = "text";
                            retRequestXML.Content      = txt;
                            retRequestXML.contentType  = false;
                            retRequestXML.Comid        = comid;
                            retRequestXML.Sendstate    = 1;//发送状态为 未发送
                            //retRequestXML.Manageuserid = manageuser.Id;
                            //retRequestXML.Manageusername = manageuser.Accounts;


                            int inswxexchangemsg = new WxRequestXmlData().EditWxRequestXmlLog(retRequestXML);
                        }
                        //发送客服信息,信息内容录入数据库
                        if (type == 2)//语音
                        {
                            RequestXML retRequestXML = new RequestXML();
                            retRequestXML.PostStr    = createmenutext1;
                            retRequestXML.ToUserName = tousername;
                            //retRequestXML.FromUserName = new WeiXinBasicData().GetWxBasicByComId(comid).Weixinno.ConvertTo<string>("");
                            retRequestXML.FromUserName = fromusername;
                            retRequestXML.CreateTime   = ConvertDateTimeInt(DateTime.Now).ToString();
                            retRequestXML.MsgType      = "voice";
                            retRequestXML.Recognition  = txt;
                            retRequestXML.contentType  = false;
                            retRequestXML.Comid        = comid;
                            retRequestXML.MediaId      = mediaid;
                            retRequestXML.Sendstate    = 1;//发送状态为 未发送
                            //retRequestXML.Manageuserid = manageuser.Id;
                            //retRequestXML.Manageusername = manageuser.Accounts;


                            int inswxexchangemsg = new WxRequestXmlData().EditWxRequestXmlLog(retRequestXML);
                        }

                        if (type == 3)//图片
                        {
                            RequestXML retRequestXML = new RequestXML();
                            retRequestXML.PostStr    = createmenutext1;
                            retRequestXML.ToUserName = tousername;
                            //retRequestXML.FromUserName = new WeiXinBasicData().GetWxBasicByComId(comid).Weixinno.ConvertTo<string>("");
                            retRequestXML.FromUserName = fromusername;
                            retRequestXML.CreateTime   = ConvertDateTimeInt(DateTime.Now).ToString();
                            retRequestXML.MsgType      = "image";
                            retRequestXML.PicUrl       = img;
                            retRequestXML.contentType  = false;
                            retRequestXML.Comid        = comid;
                            retRequestXML.Sendstate    = 1;//发送状态为 未发送
                            //retRequestXML.Manageuserid = manageuser.Id;
                            //retRequestXML.Manageusername = manageuser.Accounts;


                            int inswxexchangemsg = new WxRequestXmlData().EditWxRequestXmlLog(retRequestXML);
                        }
                        return(JsonConvert.SerializeObject(new { type = 100, msg = "回复客服信息成功" }));
                    }
                }
            }
            else
            {
                return(JsonConvert.SerializeObject(new { type = 1, msg = "" }));
            }
        }