/// <summary> /// 获取单条活动信息 /// </summary> /// <param name="context"></param> /// <returns></returns> private string GetSingelJuActivity(HttpContext context) { int juActivityId = Convert.ToInt32(context.Request["JuActivityID"]); JuActivityInfo model = bllWeixin.Get <JuActivityInfo>("JuActivityID = " + juActivityId.ToString()); if (model == null) { resp.Status = 0; resp.Msg = "活动不存在"; } else { resp.Status = 1; resp.ExObj = model; } return(Common.JSONHelper.ObjectToJson(resp)); }
/// <summary> ///客服接口 群发 /// </summary> /// <param name="timingTask"></param> /// <returns></returns> public bool SendImageTextMessage(TimingTask timingTask) { BLLWeixin bllWeixin = new BLLWeixin(""); List <BLLWeixin.WeiXinArticle> articleList = new List <BLLWeixin.WeiXinArticle>(); string[] idarray = timingTask.TaskInfo.Split(','); foreach (string id in idarray) { WeixinMsgSourceInfo msg = bllWeixin.Get <WeixinMsgSourceInfo>(string.Format("SourceID={0}", id)); articleList.Add(new BLLWeixin.WeiXinArticle() { Title = msg.Title, Description = msg.Description, Url = msg.Url, PicUrl = msg.PicUrl }); } switch ((ReceiverType)timingTask.ReceiverType) { case ReceiverType.All: bllWeixin.BroadcastKeFuMessageImageText(timingTask.WebsiteOwner, articleList, timingTask.TaskInfo); return(true); case ReceiverType.Group: return(false); case ReceiverType.List: string[] openidArray = timingTask.Receivers.Split(','); foreach (string openid in openidArray) { bllWeixin.SendKeFuMessageImageText(bllWeixin.GetAccessToken(timingTask.WebsiteOwner), openid, articleList); } return(openidArray.Length > 0); default: return(false); } }
public static bool SendTMAllUserScoreDailyAccountBillNotify(string websiteOwner) { BLLWeixin bllWeixin = new BLLWeixin(""); WeixinFollowers model = Common.JSONHelper.JsonToModel <WeixinFollowers>(bllWeixin.GetFollower(bllWeixin.GetAccessToken(), string.Empty)); while (model.count > 0) { Dictionary <string, object> dicOpenId = (Dictionary <string, object>)model.data; object[] openidArry = (object[])dicOpenId.First().Value; foreach (var openid in openidArry) { UserInfo userInfo = bllWeixin.Get <UserInfo>(string.Format("WXOpenId='{0}' and WebsiteOwner='{1}'", openid, websiteOwner)); if (userInfo == null) { continue; } SendTMUserScoreDailyAccountBillNotify(userInfo.UserID, websiteOwner); } model = Common.JSONHelper.JsonToModel <WeixinFollowers>(bllWeixin.GetFollower(bllWeixin.GetAccessToken(), string.Empty)); } return(true); }
public static string SendTMUserScoreDailyAccountBillNotify(string receiverUserId, string websiteOwner) { BLLWeixin bllWeixin = new BLLWeixin(""); BLLWeixin.TMScoreNotification notificaiton = new BLLWeixin.TMScoreNotification(); notificaiton.Url = string.Format("http://{0}/WuBuHui/MyCenter/Index.aspx", System.Web.HttpContext.Current.Request.Url.Host); notificaiton.TemplateId = "8JLCEV3HmIYV3C3bDiGARxRBJqAZosnQEOI4C0d5He4"; notificaiton.First = "您今日的积分对账单,详情如下"; notificaiton.Account = "积分账户"; notificaiton.Time = DateTime.Now.ToString(); notificaiton.Type = "每日积分对账单"; //notificaiton.CreditChange = "每日积分对账单"; UserInfo userInfo = bllWeixin.Get <UserInfo>(string.Format("UserId='{0}' and WebsiteOwner='{1}'", receiverUserId, websiteOwner)); if (userInfo == null) { return(string.Format("用户 {0} 不存在", receiverUserId)); } notificaiton.Number = userInfo.TotalScore.ToString(); notificaiton.Amount = userInfo.TotalScore.ToString(); notificaiton.Remark = "您可以点击下方菜单进入五步会,赚取更多积分!"; return(bllWeixin.SendTemplateMessage(bllWeixin.GetAccessToken(), userInfo.WXOpenId, notificaiton)); }
public void ProcessRequest(HttpContext context) { try { string filePath = context.Request.FilePath; if (filePath.EndsWith("EventMsgNotify.wxopenmsg"))//拦截处理消息 { context.Response.ContentType = "text/plain"; string signature = context.Request["msg_signature"]; //签名串 string timeStamp = context.Request["timestamp"]; //时间戳 string nonce = context.Request["nonce"]; //随机串 string encryptType = context.Request["encrypt_type"]; string xml = ""; //解密后的xml字符串 if (bllWeixinOpen.DecryptMsg(signature, timeStamp, nonce, RequestXML(context).InnerXml, out xml)) { string appId = filePath.Split('/')[2]; #region 微信的测试机器人 if (appId == "wx570bc396a51b8ff8") { var dic = bllWeixinOpen.XmlToDictionary(xml); switch (dic["MsgType"].ToString().ToLower()) { #region 事件消息 case "event": var acctoken = GetToken(); bllWeixin.SendKeFuMessageText(GetToken(), dic["FromUserName"], dic["Event"].ToString() + "from_callback"); break; #endregion #region 文本消息 case "text": if (dic["Content"].ToString().StartsWith("QUERY_AUTH_CODE")) { var code = dic["Content"].Replace("QUERY_AUTH_CODE:", ""); //客服消息 var authInfo = bllWeixinOpen.GetQueryAuth(code); var accessToken = authInfo.authorization_info.authorizer_access_token; bllWeixin.SendKeFuMessageText(accessToken, dic["FromUserName"], code + "_from_api"); SaveToken(accessToken); } else { bllWeixin.SendKeFuMessageText(GetToken(), dic["FromUserName"], "TESTCOMPONENT_MSG_TYPE_TEXT_callback"); } break; #endregion default: break; } context.Response.Write(string.Empty); //context.Response.Flush(); //context.Response.Close(); return; } #endregion #region 一般公众号 WebsiteInfo websiteInfo = bllWeixin.Get <WebsiteInfo>(string.Format(" AuthorizerAppId='{0}'", appId)); if (websiteInfo == null) { return; } bllWeixin.SetWebSiteOwner(websiteInfo.WebsiteOwner); string result = bllWeixin.ActionResultOpen(xml, websiteInfo.WebsiteOwner); if (result.Contains("<Content><![CDATA[]]></Content>") && result.ToLower().Contains("<msgtype>text</msgtype>")) { result = result.Replace("<Content><![CDATA[]]></Content>", "").Replace("<MsgType>Text</MsgType>", "<MsgType><![CDATA[transfer_customer_service]]></MsgType>"); //context.Response.Write(result); //return; } string resp = bllWeixinOpen.EncryptMsg(result, timeStamp, nonce); context.Response.Write(resp); return; #endregion } else { context.Response.Write("fail"); return; } } return; } catch (Exception ex) { context.Response.Write(ex.ToString()); return; } }
/// <summary> ///注册微信会员 /// </summary> /// <param name="context"></param> /// <returns></returns> private string WXReg(HttpContext context) { ZentCloud.BLLJIMP.Model.UserInfo userInfo; WXMemberInfo model = new WXMemberInfo(); string userId = context.Request["userId"]; if (string.IsNullOrWhiteSpace(userId)) { int AutoId = Convert.ToInt32(context.Request["Aid"], 16); //ZCJ_UserInfo AutoID userInfo = weixinBll.Get <ZentCloud.BLLJIMP.Model.UserInfo>(string.Format("AutoID={0}", AutoId)); } else { userInfo = new BLLUser(userId).GetUserInfo(userId); } if (userInfo == null) { resp.Status = 0; resp.Msg = "用户名不存在!"; return(Common.JSONHelper.ObjectToJson(resp)); } model.UserID = userInfo.UserID; model.Name = context.Request["Name"]; model.Company = context.Request["Company"]; model.Postion = context.Request["Postion"]; model.WeixinNumber = context.Request["WeixinNumber"]; model.WeixinOpenID = context.Request["WeixinOpenID"]; //判断是否有拉去到的微信信息,如有则存储下来 if (context.Session[systemSet.WXOAuthAccessTokenEntityKey] != null) { try { //存储授权信息 BLLWXOAuthModule.WXOAuthAccessTokenEntity acModel = (BLLWXOAuthModule.WXOAuthAccessTokenEntity)context.Session[systemSet.WXOAuthAccessTokenEntityKey]; model.AccessToken = acModel.AccessToken; model.RefreshToken = acModel.RefreshToken; model.Scope = acModel.Scope; //using (StreamWriter sw = new StreamWriter(@"C:\test1.txt", true, Encoding.GetEncoding("gb2312"))) //{ // sw.WriteLine(string.Format("{0} acModelEX:{1}", DateTime.Now.ToString(), JSONHelper.ObjectToJson(acModel))); //} } catch (Exception ex) { //using (StreamWriter sw = new StreamWriter(@"C:\test1.txt", true, Encoding.GetEncoding("gb2312"))) //{ // sw.WriteLine(string.Format("{0} 存储授权信息EX:{1}", DateTime.Now.ToString(), ex.Message)); //} } } if (context.Session[systemSet.WXCurrOpenerUserInfoKey] != null) { try { //存储拉取到的用户信息 BLLJIMP.Model.Weixin.WeixinUserInfo usModel = (BLLJIMP.Model.Weixin.WeixinUserInfo)context.Session[systemSet.WXCurrOpenerUserInfoKey]; model.WXCity = usModel.City; model.WXCountry = usModel.Country; model.WXHeadimgurl = usModel.HeadImgUrl; model.WXNickname = usModel.NickName; model.WXPrivilege = usModel.Privilege == null ? "" : Common.JSONHelper.ObjectToJson(usModel.Privilege); model.WXProvince = usModel.Province; model.WXSex = usModel.Sex; //using (StreamWriter sw = new StreamWriter(@"C:\test1.txt", true, Encoding.GetEncoding("gb2312"))) //{ // sw.WriteLine(string.Format("{0} usModel:{1}", DateTime.Now.ToString(), JSONHelper.ObjectToJson(usModel))); //} } catch (Exception ex) { //using (StreamWriter sw = new StreamWriter(@"C:\test1.txt", true, Encoding.GetEncoding("gb2312"))) //{ // sw.WriteLine(string.Format("{0} 存储拉取到的用户信息EX:{1}", DateTime.Now.ToString(), ex.Message)); //} } } if (string.IsNullOrEmpty(model.Name)) { resp.Status = 0; resp.Msg = "请输入姓名"; return(Common.JSONHelper.ObjectToJson(resp)); } model.Phone = context.Request["Phone"]; if (string.IsNullOrEmpty(model.Phone)) { resp.Status = 0; resp.Msg = "请输入手机号码"; return(Common.JSONHelper.ObjectToJson(resp)); } if (!Common.ValidatorHelper.PhoneNumLogicJudge(model.Phone)) { resp.Status = 0; resp.Msg = "手机号码格式不正确"; return(Common.JSONHelper.ObjectToJson(resp)); } model.Email = context.Request["Email"]; if (!string.IsNullOrEmpty(model.Email)) { if (!Common.ValidatorHelper.EmailLogicJudge(model.Email)) { resp.Status = 0; resp.Msg = "Email格式不正确"; return(Common.JSONHelper.ObjectToJson(resp)); } } if (weixinBll.GetCount <WXMemberInfo>(string.Format("UserID='{0}' and WeixinOpenID='{1}'", userInfo.UserID, model.WeixinOpenID)) > 0) { resp.Status = 0; resp.Msg = "您已经注册过了!"; return(Common.JSONHelper.ObjectToJson(resp)); } model.MemberID = long.Parse(weixinBll.GetGUID(ZentCloud.BLLJIMP.TransacType.WXMemberInfoAdd)); if (weixinBll.Add(model)) { resp.Status = 1; resp.Msg = "注册成功!"; } else { resp.Status = 0; resp.Msg = "注册失败!请重试或联系管理员"; } return(Common.JSONHelper.ObjectToJson(resp)); }