コード例 #1
0
        public static string NumberOfCreativesMethod()
        {
            IMpClient mpClient = new MpClient();
            var       request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppId = AppId, AppSecret = AppSecret
                }
            };
            var response = mpClient.Execute(request);

            if (response.IsError)
            {
                return(null);
            }

            var requestUpload = new GetNumberOfCreativesResquest
            {
                AccessToken = response.AccessToken.AccessToken,
            };
            var createResponse = mpClient.Execute(requestUpload);

            if (createResponse.IsError)
            {
                LogHelper.WriteLog(typeof(StatisticsOperation), createResponse.ErrInfo.ErrMsg);
                return(createResponse.ErrInfo.ErrMsg);
            }
            var jsonSerializer = new JavaScriptSerializer();

            return(jsonSerializer.Serialize(createResponse.Body));
        }
コード例 #2
0
        public static string NewCreativeTemporaryMethod()
        {
            string    imgPath  = "D:/Image/WeChatImage.jpg";
            IMpClient mpClient = new MpClient();
            var       request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppId = AppId, AppSecret = AppSecret
                }
            };
            var response = mpClient.Execute(request);

            if (response.IsError)
            {
                return(null);
            }

            var requestUpload = new UploadMediaRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                Type        = "image",
                FileName    = imgPath
            };
            var createResponse = mpClient.Execute(requestUpload);

            if (createResponse.IsError)
            {
                LogHelper.WriteLog(typeof(StatisticsOperation), createResponse.ErrInfo.ErrMsg);
                return(createResponse.ErrInfo.ErrMsg);
            }
            var jsonSerializer = new JavaScriptSerializer();

            return(jsonSerializer.Serialize(createResponse.Body));
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: ludycool/WeiXinF
        /// <summary>
        /// 获取用户分组ID测试
        /// </summary>
        public static void GetUserGroupIdTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            GetUserGroupRequest request2 = new GetUserGroupRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                UserId      = "oSFK4t4xIdeddd4wpxXaUmtKKpMA"
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                Console.WriteLine("查询用户分组ID失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("查询用户分组ID成功,分组ID为:" + response2.GroupId);
            }
        }
コード例 #4
0
ファイル: WinXin.cs プロジェクト: ichoukou/yhq
        /// <summary>
        /// 处理语音消息
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        public bool ProcessVoiceMessage(VoiceReceiveMessage msg, params object[] args)
        {
            string                token    = "";
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                //这里回应1条文本消息,当然您也可以回应其他消息
                MessageHandler.SendTextReplyMessage(msg.ToUserName, msg.FromUserName, "您发送了语音消息");
                return(true);
            }
            else
            {
                token = response.AccessToken.AccessToken;
                //这里回复1条语音消息,当然您也可以回复其他类型的信息
                return(MessageHandler.SendVoiceReplyMessage(token, msg.ToUserName, msg.FromUserName, AppDomain.CurrentDomain.BaseDirectory + "11.mp3"));
            }
        }
コード例 #5
0
ファイル: WinXin.cs プロジェクト: ichoukou/yhq
 /// <summary>
 /// 处理图片消息
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="args"></param>
 /// <returns></returns>
 public bool ProcessImageMessage(ImageReceiveMessage msg, params object[] args)
 {
     try
     {
         // string token = args[0].ToString();
         string                token    = "";
         IMpClient             mpClient = new MpClient();
         AccessTokenGetRequest request  = new AccessTokenGetRequest()
         {
             AppIdInfo = new AppIdInfo()
             {
                 AppID = appId, AppSecret = appSecret
             }
         };
         AccessTokenGetResponse response = mpClient.Execute(request);
         if (response.IsError)
         {
             //这里回应1条文本消息,当然您也可以回应其他消息
             MessageHandler.SendTextReplyMessage(msg.ToUserName, msg.FromUserName, "您发送了语音消息");
             return(true);
         }
         else
         {
             token = response.AccessToken.AccessToken;
             //这里回复一个图片,当然您也可以回复其他类型的消息
             return(MessageHandler.SendImageReplyMessage(token, msg.ToUserName, msg.FromUserName, AppDomain.CurrentDomain.BaseDirectory + "11.jpg"));
         }
     }
     catch (Exception ex)
     {
         //这里回应1条文本消息,当然您也可以回应其他消息
         MessageHandler.SendTextReplyMessage(msg.ToUserName, msg.FromUserName, "出错了:" + ex.ToString());
         return(true);
     }
 }
コード例 #6
0
ファイル: WxChatHelper.cs プロジェクト: songjiang1/www.public
        /// <summary>
        /// 获取微信接口凭证AccessToken
        /// </summary>
        /// <returns></returns>
        public string GetAccessToken(string keyValue = "")
        {
            string                accessToken = string.Empty;
            string                _appId      = WeixinConfig.Instance.AppId;
            string                appSecret   = WeixinConfig.Instance.AppSecret;
            IMpClient             mpClient    = new MpClient();
            AccessTokenGetRequest request     = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = _appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                return("0");
            }
            accessToken = response.AccessToken.AccessToken;
            int timestampNow = ConvertDateTimeInt(DateTime.Now);

            accessTokenBLL.SaveForm(keyValue, new AccessTokenEntity {
                Id         = keyValue,
                ModifyDate = DateTime.Now,
                Timestamp  = timestampNow,
                Token      = accessToken
            });
            return(accessToken);
        }
コード例 #7
0
ファイル: Program.cs プロジェクト: ludycool/WeiXinF
        /// <summary>
        /// 获取关注者列表测试
        /// </summary>
        public static void GetAttentionsTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            GetAttentionsRequest request2 = new GetAttentionsRequest()
            {
                AccessToken = response.AccessToken.AccessToken
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                Console.WriteLine("获取关注者列表失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("获取关注者列表成功");
                Console.WriteLine(Tools.ToJsonString(response2.Attentions));
            }
        }
