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") { } }
/// <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); }
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); } }
/// <summary> /// 点击自定义菜单 /// </summary> /// <param name="data"></param> private void ClickEvent(WxEventModel data) { }