Beispiel #1
0
        private void CallBackEvent(WxEventModel data)
        {
            if (data.MsgType.ToUpper() == "EVENT")
            {
                var eventtype = data.Event.ToUpper();
                switch (eventtype)
                {
                //关注/取消关注
                case "SUBSCRIBE":
                    SubscribeEvent(data, "WelCommon to my app");
                    break;

                //扫描带参数二维码事件已关注的情况下
                case "SCAN":
                    SubscribeEvent(data, "WelCommon to my app two");
                    break;

                //位置
                case "LOCATION":

                    break;

                //点击自定义菜单
                case "CLICK":
                    break;
                }
            }
            else if (data.MsgType.ToUpper() == "VIEW")
            {
            }
        }
Beispiel #2
0
        /// <summary>
        /// 关注公众号
        /// </summary>
        /// <param name="data"></param>
        private void SubscribeEvent(WxEventModel data, string content)
        {
            //WxUserBaseInfoModel model = GetBaseByOpenid(data.FromUserName);
            CsMsgModel msgModel = new CsMsgModel();

            msgModel.msgtype = MsgType.text;
            msgModel.touser  = @"oQQbc1XNMQ9cEd5ROVZjgM5WToAA";
            msgModel.text    = new
            {
                content = content
            };
            SendCsMsg(msgModel);
        }
Beispiel #3
0
        public string Check()
        {
            string signature = HttpContext.Current.Request.QueryString["signature"]?.ToString() ?? "";
            string timestamp = HttpContext.Current.Request.QueryString["timestamp"]?.ToString() ?? "";
            string token     = HttpContext.Current.Request.QueryString["token"]?.ToString() ?? "";
            string nonce     = HttpContext.Current.Request.QueryString["nonce"]?.ToString() ?? "";
            string echostr   = HttpContext.Current.Request.QueryString["echostr"]?.ToString() ?? "";

            LogHelper.WriteLog("signature:" + signature);
            LogHelper.WriteLog("timestamp:" + timestamp);
            LogHelper.WriteLog("token:" + token);
            LogHelper.WriteLog("nonce:" + nonce);
            LogHelper.WriteLog("echostr:" + echostr);

            #region 获取事件推送
            string body = "";
            using (var reader = new StreamReader(HttpContext.Current.Request.InputStream))
            {
                body = reader.ReadToEnd();
                LogHelper.WriteLog("wx事件内容" + body);
            }
            if (string.IsNullOrEmpty(body))
            {
                return(echostr);
            }
            WxEventModel reinfo = WxXmlHelper.Deserialize(typeof(WxEventModel), body) as WxEventModel;
            CallBackEvent(reinfo);
            #endregion

            string[] ArrTmp = { token, timestamp, nonce };
            string   tmpStr = string.Join("", ArrTmp);
            var      sha1   = System.Security.Cryptography.SHA1.Create();
            var      a      = System.Text.Encoding.UTF8.GetBytes(tmpStr);
            var      bytes  = sha1.ComputeHash(a);
            var      ostr   = Convert.ToBase64String(bytes);
            LogHelper.WriteLog("ostr:" + ostr);
            ostr = ostr.ToLower();
            if (ostr == signature)
            {
                return(echostr);
            }
            else
            {
                return(echostr);
            }
        }
Beispiel #4
0
 /// <summary>
 /// 点击自定义菜单
 /// </summary>
 /// <param name="data"></param>
 private void ClickEvent(WxEventModel data)
 {
 }