コード例 #8
0
ファイル: WxAccToken.cs プロジェクト: liuyang1302/WX_V1
        /// <summary>
        /// 获取AccessToken
        /// </summary>
        /// <returns></returns>
        private static AccessTokenInfo GetAccessToken()
        {
            DateTime _now = DateTime.Now;

            //有效时间到 从新获取AccessToken
            if (_accessToken == null || _now >= _expTime)
            {
                IMpClient             mpClient = new MpClient();
                AccessTokenGetRequest request  = new AccessTokenGetRequest()
                {
                    AppIdInfo = new DefAppIdInfo()
                };
                AccessTokenGetResponse response = mpClient.Execute(request);
                if (response.IsError)
                {
                    Logger.WriteTxtLog(string.Format("获取AccessToken发生错误,错误编码为:{0},错误消息为:{1}", response.ErrInfo.ErrCode, response.ErrInfo.ErrMsg));
                    _accessToken = null;
                    return(null);
                }
                _accessToken = response.AccessToken;
                _expTime     = _now.AddSeconds(_accessToken.ExpiresIn - 10);
                Logger.WriteTxtLog(string.Format("获取到AccessToken,值为:{0},有效期:{1}秒", response.AccessToken.AccessToken, response.AccessToken.ExpiresIn));
            }
            return(_accessToken);
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: ludycool/WeiXinF
        /// <summary>
        /// 发送音乐客服消息测试
        /// </summary>
        public static void SendMusicCustomMessageTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }
            //var response2 = MessageHandler.SendMusicCustomMessage(response.AccessToken.AccessToken, "oSFK4twKCGHhYZazqFMIcAx4GshQ", "音乐标题", "音乐描述","","" "d:\\UP.jpg");

            var response2 = MessageHandler.SendMusicCustomMessage(response.AccessToken.AccessToken, "oSFK4twKCGHhYZazqFMIcAx4GshQ", "音乐标题", "音乐描述", "http://wx.011011.com/baba.mp3", "http://wx.011011.com/baba.mp3", "d:\\UP.jpg");

            response2 = MessageHandler.SendMusicCustomMessage(response.AccessToken.AccessToken, "oSFK4twW7yL_vR0ya3jYpT-H19lY", "音乐标题", "音乐描述", "http://wx.011011.com/baba.mp3", "http://wx.011011.com/baba.mp3", "d:\\UP.jpg");



            if (response2.IsError)
            {
                Console.WriteLine("发送失败");
            }
            else
            {
                Console.WriteLine("发送成功");
            }
        }
コード例 #10
0
ファイル: Program.cs プロジェクト: ludycool/WeiXinF
        /// <summary>
        /// 发送语音客服信息测试
        /// </summary>
        public static void SendVoiceCustomMessageTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }
            var response2 = MessageHandler.SendVoiceCustomMessage(response.AccessToken.AccessToken, "oSFK4twKCGHhYZazqFMIcAx4GshQ", "d:\\11.mp3");

            if (response2.IsError)
            {
                Console.WriteLine("发送失败");
            }
            else
            {
                Console.WriteLine("发送成功");
            }
        }
コード例 #11
0
ファイル: Program.cs プロジェクト: ludycool/WeiXinF
        /// <summary>
        /// 发送视频客服信息
        /// </summary>
        public static void SendVideoCustomMessageTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }
            var response2 = MessageHandler.SendVideoCustomMessage(response.AccessToken.AccessToken, "oSFK4twKCGHhYZazqFMIcAx4GshQ", "美好的视屏", "视频描述", "d:\\2771cae7-8756-4dd4-8491-976589ab17cc.mp4");

            response2 = MessageHandler.SendVideoCustomMessage(response.AccessToken.AccessToken, "oSFK4twW7yL_vR0ya3jYpT-H19lY", "视频客服信息", "视频客服信息描述", "d:\\2771cae7-8756-4dd4-8491-976589ab17cc.mp4");



            if (response2.IsError)
            {
                Console.WriteLine("发送失败");
            }
            else
            {
                Console.WriteLine("发送成功");
            }
        }
コード例 #12
0
        /// <summary>
        /// 获取用户分组ID
        /// </summary>
        public static GetUserGroupResponse GetUserGroupId(string userId)
        {
            try
            {
                IMpClient mpClient = new MpClient();
                var       request  = new AccessTokenGetRequest()
                {
                    AppIdInfo = new AppIdInfo()
                    {
                        AppId = AppId, AppSecret = AppSecret
                    }
                };
                var response = mpClient.Execute(request);
                if (response.IsError)
                {
                    return(null);
                }

                var request2 = new GetUserGroupRequest()
                {
                    AccessToken = response.AccessToken.AccessToken,
                    UserId      = userId
                };

                return(mpClient.Execute(request2));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(UserGroupOperation), ex);
                throw new Exception(ex.Message);
            }
        }
コード例 #13
0
ファイル: Program.cs プロジェクト: ludycool/WeiXinF
        /// <summary>
        /// 发送文本客服信息测试
        /// </summary>
        public static void SendTextCustomMessageTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }
            var response2 = MessageHandler.SendTextCustomMessage(response.AccessToken.AccessToken, "oSFK4twKCGHhYZazqFMIcAx4GshQ", "文本客服消息" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));

            if (response2.IsError)
            {
                Console.WriteLine("发送失败");
            }
            else
            {
                Console.WriteLine("发送成功");
            }
        }
コード例 #14
0
        /// <summary>
        /// 获取用户基本信息
        /// </summary>
        public static string GetUserInfo(string openId)
        {
            try
            {
                IMpClient mpClient = new MpClient();
                var       request  = new AccessTokenGetRequest()
                {
                    AppIdInfo = new AppIdInfo()
                    {
                        AppId = AppId, AppSecret = AppSecret
                    }
                };
                var response = mpClient.Execute(request);
                if (response.IsError)
                {
                    return(null);
                }

                var request2 = new GetUserInfoRequest()
                {
                    AccessToken = response.AccessToken.AccessToken,
                    OpenId      = openId
                };

                var response2 = mpClient.Execute(request2);

                return(Tools.ToJsonString(response2.UserInfo));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(UserGroupOperation), ex.Message);
                throw new Exception(ex.Message);
            }
        }
