Пример #1
0
        /// <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));
        }
Пример #2
0
        /// <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);
            }
        }
Пример #3
0
        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);
        }
Пример #4
0
        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));
        }
Пример #5
0
        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;
            }
        }
Пример #6
0
        /// <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));
        }