/// <summary> /// sssss /// </summary> /// <returns></returns> public ActionResult Index() { #region 微信验证URL // 微信加密签名 string signature = Request["SIGNATURE"]; // 时间戮 string timestamp = Request["TIMESTAMP"]; // 随机数 string nonce = Request["NONCE"]; // 随机字符串 string echostr = Request["echostr"]; if (!string.IsNullOrWhiteSpace(signature) && !string.IsNullOrWhiteSpace(timestamp) && !string.IsNullOrWhiteSpace(nonce) && !string.IsNullOrWhiteSpace(echostr)) { var re = WXMethdBLL.CheckURL(signature, timestamp, nonce, echostr); return(Content(re)); } #endregion else { string _token = CommonBLL.GetAccess_token(); StreamReader sr = new StreamReader(Request.InputStream, Encoding.UTF8); string text = sr.ReadToEnd(); if (!string.IsNullOrEmpty(text)) { string resStr = ""; var eventmodel = WXMethdBLL.CreateMessage(text); if (eventmodel == null) { return(Content("")); } //关注事件 if (eventmodel is SubscribeEvent) { SubscribeEvent model = eventmodel as SubscribeEvent; var fromUser = UserBLL.GetUserInfo(eventmodel.FromUserName); if (fromUser == null) { #region 第一次关注 fromUser = UserBLL.GetUserDetail(_token, eventmodel.FromUserName); fromUser.count = 0; UserBLL.SaveUsers(fromUser); if (!string.IsNullOrWhiteSpace(model.EventKey)) { model.EventKey = model.EventKey.Substring(model.EventKey.IndexOf("_") + 1); var arr = model.EventKey.Split(new char[] { '#' }, StringSplitOptions.RemoveEmptyEntries); string toUserOpenid = arr[0]; string key = arr[1]; var user = UserBLL.SaveUserShareCount(toUserOpenid, key); //根据不同的活动添加/更新数据 var count = user.count; #region 生成分享活动不同生成不同的回复 string remarkvalue = CommonBLL.CreateSendFromMSG(key, count, fromUser); #endregion string content = CommonBLL.SendKeFuMsg(toUserOpenid, remarkvalue); } #endregion } resStr = WXMethdBLL.ResponseMsg(new Modal.WeiXinRequest.ContentRequest() { FromUserName = model.ToUserName, ToUserName = model.FromUserName, Content = @"欢迎你,家长朋友。 我们是一帮小学教育工作者, 工作之余, 在这里分享教育心得。 领取提示: 热门资料,点击底部菜单获取 其它资料,回复相应关键词获取" }); return(Content(resStr)); } //点击事件生成返回二维码 else if (eventmodel is Modal.WeiXinEvent.ClickEvent) { #region 点击button生成二维码 Modal.WeiXinEvent.ClickEvent model = eventmodel as Modal.WeiXinEvent.ClickEvent; var fromUser = UserBLL.GetUserInfo(eventmodel.FromUserName); if (fromUser == null) { fromUser = UserBLL.GetUserDetail(_token, eventmodel.FromUserName); fromUser.count = 0; UserBLL.SaveUsers(fromUser); } CommonBLL.SendWaitPicMsg(model, fromUser); if (model.EventKey == "huodong1") { int count = UserBLL.FinishShareCount("huodong1"); var setHongdong1Count = Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["huodong1"]); if (count >= setHongdong1Count) { resStr = WXMethdBLL.ResponseMsg(new Modal.WeiXinRequest.ContentRequest() { FromUserName = model.ToUserName, ToUserName = model.FromUserName, Content = @"对不起,亲爱的; 1000套0元包邮【一、二年级语文期末复习资料】已经被抢光了。如果您还需要,请留言给我们,超过100人留言,教研室就加印哦。 心急的家长,也可以进入如下地址原价下单。https://weidian.com/?userid=880432647" }); return(Content(resStr)); } } var ticket = QrcodeBLL.Get_QR_STR_SCENE_Qrcode(_token, model.FromUserName + "#" + model.EventKey); var QrStream = QrcodeBLL.GetQrcodeStream(ticket); var touxiangStream = UserBLL.GetTouxiang(fromUser.headimgurl); byte[] bg = null; if (model.EventKey == "huodong1") { bg = ImgCom.ImgCommon.AddWaterPic(ImgCom.ImgCommon.GetBGImgMemoryStream(model.EventKey), touxiangStream, QrStream, "huodong1", null, ""); } else { bg = ImgCom.ImgCommon.AddWaterPic(ImgCom.ImgCommon.GetBGImgMemoryStream(model.EventKey), touxiangStream, QrStream, null, null, "我领取了"); } var x = MediaBLL.UploadMultimedia(_token, "image", model.ToUserName + ".jpg", bg); resStr = WXMethdBLL.ResponseMsg(new Modal.WeiXinRequest.ImageReuquest() { FromUserName = model.ToUserName, ToUserName = model.FromUserName, MediaId = x }); return(Content(resStr)); #endregion } //接受消息 else if (eventmodel is Modal.WeiXinEvent.TextMessage) { #region 接收消息处理 Modal.WeiXinEvent.TextMessage model = eventmodel as Modal.WeiXinEvent.TextMessage; string content = ""; //获取后台添加的问答消息 AutoResponse item = wcApi.AutoResponseBLL.GetContentbyQuestion(model.Content); if (item != null && item.type == "text") { content = item.ReplyContent; resStr = WXMethdBLL.ResponseMsg(new Modal.WeiXinRequest.ContentRequest() { FromUserName = model.ToUserName, ToUserName = model.FromUserName, Content = content }); } else if (item != null && item.type == "image") { var x_bgpath = Server.MapPath(item.RoomImgPath); FileStream fs = new FileStream(x_bgpath, FileMode.Open); byte[] x_data = new byte[fs.Length]; fs.Read(x_data, 0, x_data.Length); fs.Close(); fs.Dispose(); var x = MediaBLL.UploadMultimedia(_token, "image", model.ToUserName + ".jpg", x_data); resStr = WXMethdBLL.ResponseMsg(new Modal.WeiXinRequest.ImageReuquest() { FromUserName = model.ToUserName, ToUserName = model.FromUserName, MediaId = x }); } else { resStr = ""; } return(Content(resStr)); #endregion } } return(Content("")); } }
/// <summary> /// 测试函数 /// </summary> /// <returns></returns> public ActionResult Test() { /// hui_open id "oVWwA044l4_gH37FSmlyqvF04LX0" /// feng_open_id "oVWwA0x8AB3fkTdokUxBflTkVIZk" string openid = "oVWwA044l4_gH37FSmlyqvF04LX0"; string token = CommonBLL.GetAccess_token(); UserInfo user = UserBLL.GetUserDetail(token, openid); UserInfo us = UserBLL.GetUserInfo(user.openid); if (us != null) { us.count = us.count + 1; UserBLL.ModifyUsers(us); } else { UserBLL.SaveUsers(user); } //DataSet ds = DbHelperSQL.Query("select * from UserInfo where openid='" + openid + "'"); //if (ds.Tables[0].Rows.Count > 0) //{ // UserBLL.UpdateUser(new UserInfo() { openid = openid, count = int.Parse(ds.Tables[0].Rows[0]["count"].ToString()) + 1 }); //} //else //{ // UserBLL.AddUser(new UserInfo() { openid = openid,count=0}); //} ///头像流 string touxiangUrl = user.headimgurl; Stream mstouxiang = UserBLL.GetTouxiang(touxiangUrl); ///二维码流 string ticket = QrcodeBLL.Get_QR_STR_SCENE_Qrcode(token, openid); Stream mserweima = QrcodeBLL.GetQrcodeStream(ticket); ///背景图片流 var bgpath = AppDomain.CurrentDomain.BaseDirectory + "\\img\\" + "backGroudImd.jpg"; FileStream fs = new FileStream(bgpath, FileMode.Open); byte[] data = new byte[fs.Length]; fs.Read(data, 0, data.Length); fs.Close(); fs.Dispose(); MemoryStream ms = new MemoryStream(data); ///合成图片 var outsteam = ImgCom.ImgCommon.AddWaterPic(ms, mstouxiang, mserweima, "张辉", "测试内容就是这样"); ///上传图片 string media_id = MediaBLL.UploadMultimedia(token, "image", "hui.jpg", outsteam); ///获取临时素材 string path = HttpContext.Server.MapPath("~/img/"); MediaBLL.GetMultimedia(token, media_id, path); return(Content(media_id)); }