コード例 #15
0
ファイル: WinXin.cs プロジェクト: uwitec/O2O
        /// <summary>
        /// 处理图片消息
        /// </summary>
        /// <param name="msg"></param>
        /// <param name="args"></param>
        /// <returns></returns>
        public bool ProcessImageMessage(ImageReceiveMessage msg, params object[] args)
        {
            try
            {
                // string token = args[0].ToString();
                string token = "";
                IMpClient mpClient = new MpClient();
                AccessTokenGetRequest request = new AccessTokenGetRequest()
                {
                    AppIdInfo = new AppIdInfo() { AppID = appId, AppSecret = appSecret }
                };
                AccessTokenGetResponse response = mpClient.Execute(request);
                if (response.IsError)
                {
                    //这里回应1条文本消息,当然您也可以回应其他消息
                    MessageHandler.SendTextReplyMessage(msg.ToUserName, msg.FromUserName, "您发送了语音消息");
                    return true;
                }
                else
                {
                    token = response.AccessToken.AccessToken;
                    //这里回复一个图片,当然您也可以回复其他类型的消息
                    return MessageHandler.SendImageReplyMessage(token, msg.ToUserName, msg.FromUserName, AppDomain.CurrentDomain.BaseDirectory + "11.jpg");
                }
            }
            catch (Exception ex)
            {
                //这里回应1条文本消息,当然您也可以回应其他消息
                MessageHandler.SendTextReplyMessage(msg.ToUserName, msg.FromUserName, "出错了:" + ex.ToString());
                return true;

            }
        }
コード例 #16
0
ファイル: CustomMsgBack.aspx.cs プロジェクト: uwitec/O2O
        /// <summary>
        /// 回复数据
        /// </summary>
        void savePave()
        {
            string appId = System.Configuration.ConfigurationManager.AppSettings["YHQAppId"].Trim();
            string appSecret = System.Configuration.ConfigurationManager.AppSettings["YHQAppSecret"].Trim();
            string openid = Utils.GetQueryStringValue("openid");
            string getMsg = Utils.GetFormValue("txtMsg");

            IMpClient mpClient = new MpClient();
            AccessTokenGetRequest request = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo() { AppID = appId, AppSecret = appSecret }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);
            if (response.IsError)
            {
                Console.WriteLine("位置错误..");
                return;
            }
            var response2 = MessageHandler.SendTextCustomMessage(response.AccessToken.AccessToken, openid, getMsg);
            Response.Clear();
            if (response2.IsError)
            {
                Response.Write(UtilsCommons.AjaxReturnJson("0", "发送失败"));
            }
            else
            {
                Response.Write(UtilsCommons.AjaxReturnJson("1", "发送成功"));
            }
            Response.End();
        }
コード例 #17
0
ファイル: WinXin.cs プロジェクト: ichoukou/yhq
        /// <summary>
        /// 取得菜单
        /// </summary>
        /// <returns></returns>
        public static List <Button> GetMenu()
        {
            //取得菜单信息
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                return(null);
            }
            else
            {
                GetMenuRequest getRequest = new GetMenuRequest()
                {
                    AccessToken = response.AccessToken.AccessToken
                };
                var getResponse = mpClient.Execute(getRequest);
                if (getResponse.IsError)
                {
                    return(null);
                }
                else
                {
                    var m = getResponse.Menu.menu.button;
                    return(m);
                }
            }
        }
コード例 #18
0
ファイル: CustomMsgBack.aspx.cs プロジェクト: ichoukou/yhq
        /// <summary>
        /// 回复数据
        /// </summary>
        void savePave()
        {
            string appId     = System.Configuration.ConfigurationManager.AppSettings["YHQAppId"].Trim();
            string appSecret = System.Configuration.ConfigurationManager.AppSettings["YHQAppSecret"].Trim();
            string openid    = Utils.GetQueryStringValue("openid");
            string getMsg    = Utils.GetFormValue("txtMsg");

            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("位置错误..");
                return;
            }
            var response2 = MessageHandler.SendTextCustomMessage(response.AccessToken.AccessToken, openid, getMsg);

            Response.Clear();
            if (response2.IsError)
            {
                Response.Write(UtilsCommons.AjaxReturnJson("0", "发送失败"));
            }
            else
            {
                Response.Write(UtilsCommons.AjaxReturnJson("1", "发送成功"));
            }
            Response.End();
        }
コード例 #19
0
ファイル: WinXin.cs プロジェクト: ichoukou/yhq
        /// <summary>
        /// 获取用户基本信息
        /// </summary>
        /// <param name="OpenId">用户OpenId</param>
        /// <returns></returns>
        public static User GetUserInfo(string OpenId)
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                return(null);
            }

            GetUserInfoRequest request2 = new GetUserInfoRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                OpenId      = OpenId,
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                return(null);
            }
            else
            {
                return(response2.UserInfo);
            }
        }
コード例 #20
0
ファイル: sync_weixin_yonghu.aspx.cs プロジェクト: uwitec/O2O
        protected void Page_Load(object sender, EventArgs e)
        {
            string weixin_appid = "";
            string weixin_secret = "";
            weixin_appid = Utils.GetConfigString("", "YHQAppId").Trim();
            weixin_secret = Utils.GetConfigString("", "YHQAppSecret").Trim();

            if (Utils.GetQueryStringValue("sync") != "1") Utils.RCWE("");

            IMpClient mpClient = new MpClient();
            AccessTokenGetRequest request = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo() { AppID = weixin_appid, AppSecret = weixin_secret }
            };

            AccessTokenGetResponse response = mpClient.Execute(request);
            if (response.IsError)
            {
                Utils.RCWE("获取令牌环失败..");
            }

            GetAttentionsRequest request2 = new GetAttentionsRequest()
            {
                AccessToken = response.AccessToken.AccessToken
            };

            var response2 = mpClient.Execute(request2);
            if (response2.IsError)
            {
                Utils.RCWE("获取关注者列表失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg);
            }

            foreach (var item in response2.Attentions.data.openid)
            {
                var info1 = Eyousoft_yhq.Web.BsendMsg.WeiXin.GetUserInfo(item);

                var info = new Eyousoft_yhq.Model.MWeiXinYongHuInfo();
                info.city = info1.City;
                info.country = info1.Country;
                info.createtime = DateTime.Now;
                info.headimgurl = info1.HeadImgUrl;
                info.language = info1.Language;
                info.latesttime = DateTime.Now;
                info.nickname = info1.NickName;
                info.openid = info1.OpenId;
                info.province = info1.Province;
                info.sex = info1.Sex;
                info.subscribe = info1.SubScribe;
                info.subscribe_time = info1.SubscribeTime;
                info.unionid = string.Empty;
                info.YongHuId = Guid.NewGuid().ToString();

                new Eyousoft_yhq.BLL.BWeiXin().YongHu_C(info);
            }

            Utils.RCWE("获取关注者列表成功");
        }
コード例 #21
0
        public static string UploadCreativeGraphicMessageMethod()
        {
            IMpClient mpClient = new MpClient();
            var       request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppId = AppId, AppSecret = AppSecret
                }
            };
            var response = mpClient.Execute(request);

            if (response.IsError)
            {
                return(null);
            }
            GraphicInterfaceMessage permanent = new GraphicInterfaceMessage
            {
                ThumbMediaId     = "TpuIFr0VPcAnD3nObZzDiuLFJeEK8repP9HOTg7WwBmgHCTZdWHRj7ZOsO67H8SG",
                Author           = "ceshi",
                Title            = "测试标题",
                ContentSourceUrl = "www.baidu.com",
                Content          = "测试内容",
                Digest           = "测试的描述打发打发",
                ShowCoverPic     = "1"
            };

            List <GraphicInterfaceMessage> list = new List <GraphicInterfaceMessage> {
                permanent
            };

            GraphicInterfaceMessageList meList = new GraphicInterfaceMessageList {
                GraphicInterfaceMessagesList = list
            };

            InterfaceMessageList meMaterial = new InterfaceMessageList
            {
                GraphicInterface = meList
            };

            var s             = meMaterial.ToJsonString();
            var requestUpload = new GraphicInterfaceMessageRequest
            {
                AccessToken = response.AccessToken.AccessToken,
                SendData    = s
            };
            var createResponse = mpClient.Execute(requestUpload);

            if (createResponse.IsError)
            {
                LogHelper.WriteLog(typeof(StatisticsOperation), createResponse.ErrInfo.ErrMsg);
                return(createResponse.ErrInfo.ErrMsg);
            }
            var jsonSerializer = new JavaScriptSerializer();

            return(jsonSerializer.Serialize(createResponse.Body));
        }
コード例 #22
0
        public static string GetDailyGraphicMassMethod()
        {
            //DateTime StartDate = DateTime.Parse("2016-08-01");
            //DateTime EndDate = DateTime.Parse("2016-08-04");
            string StartDate = "2016-08-01";
            string EndDate   = "2016-08-01";

            try
            {
                IMpClient mpClient = new MpClient();
                var       request  = new AccessTokenGetRequest()
                {
                    AppIdInfo = new AppIdInfo()
                    {
                        AppId = AppId, AppSecret = AppSecret
                    }
                };
                var response = mpClient.Execute(request);
                if (response.IsError)
                {
                    return(null);
                }

                var startDate = new Statistics
                {
                    BeginDate = StartDate,
                    EndDate   = EndDate
                };

                var createRequest = new GetDailyGraphicMassRequest
                {
                    AccessToken = response.AccessToken.AccessToken,
                    SendData    = startDate.ToCreateJsonString()
                };

                var createResponse = mpClient.Execute(createRequest);
                if (createResponse.IsError)
                {
                    LogHelper.WriteLog(typeof(StatisticsOperation), createResponse.ErrInfo.ErrMsg);
                    return(createResponse.ErrInfo.ErrMsg);
                }
                var jsonSerializer = new JavaScriptSerializer();
                return(jsonSerializer.Serialize(createResponse.DailyGraphicBulkStatistics));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(StatisticsOperation), ex);
                throw new Exception(ex.Message);
            }
        }
コード例 #23
0
        /// <summary>
        /// 获取用户基本信息
        /// </summary>
        /// <param name="openid"></param>
        private UserInfoR GetUserInfo(string openid)
        {
            if (string.IsNullOrEmpty(openid))
            {
                return(null);
            }
            StringBuilder         url      = new StringBuilder();
            IMpClient             mpClient = new MpClient();
            UserInfoR             userinfo = null;
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = ConfigHelper.AppSettings("WEPAY_WEB_APPID"), AppSecret = ConfigHelper.AppSettings("WEPAY_WEb_AppSecret")
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                userinfo            = new FJCWebApp.CommonClass.UserInfoR();
                userinfo.headimgurl = "/Content/Images/top.png";
                userinfo.province   = response.ErrInfo.ErrMsg;
                userinfo.city       = response.ErrInfo.ErrCode.ToString();
            }
            else
            {
                url.AppendFormat("https://api.weixin.qq.com/cgi-bin/user/info?access_token={0}&openid={1}&lang=zh_CN", response.AccessToken.AccessToken, openid);

                var client  = new HttpClient();
                var retJson = client.GetAsync(url.ToString()).Result.Content.ReadAsStringAsync().Result;

                try
                {
                    Business.Base_SysLogBll.Instance.WriteLog("", Business.OperationType.Query, "-1", retJson);
                    userinfo = JsonConvert.DeserializeObject <UserInfoR>(retJson);
                }
                catch (Exception ex)
                {
                    userinfo            = new FJCWebApp.CommonClass.UserInfoR();
                    userinfo.headimgurl = "/Content/Images/top.png";
                    userinfo.province   = ex.Message;
                    userinfo.city       = response.Body;
                }
            }

            return(userinfo);
        }
コード例 #24
0
        /// <summary>
        /// 修改分组
        /// </summary>
        public static void ModifyGroup()
        {
            try
            {
                IMpClient mpClient = new MpClient();
                var       request  = new AccessTokenGetRequest()
                {
                    AppIdInfo = new AppIdInfo()
                    {
                        AppId = AppId, AppSecret = AppSecret
                    }
                };
                var response = mpClient.Execute(request);
                if (response.IsError)
                {
                    return;
                }

                var groupInfo = new Group()
                {
                    Id   = "101",
                    Name = "修改后的分组"
                };

                var request2 = new ModifyGroupRequest()
                {
                    AccessToken = response.AccessToken.AccessToken,
                    GroupInfo   = groupInfo,
                    SendData    = groupInfo.ToModifyJsonString()
                };

                var response2 = mpClient.Execute(request2);
                if (response2.IsError)
                {
                    LogHelper.WriteLog(typeof(UserGroupOperation), response2.ErrInfo.ErrMsg);
                }
                else
                {
                    GetGroups(); //查询一把,显示一下信息
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(UserGroupOperation), ex);
                throw new Exception(ex.Message);
            }
        }
コード例 #25
0
        public static void QrCodeCreateMethod()
        {
            IMpClient mpClient = new MpClient();
            var       request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppId = AppId, AppSecret = AppSecret
                }
            };
            var response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            var msg = new QrCodeCreateMessage()
            {
                SceneId        = 22,
                ExpireSeconds  = 1800,
                ActionName     = "QR_LIMIT_SCENE", //QR_SCENE为临时,QR_LIMIT_SCENE为永久
                LocalStoredDir = "D:\\"
            };

            var createRequest = new QrCodeCreateRequest()
            {
                AccessToken         = response.AccessToken.AccessToken,
                QrCodeCreateMessage = msg,
                SendData            = msg.ToJsonString()
            };

            var createResponse = mpClient.Execute(createRequest);

            ticketKey = createResponse.QrCodeUrl;
            if (createResponse.IsError)
            {
                HttpContext.Current.Response.Write("创建二维码失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg);
            }
            else
            {
                HttpContext.Current.Response.Write("创建二维码成功,二维码链接地址为:" + createResponse.QrCodeUrl + "本地存储路径为:" + createResponse.LocalFilePath);
            }
        }
コード例 #26
0
        public static string GetCreativeList()
        {
            string    type     = "news";
            int       offset   = 0;
            int       count    = 1;
            IMpClient mpClient = new MpClient();
            var       request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppId = AppId, AppSecret = AppSecret
                }
            };
            var response = mpClient.Execute(request);

            if (response.IsError)
            {
                return(null);
            }

            MaterialList materialList = new MaterialList
            {
                Type   = type,
                Offset = offset,
                Count  = count
            };

            var requestUpload = new GetMaterialListRequest
            {
                AccessToken = response.AccessToken.AccessToken,
                SendData    = materialList.ToJsonString()
            };
            var createResponse = mpClient.Execute(requestUpload);

            if (createResponse.IsError)
            {
                LogHelper.WriteLog(typeof(StatisticsOperation), createResponse.ErrInfo.ErrMsg);
                return(createResponse.ErrInfo.ErrMsg);
            }
            var jsonSerializer = new JavaScriptSerializer();

            return(jsonSerializer.Serialize(createResponse.Body));
        }
コード例 #27
0
 private static AccessTokenGetResponse UserValidityJudgment(IMpClient mpClient)
 {
     try
     {
         var request = new AccessTokenGetRequest()
         {
             AppIdInfo = new AppIdInfo()
             {
                 AppId = AppId, AppSecret = AppSecret
             }
         };
         return(mpClient.Execute(request));
     }
     catch (Exception ex)
     {
         LogHelper.WriteLog(typeof(UserGroupOperation), ex);
         throw new Exception(ex.Message);
     }
 }
コード例 #28
0
ファイル: Program.cs プロジェクト: ludycool/WeiXinF
        /// <summary>
        /// 修改分组测试
        /// </summary>
        public static void ModifyGroupTest()
        {
            IMpClient             mpClient = new MpClient();
            AccessTokenGetRequest request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppID = appId, AppSecret = appSecret
                }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);

            if (response.IsError)
            {
                Console.WriteLine("获取令牌环失败..");
                return;
            }

            Group groupInfo = new Group()
            {
                id   = "101",
                name = "修改后的分组"
            };

            ModifyGroupRequest request2 = new ModifyGroupRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                GroupInfo   = groupInfo,
                SendData    = groupInfo.ToModifyJsonString()
            };

            var response2 = mpClient.Execute(request2);

            if (response2.IsError)
            {
                Console.WriteLine("修改分组失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg);
            }
            else
            {
                Console.WriteLine("修改分组信息成功");
                GetGroupsTest(); //查询一把,显示一下信息
            }
        }
コード例 #29
0
        public static string OpenIdMessageMethod()
        {
            IMpClient mpClient = new MpClient();
            var       request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppId = AppId, AppSecret = AppSecret
                }
            };
            var response = mpClient.Execute(request);

            if (response.IsError)
            {
                return(null);
            }

            string openid = "\"oIXLKvpVPUpvQ7yR2mLSgNer-K5Y\",\"oIXLKvh_-HrDq8KHULTJ99mIHbMA\"";
            OpenIdMessageInterface permanent = new OpenIdMessageInterface
            {
                MediaId = "9onupBukQHhG1T8Pvkau1D4KK6igthNYMPykga803f7j3YvNvawzv5qeZyjEndkA",
                Title   = "测试标题2",
                Msgtype = "mpnews",
                Touser  = openid
            };

            var requestUpload = new OpenIdMessageInterfaceRequest
            {
                AccessToken = response.AccessToken.AccessToken,
                SendData    = permanent.ToCreateJsonString()
            };
            var createResponse = mpClient.Execute(requestUpload);

            if (createResponse.IsError)
            {
                LogHelper.WriteLog(typeof(StatisticsOperation), createResponse.ErrInfo.ErrMsg);
                return(createResponse.ErrInfo.ErrMsg);
            }
            var jsonSerializer = new JavaScriptSerializer();

            return(jsonSerializer.Serialize(createResponse.Body));
        }
コード例 #30
0
        public string GetAccessToken(string oldAccessToken)
        {
            if (string.IsNullOrEmpty(mAccessToken) || mAccessTokenExpiredTime <= DateTime.Now || mAccessToken == oldAccessToken)
            {
                lock (mAccessTokenLocker)
                {
                    if (string.IsNullOrEmpty(mAccessToken) || mAccessTokenExpiredTime <= DateTime.Now || mAccessToken == oldAccessToken)
                    {
                        DateTime timenow = DateTime.Now;

                        IMpClient             mpClient = new MpClient();
                        AccessTokenGetRequest request  = new AccessTokenGetRequest()
                        {
                            AppIdInfo = new AppIdInfo()
                            {
                                AppID = mAppId, AppSecret = mAppSecret
                            }
                        };
                        AccessTokenGetResponse response = mpClient.Execute(request);
                        if (response.IsError)
                        {
                            string msg = string.Format("获取AccessToken失败。 Code:{0},Msg:{1},APPID:{2},Token:{3}", response.ErrInfo.ErrCode, response.ErrInfo.ErrMsg, mAppId, mAppSecret);
                            LogHelper.WriteError(LogModule, msg, null);
                            if (response.ErrInfo.ErrCode == 45009)//reach max api daily quota limit
                            {
                                mAccessToken            = "00000000000";
                                mAccessTokenExpiredTime = DateTime.Today.AddDays(1);
                                return(mAccessToken);
                            }
                            throw new ApplicationException(msg);
                        }
                        else
                        {
                            mAccessToken            = response.AccessToken.AccessToken;
                            mAccessTokenExpiredTime = timenow.AddSeconds((long)(response.AccessToken.ExpiresIn * mAccessTokenCachePeriod));
                            LogHelper.WriteDebug(LogModule, "AccessToken:{0}, ExpiredTime:{1:yyyy-MM-dd HH:mm:ss}", mAccessToken, mAccessTokenExpiredTime);
                        }
                    }
                }
            }
            return(mAccessToken);
        }
コード例 #31
0
        public static string BulkMessagePacketMethod()
        {
            IMpClient mpClient = new MpClient();
            var       request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppId = AppId, AppSecret = AppSecret
                }
            };
            var response = mpClient.Execute(request);

            if (response.IsError)
            {
                return(null);
            }
            PacketInterfaceMessage permanent = new PacketInterfaceMessage
            {
                MediaId = "9onupBukQHhG1T8Pvkau1D4KK6igthNYMPykga803f7j3YvNvawzv5qeZyjEndkA",
                Title   = "测试标题1",
                IsToAll = "false",
                GroupId = 101,
                Msgtype = "mpnews"
            };

            var requestUpload = new GraphicInterfaceMessageRequest
            {
                AccessToken = response.AccessToken.AccessToken,
                SendData    = permanent.ToCreateJsonString()
            };
            var createResponse = mpClient.Execute(requestUpload);

            if (createResponse.IsError)
            {
                LogHelper.WriteLog(typeof(StatisticsOperation), createResponse.ErrInfo.ErrMsg);
                return(createResponse.ErrInfo.ErrMsg);
            }
            var jsonSerializer = new JavaScriptSerializer();

            return(jsonSerializer.Serialize(createResponse.Body));
        }
コード例 #32
0
        /// <summary>
        /// 移动用户分组测试
        /// </summary>
        public static void SetUserGroup(string userId, string groupId)
        {
            try
            {
                IMpClient mpClient = new MpClient();
                var       request  = new AccessTokenGetRequest()
                {
                    AppIdInfo = new AppIdInfo()
                    {
                        AppId = AppId, AppSecret = AppSecret
                    }
                };
                var response = mpClient.Execute(request);
                if (response.IsError)
                {
                    return;
                }

                var request2 = new SetUserGroupRequest()
                {
                    AccessToken = response.AccessToken.AccessToken,
                    UserId      = userId,
                    ToGroupId   = groupId
                };

                var response2 = mpClient.Execute(request2);
                if (response2.IsError)
                {
                    LogHelper.WriteLog(typeof(UserGroupOperation), response2.ErrInfo.ErrMsg);
                }
                else
                {
                    GetGroups(); //查询一把,显示一下信息
                }
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(typeof(UserGroupOperation), ex);
                throw new Exception(ex.Message);
            }
        }
コード例 #33
0
        public void GetAccessTokenMethod()
        {
            IMpClient mpClient = new MpClient();
            var       request  = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo()
                {
                    AppId = AppId, AppSecret = AppSecret
                }
            };
            var response = mpClient.Execute(request);

            if (response.IsError)
            {
                Response.Write(string.Format("获取AccessToken发生错误,错误编码为:{response.ErrInfo.ErrCode},错误消息为:{response.ErrInfo.ErrMsg}"));
            }
            else
            {
                Response.Write(string.Format("获取到AccessToken,值为:{0},有效期:{1}秒", response.AccessToken.AccessToken, response.AccessToken.ExpiresIn));
            }
        }
コード例 #34
0
ファイル: WinXin.cs プロジェクト: uwitec/O2O
        /// <summary>
        /// 获取用户基本信息
        /// </summary>
        /// <param name="OpenId">用户OpenId</param>
        /// <returns></returns>
        public static User GetUserInfo(string OpenId)
        {
            IMpClient mpClient = new MpClient();
            AccessTokenGetRequest request = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo() { AppID = appId, AppSecret = appSecret }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);
            if (response.IsError)
            {
                return null;
            }

            GetUserInfoRequest request2 = new GetUserInfoRequest()
            {
                AccessToken = response.AccessToken.AccessToken,
                OpenId = OpenId,
            };

            var response2 = mpClient.Execute(request2);
            if (response2.IsError)
            {
                return null;
            }
            else
            {
                return response2.UserInfo;
            }
        }
コード例 #35
0
ファイル: WinXin.cs プロジェクト: uwitec/O2O
 /// <summary>
 /// 取得菜单
 /// </summary>
 /// <returns></returns>
 public static List<Button> GetMenu()
 {
     //取得菜单信息
     IMpClient mpClient = new MpClient();
     AccessTokenGetRequest request = new AccessTokenGetRequest()
     {
         AppIdInfo = new AppIdInfo() { AppID = appId, AppSecret = appSecret }
     };
     AccessTokenGetResponse response = mpClient.Execute(request);
     if (response.IsError)
     {
         return null;
     }
     else
     {
         GetMenuRequest getRequest = new GetMenuRequest()
         {
             AccessToken = response.AccessToken.AccessToken
         };
         var getResponse = mpClient.Execute(getRequest);
         if (getResponse.IsError)
         {
             return null;
         }
         else
         {
             var m = getResponse.Menu.menu.button;
             return m;
         }
     }
 }
コード例 #36
0
ファイル: WinXin.cs プロジェクト: uwitec/O2O
        /// <summary>
        /// 获取关注者列表
        /// </summary>
        /// <param name="AttentionsList">返回关注的列表</param>
        /// <param name="NextOpenId">超过一万时最后一个关注OPENID</param>
        /// <returns></returns>
        public static WeiXinResult GetAttentions(ref List<string> AttentionsList, string NextOpenId)
        {
            WeiXinResult AttentionsResult = new WeiXinResult();
            IMpClient mpClient = new MpClient();
            AccessTokenGetRequest request = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo() { AppID = appId, AppSecret = appSecret }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);
            if (response.IsError)
            {
                AttentionsResult.IsResult = false;
                AttentionsResult.ResultMsg = "获取令牌环失败";
                return AttentionsResult;

            }
            string AccessToken = response.AccessToken.AccessToken;
            GetAttentionsRequest request2 = new GetAttentionsRequest()
            {
                AccessToken = AccessToken,
                NextOpenId = NextOpenId
            };

            var response2 = mpClient.Execute(request2);
            if (response2.IsError)
            {
                AttentionsResult.IsResult = false;
                AttentionsResult.ResultMsg = "获取关注者列表失败,错误信息为:" + response2.ErrInfo.ErrCode + "-" + response2.ErrInfo.ErrMsg;
                return AttentionsResult;
            }
            else
            {
                var list = response2.Attentions;
                if (list.total > 0)
                {
                    if (list.data.openid.Count > 0)
                    {
                        AttentionsList.AddRange(list.data.openid);
                        if (list.total > 10000 && !String.IsNullOrEmpty(list.next_openid))//超过一万
                        {
                            return GetAttentions(ref AttentionsList, list.next_openid);
                        }
                        else
                        {
                            // Adpost.Finawin.Utility.ConfigClass.SetConfigKeyValue("next_openid", list.next_openid);
                            AttentionsResult.IsResult = true;
                            AttentionsResult.ResultMsg = "获取关注者列表成功";
                            return AttentionsResult;
                        }
                    }
                    else
                    {
                        AttentionsResult.IsResult = false;
                        AttentionsResult.ResultMsg = "无关注者数据";
                        return AttentionsResult;
                    }
                }
                else
                {
                    AttentionsResult.IsResult = false;
                    AttentionsResult.ResultMsg = "无关注者数据";
                    return AttentionsResult;
                }
            }
        }
コード例 #37
0
ファイル: WinXin.cs プロジェクト: uwitec/O2O
 /// <summary>
 /// 处理语音消息
 /// </summary>
 /// <param name="msg"></param>
 /// <param name="args"></param>
 /// <returns></returns>
 public bool ProcessVoiceMessage(VoiceReceiveMessage msg, params object[] args)
 {
     string token = "";
     IMpClient mpClient = new MpClient();
     AccessTokenGetRequest request = new AccessTokenGetRequest()
     {
         AppIdInfo = new AppIdInfo() { AppID = appId, AppSecret = appSecret }
     };
     AccessTokenGetResponse response = mpClient.Execute(request);
     if (response.IsError)
     {
         //这里回应1条文本消息,当然您也可以回应其他消息
         MessageHandler.SendTextReplyMessage(msg.ToUserName, msg.FromUserName, "您发送了语音消息");
         return true;
     }
     else
     {
         token = response.AccessToken.AccessToken;
         //这里回复1条语音消息,当然您也可以回复其他类型的信息
         return MessageHandler.SendVoiceReplyMessage(token, msg.ToUserName, msg.FromUserName, AppDomain.CurrentDomain.BaseDirectory + "11.mp3");
     }
 }
コード例 #38
0
ファイル: WinXin.cs プロジェクト: uwitec/O2O
        /// <summary>
        /// 创建菜单
        /// </summary>
        public static WeiXinResult CreateMenu()
        {
            WeiXinResult rv = new WeiXinResult { IsResult = false, ResultMsg = "系统错误!" };
            IMpClient mpClient = new MpClient();
            AccessTokenGetRequest request = new AccessTokenGetRequest()
            {
                AppIdInfo = new AppIdInfo() { AppID = appId, AppSecret = appSecret }
            };
            AccessTokenGetResponse response = mpClient.Execute(request);
            if (response.IsError)
            {
                rv.ResultMsg = "获取令牌环失败";
                return rv;
            }
            else
            {
                Menu menu = new Menu();
                List<Button> button = new List<Weixin.Mp.Sdk.Domain.Button>();
                #region 菜单一 产品中心
                Button subBtn1 = new Button()
                {
                    key = "guoneiyou",
                    name = "国内游",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/AppPage/weixin/ProductView.aspx?xianlu=0"
                };
                Button subBtn2 = new Button()
                {
                    key = "guojiyou",
                    name = "国际游",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/AppPage/weixin/ProductView.aspx?xianlu=1"

                };
                Button subBtn3 = new Button()
                {
                    key = "chanpintuijian",
                    name = "产品推荐",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/AppPage/weixin/ProductList.aspx?tuijian=1"
                };
                Button subBtn4 = new Button()
                {
                    key = "chanpinmachaxun",
                    name = "产品码查询",
                    sub_button = null,
                    type = "click",
                    url = "http://www.4008005216.com/AppPage/weixin/Register.aspx"
                };

                Button subBtn5 = new Button()
                {
                    key = "guoneijipiao",
                    name = "国内机票",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/AppPage/weixin/jp_Search.aspx"
                };
                List<Button> subBtnAll = new List<Button>();
                subBtnAll.Add(subBtn1);
                subBtnAll.Add(subBtn2);
                subBtnAll.Add(subBtn3);
                subBtnAll.Add(subBtn4);
                subBtnAll.Add(subBtn5);
                Button btn = new Button()
                {
                    key = "menu1",
                    name = "旅游超市",
                    url = "httpbig",
                    type = "click",
                    sub_button = subBtnAll
                };
                button.Add(btn);

                #endregion
                #region 菜单二 会员中心
                Button Menu2SubBtn1 = new Button()
                {
                    key = "dingdanguanli",
                    name = "订单管理",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/AppPage/weixin/OrderList.aspx"
                };
                Button Menu2SubBtn2 = new Button()
                {
                    key = "zhanghuguanli",
                    name = "账户管理",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/AppPage/weixin/updateUser.aspx"
                };
                Button Menu2SubBtn3 = new Button()
                {
                    key = "yuyue",
                    name = "预约办理",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/AppPage/weixin/YuYue.aspx"
                };

                string _weidianurl = "https://open.weixin.qq.com/connect/oauth2/authorize?";
                _weidianurl += "appid=" + appId;
                _weidianurl += "&redirect_uri=http://www.4008005216.com/WeiXin/oauth2_authorize.aspx";
                _weidianurl += "&response_type=code";
                _weidianurl += "&scope=snsapi_base";
                _weidianurl += "&state=weidian_snsapi_base";
                _weidianurl += "#wechat_redirect";

                Button Menu2SubBtn4 = new Button()
                {
                    key = "wodeweidian",
                    name = "我的微店",
                    sub_button = null,
                    type = "view",
                    url = _weidianurl
                };
                Button Menu2SubBtn5 = new Button()
                {
                    key = "fenxiang",
                    name = "最新分享",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/HuiYuanWeiXin/TuWenFenXiang.aspx"
                };
                List<Button> subBtnAll2 = new List<Button>();
                subBtnAll2.Add(Menu2SubBtn1);
                subBtnAll2.Add(Menu2SubBtn2);
                subBtnAll2.Add(Menu2SubBtn3);
                subBtnAll2.Add(Menu2SubBtn4);
                subBtnAll2.Add(Menu2SubBtn5);

                btn = new Button()
                {
                    key = "huiyuanzhongxin",
                    name = "会员中心",
                    url = "httpbig",
                    type = "click",
                    sub_button = subBtnAll2
                };
                button.Add(btn);

                #endregion
                #region 菜单三 惠旅游
                Button Menu3SubBtn1 = new Button()
                {
                    key = "aboutus",
                    name = "关于我们",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/AppPage/weixin/AboutUs.aspx"
                };
                Button Menu3SubBtn2 = new Button()
                {
                    key = "appdown",
                    name = "APP下载",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/DownApp.aspx"
                };
                Button Menu3SubBtn3 = new Button()
                {
                    key = "recommend",
                    name = "客服反馈",
                    sub_button = null,
                    type = "click",
                    url = "http://www.4008005216.com/AppPage/weixin/Recommend.aspx"
                };

                Button Menu3SubBtn4 = new Button()
                {
                    key = "weimingpian",
                    name = "我的频道",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/huiyuanweixin/mingpian.aspx"
                };

                Button Menu3SubBtn5 = new Button()
                {
                    key = "lvyouguwen",
                    name = "旅游顾问",
                    sub_button = null,
                    type = "view",
                    url = "http://www.4008005216.com/huiyuanweixin/lvyouguwen.aspx"
                };

                List<Button> subBtnAll3 = new List<Button>();
                subBtnAll3.Add(Menu3SubBtn1);
                subBtnAll3.Add(Menu3SubBtn2);
                subBtnAll3.Add(Menu3SubBtn3);

                subBtnAll3.Add(Menu3SubBtn4);
                subBtnAll3.Add(Menu3SubBtn5);

                btn = new Button()
                {
                    key = "menu3",
                    name = "旅游频道",
                    url = "httpbig",
                    type = "click",
                    sub_button = subBtnAll3
                };
                button.Add(btn);
                #endregion
                menu.button = button;
                MenuGroup mg = new MenuGroup()
                {
                    menu = menu
                };
                string postData = mg.ToJsonString();
                CreateMenuRequest createRequest = new CreateMenuRequest()
                {
                    AccessToken = response.AccessToken.AccessToken,
                    SendData = postData
                };
                CreateMenuResponse createResponse = mpClient.Execute(createRequest);
                if (createResponse.IsError)
                {
                    rv.ResultMsg = "创建菜单失败,错误信息为:" + createResponse.ErrInfo.ErrCode + "-" + createResponse.ErrInfo.ErrMsg;
                    return rv;
                }
                else
                {
                    rv.IsResult = true;
                    rv.ResultMsg = "创建成功";
                    return rv;
                }
            }
        }