Ejemplo n.º 1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //string appid = "wx64dcf57278caa037";
            //string redirect_uri = "http://www.zljdsc.com/test/WxLogin.aspx";
            //string secret = "71c21ab790c34c05e1290a26ff025c70";
            M_Third_Info wxInfo = thirdBll.SelModelByName("wechat");
            string       state  = "";

            if (string.IsNullOrEmpty(Request.QueryString["code"]))//微信登录操作
            {
                state = function.GetRandomString(8).ToLower();
                Session.Add("wx_state", state);
                string url = "https://open.weixin.qq.com/connect/qrconnect?appid=" + wxInfo.ID + "&redirect_uri=" + HttpUtility.UrlEncode(wxInfo.CallBackUrl) + "&response_type=code&scope=snsapi_login&state=" + state + "#wechat_redirect";
                Response.Redirect(url);
            }
            else//登录返回操作
            {
                //检测state参数是否匹配
                if (Session["wx_state"] == null || !Session["wx_state"].Equals(Request.QueryString["state"]))
                {
                    function.WriteErrMsg("参数错误!");
                }
                Session["wx_state"] = null;
                string  url     = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + wxInfo.ID + "&secret=" + wxInfo.Secret + "&code=" + Request.QueryString["code"] + "&grant_type=authorization_code";
                JObject wxinfo  = GetWxInfo(url);
                Appinfo infomod = AppBll.SelModelByOpenID(wxinfo["openid"].ToString(), "wechat");
                if (infomod == null)//新用户注册
                {
                    infomod = GetNewUser(wxinfo);
                }
                M_UserInfo mu = buser.SelReturnModel(infomod.UserID);
                buser.SetLoginState(mu);
                Response.Redirect("/User");
            }
        }
Ejemplo n.º 2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                WxAPI  wxapi = WxAPI.Code_Get();
                string code  = Request.QueryString["code"] ?? "";
                if (string.IsNullOrEmpty(code))
                {
                    return;
                }
                string     result = APIHelper.GetWebResult("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + wxapi.AppId.APPID + "&secret=" + wxapi.AppId.Secret + "&code=" + code + "&grant_type=authorization_code");
                JObject    obj    = (JObject)JsonConvert.DeserializeObject(result);
                string     openid = obj["openid"].ToString();
                Appinfo    umod   = appBll.SelModelByOpenID(openid, "wechat");
                M_UserInfo mu     = new M_UserInfo();
                if (umod == null)
                {
                    umod = new Appinfo();
                    M_WX_User wuMod = wxuserBll.SelForOpenid(wxapi.AppId.ID, openid);
                    if (wuMod == null)
                    {
                        wuMod = wxapi.GetWxUserModel(openid);
                        wxuserBll.Insert(wuMod);
                    }
                    mu.UserName  = "******" + DateTime.Now.ToString("yyyyMMddHHmmss") + function.GetRandomString(2).ToLower();
                    mu.UserPwd   = StringHelper.MD5(function.GetRandomString(6));
                    mu.Email     = function.GetRandomString(10) + "@random.com";
                    mu.HoneyName = wuMod.Name;
                    mu.TrueName  = wuMod.Name;
                    mu.UserID    = buser.Add(mu);

                    umod.UserID     = mu.UserID;
                    umod.SourcePlat = "wechat";
                    umod.OpenID     = wuMod.OpenID;
                    appBll.Insert(umod);
                    M_Uinfo mubase = new M_Uinfo();
                    mubase.UserId = mu.UserID;
                    buser.AddBase(mubase);
                }
                else
                {
                    mu = buser.SelReturnModel(umod.UserID);
                }
                //设置为登录状态
                buser.SetLoginState(mu);
                Response.Redirect(RUrl);
            }
        }
Ejemplo n.º 3
0
    //进入该页即开始推广,自动创建用户,关联APPID
    protected void Page_Load(object sender, EventArgs e)
    {
        int AppID = DataConverter.CLng(Request.QueryString["appid"]);

        B_UserAPP appBll = new B_UserAPP();
        int       puid   = DataConverter.CLng(Session["WX_PUserID"]);
        string    rurl   = DataConvert.CStr(Session["WX_R"]);

        //if (puid < 1) { function.WriteErrMsg("推荐用户不存在"); }
        M_WX_APPID appMod = new M_WX_APPID();//自行置入缓存,使用时取出

        appMod = WxPayApi.Pay_GetByID(AppID);

        if (string.IsNullOrEmpty(rurl))
        {
            string url = HttpUtility.UrlEncode(SiteConfig.SiteInfo.SiteUrl + "/User/");
            rurl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appMod.APPID + "&redirect_uri=" + url + "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
        }

        string     code         = Request["code"];
        string     access_token = APIHelper.GetWebResult("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appMod.APPID + "&secret=" + appMod.Secret + "&code=" + code + "&grant_type=authorization_code");
        JObject    obj          = (JObject)JsonConvert.DeserializeObject(access_token);
        JObject    userobj      = (JObject)JsonConvert.DeserializeObject(APIHelper.GetWebResult("https://api.weixin.qq.com/sns/userinfo?access_token=" + obj["access_token"] + "&openid=" + obj["openid"] + "&lang=zh_CN"));
        string     openID       = obj["openid"].ToString();
        M_UserAPP  umod         = appBll.SelModelByOpenID(openID, "wechat");
        M_UserInfo mu           = new M_UserInfo();

        if (umod != null)
        {
            mu = buser.SelReturnModel(umod.UserID);
            buser.SetLoginState(mu);
            try
            {
                string vpath = SiteConfig.SiteOption.UploadDir + "User/" + mu.UserName + "/wxheadimg.jpg";
                HttpHelper.DownFile(userobj["headimgurl"].ToString(), vpath);
                mu.UserFace = vpath;
                buser.UpdateByID(mu);
            }
            catch (Exception ex)
            {
            }
            if (puid > 0 && DataConvert.CLng(mu.ParentUserID) <= 0)
            {
                if (puid == mu.UserID)
                {
                    function.WriteErrMsg("不能绑定自己!");
                }
                else
                {
                    string err = "";
                    if (CheckParentUser(puid, mu.UserID, ref err))
                    {
                        mu.ParentUserID = puid.ToString();
                        buser.UpdateByID(mu);
                    }
                    else
                    {
                        function.WriteErrMsg("绑定失败,错误信息:" + err);
                    }
                }
            }
            Response.Redirect(rurl);
        }
        else //新用户则注册
        {
            umod            = new M_UserAPP();
            mu.UserName     = "******" + DateTime.Now.ToString("yyyyMMddHHmmss") + function.GetRandomString(2).ToLower();
            mu.UserPwd      = StringHelper.MD5(function.GetRandomString(6));
            mu.Email        = function.GetRandomString(10) + "@wx.com";
            mu.Question     = function.GetRandomString(5);
            mu.Answer       = function.GetRandomString(5);
            mu.ParentUserID = puid.ToString();
            mu.TrueName     = userobj["nickname"].ToString();
            try
            {
                string vpath = SiteConfig.SiteOption.UploadDir + "User/" + mu.UserName + "/wxheadimg.jpg";
                HttpHelper.DownFile(userobj["headimgurl"].ToString(), vpath);
                mu.UserFace = vpath;
            }
            catch (Exception ex)
            {
            }
            mu.GroupID = 1;
            mu.UserID  = buser.Add(mu);

            umod.UserID     = mu.UserID;
            umod.SourcePlat = "wechat";
            umod.OpenID     = openID;
            appBll.Insert(umod);
            M_Uinfo mubase = new M_Uinfo();
            mubase.UserId = mu.UserID;
            buser.AddBase(mubase);
            //推广人得积分
            if (puid > 0)
            {
                M_UserInfo pmu = buser.SelReturnModel(puid);
                if (!pmu.IsNull)
                {
                    buser.ChangeVirtualMoney(pmu.UserID, new M_UserExpHis()
                    {
                        score     = 20,
                        ScoreType = (int)M_UserExpHis.SType.Point,
                        detail    = "新用户[" + mu.UserName + "]注册,获得推广积分:" + 20
                    });
                }
            }
            buser.SetLoginState(mu);
            Response.Redirect(rurl);
        }
    }
Ejemplo n.º 4
0
    private void SendMsg(Object info)
    {
        try
        {
            M_WxTextMsg reqMod = (M_WxTextMsg)info;
            System.Threading.Thread.Sleep(1000);//延迟1秒,避免先于欢迎消息
            M_WX_APPID appmod = new B_WX_APPID().GetAppByWxNo(reqMod.ToUserName);
            if (appmod == null)
            {
                throw new Exception("目标公众号[" + reqMod.ToUserName + "]不存在");
            }
            string     msgStr  = "";
            M_UserAPP  uappMod = new M_UserAPP();
            B_UserAPP  uappBll = new B_UserAPP();
            M_UserInfo mu      = new M_UserInfo();
            uappMod = uappBll.SelModelByOpenID(reqMod.FromUserName, "wechat");
            if (uappMod != null)
            {
                mu = buser.GetUserByUserID(uappMod.UserID);
                M_UserInfo pmu = buser.GetUserByUserID(DataConvert.CLng(reqMod.EventKey.Replace("qrscene_", "")));
                if (mu != null && mu.UserID > 0)
                {
                    if (DataConvert.CLng(mu.ParentUserID) > 0)
                    {
                        msgStr = "您已绑定了推荐人不能重复绑定!";
                    }
                    else
                    {
                        if (mu.UserID == DataConvert.CLng(reqMod.EventKey.Replace("qrscene_", "")))
                        {
                            msgStr = "您扫描的是您自己的二维码!";
                        }
                        else
                        {
                            if (pmu != null && pmu.UserID > 0)
                            {
                                string err = "";
                                if (CheckParentUser(pmu.UserID, mu.UserID, ref err))
                                {
                                    mu.ParentUserID = pmu.UserID.ToString();
                                    if (buser.UpdateByID(mu))
                                    {
                                        msgStr = "您成功绑定了推荐人:" + pmu.TrueName + "!";
                                    }

                                    else
                                    {
                                        msgStr = "绑定推荐人失败!";
                                    }
                                }
                                else
                                {
                                    msgStr = "绑定推荐失败,错误信息:" + err;
                                }
                            }
                            else
                            {
                                msgStr = "绑定推荐失败,推荐人不存在!";
                            }
                        }
                    }
                }
                WxAPI.Code_Get(appmod).SendMsg(reqMod.FromUserName, msgStr);
            }
        }
        catch (Exception ex) { ZLLog.L("微信多信息出错,原因:" + ex.Message); }
    }
Ejemplo n.º 5
0
    /// <summary>
    /// 系统事件,如订阅等处理
    /// </summary>
    public void WxEventHandler(M_WxTextMsg reqMod)
    {
        M_WX_User userMod = null;

        errmsg += ",事件:" + reqMod.Event;
        switch (reqMod.Event.ToLower())
        {
        case "subscribe":
            userMod       = api.GetWxUserModel(reqMod.FromUserName);
            userMod.CDate = DateTime.Now;
            userMod.AppId = api.AppId.ID;
            wxuserBll.Insert(userMod);
            M_WxImgMsg msgmod = JsonConvert.DeserializeObject <M_WxImgMsg>(api.AppId.WelStr);
            msgmod.ToUserName   = reqMod.FromUserName;
            msgmod.FromUserName = reqMod.ToUserName;

            int       pid      = DataConvert.CLng(reqMod.EventKey.Replace("qrscene_", ""));
            M_UserAPP uappMod1 = new M_UserAPP();

            M_UserInfo mu1      = new M_UserInfo();
            M_WX_User  wuserMod = new M_WX_User();
            M_Uinfo    mubase   = new M_Uinfo();
            uappMod1 = uappBll.SelModelByOpenID(reqMod.FromUserName, "wechat");
            wuserMod = api.GetWxUserModel(reqMod.FromUserName);
            if (uappMod1 != null)
            {
                mu1 = buser.GetUserByUserID(uappMod1.UserID);
                if (mu1 != null && mu1.UserID > 0)
                {
                    mu1.TrueName = wuserMod.Name;
                    try
                    {
                        string vpath = SiteConfig.SiteOption.UploadDir + "User/" + mu1.UserName + mu1.UserID + "/wxheadimg.jpg";
                        HttpHelper.DownFile(wuserMod.HeadImgUrl, vpath);
                        mu1.UserFace = vpath;
                    }
                    catch (Exception ex)
                    {
                        ZLLog.L("微信更新头像错误,原因:" + ex.Message);
                    }

                    mu1.GroupID = 1;
                    buser.UpdateByID(mu1);
                }
                else
                {
                    mu1.UserName = "******" + DateTime.Now.ToString("yyyyMMddHHmmss") + function.GetRandomString(2).ToLower();
                    mu1.UserPwd  = StringHelper.MD5(function.GetRandomString(6));
                    mu1.Email    = function.GetRandomString(10) + "@wx.com";
                    mu1.Question = function.GetRandomString(5);
                    mu1.Answer   = function.GetRandomString(5);
                    mu1.TrueName = wuserMod.Name;
                    mu1.GroupID  = 1;
                    try
                    {
                        string vpath = SiteConfig.SiteOption.UploadDir + "User/" + mu1.UserName + mu1.UserID + "/wxheadimg.jpg";
                        HttpHelper.DownFile(wuserMod.HeadImgUrl, vpath);
                        mu1.UserFace = vpath;
                    }
                    catch (Exception ex)
                    {
                        ZLLog.L("微信更新头像错误,原因:" + ex.Message);
                    }

                    mu1.UserID = buser.Add(mu1);

                    uappMod1.UserID     = mu1.UserID;
                    uappMod1.SourcePlat = "wechat";
                    uappMod1.OpenID     = reqMod.FromUserName;
                    uappBll.UpdateByID(uappMod1);
                    mubase.UserId = mu1.UserID;
                    buser.AddBase(mubase);
                }
            }
            else
            {
                uappMod1     = new M_UserAPP();
                mu1.UserName = "******" + DateTime.Now.ToString("yyyyMMddHHmmss") + function.GetRandomString(2).ToLower();
                mu1.UserPwd  = StringHelper.MD5(function.GetRandomString(6));
                mu1.Email    = function.GetRandomString(10) + "@wx.com";
                mu1.Question = function.GetRandomString(5);
                mu1.Answer   = function.GetRandomString(5);
                mu1.TrueName = wuserMod.Name;
                mu1.GroupID  = 1;
                try
                {
                    string vpath = SiteConfig.SiteOption.UploadDir + "User/" + mu1.UserName + mu1.UserID + "/wxheadimg.jpg";
                    HttpHelper.DownFile(wuserMod.HeadImgUrl, vpath);
                    mu1.UserFace = vpath;
                }
                catch (Exception ex)
                {
                    ZLLog.L("微信更新头像错误,原因:" + ex.Message);
                }

                mu1.UserID = buser.Add(mu1);

                uappMod1.UserID     = mu1.UserID;
                uappMod1.SourcePlat = "wechat";
                uappMod1.OpenID     = reqMod.FromUserName;
                uappBll.Insert(uappMod1);
                mubase.UserId = mu1.UserID;
                buser.AddBase(mubase);
            }

            if (string.IsNullOrEmpty(msgmod.Articles[0].PicUrl))     //如未设置图片则以纯文本格式发送,纯文本支持内置超链接
            {
                M_WxTextMsg textMod = ImageToText(msgmod);
                RepToClient(textMod.ToXML());
            }
            else
            {
                RepToClient(msgmod.ToXML());
            }
            //关注时发送多条信息
            if (pid > 0)
            {
                System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(SendMsg), reqMod);
            }
            //关注时发送多条信息
            //System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(SendMsg), reqMod);
            break;

        case "unsubscribe":
            wxuserBll.DelByOpenid(api.AppId.ID, reqMod.FromUserName);
            break;

        case "location":    //用户进入公众号(包含定位信息)
            break;

        case "scan":
            M_UserAPP   uappMod   = new M_UserAPP();
            M_UserInfo  mu        = new M_UserInfo();
            M_WxTextMsg textMod2  = new M_WxTextMsg();
            M_WX_User   wuserMod1 = api.GetWxUserModel(reqMod.FromUserName);
            M_Uinfo     mubase1   = new M_Uinfo();

            textMod2.FromUserName = reqMod.ToUserName;
            textMod2.ToUserName   = reqMod.FromUserName;
            textMod2.MsgType      = "text";
            textMod2.Content      = "";
            uappMod = uappBll.SelModelByOpenID(reqMod.FromUserName, "wechat");
            if (uappMod != null)
            {
                mu = buser.GetUserByUserID(uappMod.UserID);
                M_UserInfo pmu = buser.GetUserByUserID(DataConvert.CLng(reqMod.EventKey));
                if (mu != null && mu.UserID > 0)
                {
                    if (DataConvert.CLng(mu.ParentUserID) > 0)
                    {
                        textMod2.Content = "您已绑定了推荐人不能重复绑定!";
                        RepToClient(textMod2.ToXML());
                    }
                    else
                    {
                        if (mu.UserID == DataConvert.CLng(reqMod.EventKey))
                        {
                            textMod2.Content = "您扫描的是您自己的二维码!";
                        }
                        else
                        {
                            mu.ParentUserID = DataConvert.CLng(reqMod.EventKey).ToString();
                            if (pmu != null && pmu.UserID > 0)
                            {
                                string err = "";
                                try
                                {
                                    if (CheckParentUser(pmu.UserID, mu.UserID, ref err))
                                    {
                                        mu.ParentUserID = pmu.UserID.ToString();
                                        if (buser.UpdateByID(mu))
                                        {
                                            textMod2.Content = "您成功绑定了推荐人:" + pmu.TrueName + "!";
                                        }

                                        else
                                        {
                                            textMod2.Content = "绑定推荐人失败!";
                                        }
                                    }
                                    else
                                    {
                                        textMod2.Content = "绑定推荐失败,错误信息:" + err;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    textMod2.Content = "绑定推荐失败,错误信息:" + pmu.TrueName + "的推荐关系有循环!";
                                }
                            }
                            else
                            {
                                textMod2.Content = "绑定推荐失败,推荐人不存在!";
                            }
                        }
                        RepToClient(textMod2.ToXML());
                    }
                }
            }
            else
            {
                uappMod1    = new M_UserAPP();
                mu.UserName = "******" + DateTime.Now.ToString("yyyyMMddHHmmss") + function.GetRandomString(2).ToLower();
                mu.UserPwd  = StringHelper.MD5(function.GetRandomString(6));
                mu.Email    = function.GetRandomString(10) + "@wx.com";
                mu.Question = function.GetRandomString(5);
                mu.Answer   = function.GetRandomString(5);
                mu.TrueName = wuserMod1.Name;
                mu.GroupID  = 1;
                try
                {
                    string vpath = SiteConfig.SiteOption.UploadDir + "User/" + mu.UserName + mu.UserID + "/wxheadimg.jpg";
                    HttpHelper.DownFile(wuserMod1.HeadImgUrl, vpath);
                    mu.UserFace = vpath;
                }
                catch (Exception ex)
                {
                    ZLLog.L("微信更新头像错误,原因:" + ex.Message);
                }

                M_UserInfo pmu = buser.GetUserByUserID(DataConvert.CLng(reqMod.EventKey));
                if (pmu != null && pmu.UserID > 0)
                {
                    mu.ParentUserID = reqMod.EventKey;
                }
                mu.UserID = buser.Add(mu);

                uappMod1.UserID     = mu.UserID;
                uappMod1.SourcePlat = "wechat";
                uappMod1.OpenID     = reqMod.FromUserName;
                uappBll.Insert(uappMod1);
                mubase1.UserId = mu.UserID;
                buser.AddBase(mubase1);

                if (pmu != null && pmu.UserID > 0)
                {
                    textMod2.Content = "您成功绑定了推荐人:" + pmu.TrueName + "!";
                    RepToClient(textMod2.ToXML());
                }
            }
            break;

        default:
            break;
        }
    }
Ejemplo n.º 6
0
    //进入该页即开始推广,自动创建用户,关联APPID
    protected void Page_Load(object sender, EventArgs e)
    {
        int       AppID  = DataConverter.CLng(Request.QueryString["appid"]);
        B_User    buser  = new B_User();
        B_UserAPP appBll = new B_UserAPP();
        int       puid   = DataConverter.CLng(Session["WX_PUserID"]);
        string    rurl   = DataConvert.CStr(Session["WX_R"]);

        if (string.IsNullOrEmpty(rurl))
        {
            rurl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx8c5c2dc7b10a36f3&redirect_uri=http%3a%2f%2fv.wodian8.com%2fUser%2fDefault1.aspx&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
        }
        //if (puid < 1) { function.WriteErrMsg("推荐用户不存在"); }
        M_WX_APPID appMod = new M_WX_APPID();//自行置入缓存,使用时取出

        appMod = WxPayApi.Pay_GetByID(AppID);

        string     code         = Request["code"];
        string     access_token = APIHelper.GetWebResult("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appMod.APPID + "&secret=" + appMod.Secret + "&code=" + code + "&grant_type=authorization_code");
        JObject    obj          = (JObject)JsonConvert.DeserializeObject(access_token);
        JObject    userobj      = (JObject)JsonConvert.DeserializeObject(APIHelper.GetWebResult("https://api.weixin.qq.com/sns/userinfo?access_token=" + obj["access_token"] + "&openid=" + obj["openid"] + "&lang=zh_CN"));
        string     openID       = obj["openid"].ToString();
        Appinfo    umod         = appBll.SelModelByOpenID(openID, "wechat");
        M_UserInfo mu           = new M_UserInfo();

        if (umod != null)
        {
            mu = buser.SelReturnModel(umod.UserID);
            buser.SetLoginState(mu);
            Response.Redirect(rurl);
        }
        else //新用户则注册
        {
            umod            = new Appinfo();
            mu.UserName     = "******" + DateTime.Now.ToString("yyyyMMddHHmmss") + function.GetRandomString(2).ToLower();
            mu.UserPwd      = StringHelper.MD5(function.GetRandomString(6));
            mu.Email        = function.GetRandomString(10) + "@wx.com";
            mu.Question     = function.GetRandomString(5);
            mu.Answer       = function.GetRandomString(5);
            mu.ParentUserID = puid.ToString();
            mu.TrueName     = userobj["nickname"].ToString();
            mu.GroupID      = 1;
            mu.UserID       = buser.Add(mu);

            umod.UserID     = mu.UserID;
            umod.SourcePlat = "wechat";
            umod.OpenID     = openID;
            appBll.Insert(umod);
            M_Uinfo mubase = new M_Uinfo();
            mubase.UserId = mu.UserID;
            buser.AddBase(mubase);
            //推广人得积分
            if (puid > 0)
            {
                M_UserInfo pmu = buser.SelReturnModel(puid);
                if (!pmu.IsNull)
                {
                    buser.ChangeVirtualMoney(pmu.UserID, new M_UserExpHis()
                    {
                        score     = 20,
                        ScoreType = (int)M_UserExpHis.SType.Point,
                        detail    = "新用户[" + mu.UserName + "]注册,获得推广积分:" + 20
                    });
                }
            }
            buser.SetLoginState(mu);
            Response.Redirect(rurl);
        }
    }
Ejemplo n.º 7
0
    /// <summary>
    /// 系统事件,如订阅等处理
    /// </summary>
    public void WxEventHandler(M_WxTextMsg reqMod)
    {
        M_WX_User userMod = null;

        errmsg += ",事件:" + reqMod.Event;
        switch (reqMod.Event.ToLower())
        {
        case "subscribe":
            userMod       = api.GetWxUserModel(reqMod.FromUserName);
            userMod.CDate = DateTime.Now;
            userMod.AppId = api.AppId.ID;
            wxuserBll.Insert(userMod);
            M_WxImgMsg msgmod = new M_WxImgMsg();
            msgmod.ToUserName   = reqMod.FromUserName;
            msgmod.FromUserName = reqMod.ToUserName;

            M_WX_ReplyMsg rpMod1 = new M_WX_ReplyMsg();
            rpMod1 = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "头图");
            if (rpMod1 != null)
            {
                M_WXImgItem item = JsonConvert.DeserializeObject <M_WXImgItem>(rpMod1.Content);
                msgmod.Articles.Add(new M_WXImgItem()
                {
                    Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl
                });
            }
            rpMod1 = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "推送1");
            {
                M_WXImgItem item = JsonConvert.DeserializeObject <M_WXImgItem>(rpMod1.Content);
                msgmod.Articles.Add(new M_WXImgItem()
                {
                    Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl
                });
            }
            rpMod1 = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "推送2");
            {
                M_WXImgItem item = JsonConvert.DeserializeObject <M_WXImgItem>(rpMod1.Content);
                msgmod.Articles.Add(new M_WXImgItem()
                {
                    Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl
                });
            }
            rpMod1 = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "推送3");
            {
                M_WXImgItem item = JsonConvert.DeserializeObject <M_WXImgItem>(rpMod1.Content);
                msgmod.Articles.Add(new M_WXImgItem()
                {
                    Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl
                });
            }
            rpMod1 = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "推送4");
            {
                M_WXImgItem item = JsonConvert.DeserializeObject <M_WXImgItem>(rpMod1.Content);
                msgmod.Articles.Add(new M_WXImgItem()
                {
                    Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl
                });
            }
            rpMod1 = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "推送5");
            {
                M_WXImgItem item = JsonConvert.DeserializeObject <M_WXImgItem>(rpMod1.Content);
                msgmod.Articles.Add(new M_WXImgItem()
                {
                    Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl
                });
            }
            RepToClient(msgmod.ToXML());
            System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(SendMsg), reqMod);
            break;

        case "unsubscribe":
        {
            userMod = wxuserBll.SelForOpenid(reqMod.FromUserName);
            if (userMod != null)
            {
                wxuserBll.Del(userMod.ID);
            }
        }
        break;

        case "location":    //用户进入公众号(包含定位信息)
            break;

        case "scan":    //带参数的二维码扫描进入(关注事件在上方处理)
            M_UserAPP   uappMod  = new M_UserAPP();
            B_UserAPP   uappBll  = new B_UserAPP();
            M_UserInfo  mu       = new M_UserInfo();
            M_WxTextMsg textMod2 = new M_WxTextMsg();
            textMod2.FromUserName = reqMod.ToUserName;
            textMod2.ToUserName   = reqMod.FromUserName;
            textMod2.MsgType      = "text";
            textMod2.Content      = "";
            uappMod = uappBll.SelModelByOpenID(reqMod.FromUserName, "wechat");
            if (uappMod != null)
            {
                mu = buser.GetUserByUserID(uappMod.UserID);
                M_UserInfo pmu = buser.GetUserByUserID(DataConvert.CLng(reqMod.EventKey));
                if (mu != null && mu.UserID > 0)
                {
                    if (DataConvert.CLng(mu.ParentUserID) > 0)
                    {
                        textMod2.Content = "您已绑定了推荐人不能重复绑定!";
                        RepToClient(textMod2.ToXML());
                    }
                    else
                    {
                        if (mu.UserID == DataConvert.CLng(reqMod.EventKey))
                        {
                            textMod2.Content = "您扫描的是您自己的二维码!";
                        }
                        else
                        {
                            mu.ParentUserID = DataConvert.CLng(reqMod.EventKey).ToString();
                            if (pmu != null && pmu.UserID > 0)
                            {
                                string err = "";
                                if (CheckParentUser(pmu.UserID, mu.UserID, ref err))
                                {
                                    mu.ParentUserID = pmu.UserID.ToString();
                                    if (buser.UpdateByID(mu))
                                    {
                                        textMod2.Content = "您成功绑定了推荐人:" + pmu.TrueName + "!";
                                    }

                                    else
                                    {
                                        textMod2.Content = "绑定推荐人失败!";
                                    }
                                }
                                else
                                {
                                    textMod2.Content = "绑定推荐失败,错误信息:" + err;
                                }
                            }
                            else
                            {
                                textMod2.Content = "绑定推荐失败,推荐人不存在!";
                            }
                        }
                        RepToClient(textMod2.ToXML());
                    }
                }
            }
            break;

        default:
            break;
        }
    }
Ejemplo n.º 8
0
    /// <summary>
    /// 系统事件,如订阅等处理
    /// </summary>
    public void WxEventHandler(M_WxTextMsg reqMod)
    {
        M_WX_User userMod = null;

        switch (reqMod.Event.ToLower())
        {
        case "subscribe":
            userMod       = api.GetWxUserModel(reqMod.FromUserName);
            userMod.CDate = DateTime.Now;
            userMod.AppId = api.AppId.ID;
            wxuserBll.Insert(userMod);
            M_WxImgMsg msgmod = JsonConvert.DeserializeObject <M_WxImgMsg>(api.AppId.WelStr);
            msgmod.ToUserName   = reqMod.FromUserName;
            msgmod.FromUserName = reqMod.ToUserName;

            int        pid      = DataConvert.CLng(reqMod.EventKey.Replace("qrscene_", ""));
            Appinfo    uappMod1 = new Appinfo();
            B_UserAPP  uappBll1 = new B_UserAPP();
            M_UserInfo mu1      = new M_UserInfo();
            M_WX_User  wuserMod = new M_WX_User();
            M_Uinfo    mubase   = new M_Uinfo();
            uappMod1 = uappBll1.SelModelByOpenID(reqMod.FromUserName, "wechat");
            wuserMod = api.GetWxUserModel(reqMod.FromUserName);
            if (uappMod1 != null)
            {
                mu1 = buser.GetUserByUserID(uappMod1.UserID);
                if (mu1 != null && mu1.UserID > 0)
                {
                    mu1.TrueName = wuserMod.Name;
                    mu1.GroupID  = 1;
                    buser.UpdateByID(mu1);
                }
                else
                {
                    mu1.UserName = "******" + DateTime.Now.ToString("yyyyMMddHHmmss") + function.GetRandomString(2).ToLower();
                    mu1.UserPwd  = StringHelper.MD5(function.GetRandomString(6));
                    mu1.Email    = function.GetRandomString(10) + "@wx.com";
                    mu1.Question = function.GetRandomString(5);
                    mu1.Answer   = function.GetRandomString(5);
                    mu1.TrueName = wuserMod.Name;
                    mu1.GroupID  = 1;
                    mu1.UserID   = buser.Add(mu1);

                    uappMod1.UserID     = mu1.UserID;
                    uappMod1.SourcePlat = "wechat";
                    uappMod1.OpenID     = reqMod.FromUserName;
                    uappBll1.UpdateByID(uappMod1);
                    mubase.UserId = mu1.UserID;
                    buser.AddBase(mubase);
                }
            }
            else
            {
                uappMod1     = new Appinfo();
                mu1.UserName = "******" + DateTime.Now.ToString("yyyyMMddHHmmss") + function.GetRandomString(2).ToLower();
                mu1.UserPwd  = StringHelper.MD5(function.GetRandomString(6));
                mu1.Email    = function.GetRandomString(10) + "@wx.com";
                mu1.Question = function.GetRandomString(5);
                mu1.Answer   = function.GetRandomString(5);
                mu1.TrueName = wuserMod.Name;
                mu1.GroupID  = 1;
                mu1.UserID   = buser.Add(mu1);

                uappMod1.UserID     = mu1.UserID;
                uappMod1.SourcePlat = "wechat";
                uappMod1.OpenID     = reqMod.FromUserName;
                uappBll1.Insert(uappMod1);
                mubase.UserId = mu1.UserID;
                buser.AddBase(mubase);
            }

            if (string.IsNullOrEmpty(msgmod.Articles[0].PicUrl))     //如未设置图片则以纯文本格式发送,纯文本支持内置超链接
            {
                M_WxTextMsg textMod = ImageToText(msgmod);
                RepToClient(textMod.ToXML());
            }
            else
            {
                RepToClient(msgmod.ToXML());
            }
            //关注时发送多条信息
            if (pid > 0)
            {
                System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(SendMsg), reqMod);
            }
            //关注时发送多条信息
            //System.Threading.ThreadPool.QueueUserWorkItem(new System.Threading.WaitCallback(SendMsg), reqMod);
            break;

        case "unsubscribe":
            wxuserBll.DelByOpenid(api.AppId.ID, reqMod.FromUserName);
            break;

        case "location":    //用户进入公众号(包含定位信息)
            M_WxImgMsg msgmod1 = new M_WxImgMsg();
            msgmod1.ToUserName   = reqMod.FromUserName;
            msgmod1.FromUserName = reqMod.ToUserName;
            M_WX_ReplyMsg rpMod = new M_WX_ReplyMsg();
            rpMod = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "头图");
            if (rpMod != null)
            {
                M_WXImgItem item = JsonConvert.DeserializeObject <M_WXImgItem>(rpMod.Content);
                msgmod1.Articles.Add(new M_WXImgItem()
                {
                    Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl
                });
            }
//                rpMod = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "推送1");
//                {
//                    M_WXImgItem item = JsonConvert.DeserializeObject<M_WXImgItem>(rpMod.Content);
//                    msgmod1.Articles.Add(new M_WXImgItem() { Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl });
//                }
//                rpMod = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "推送2");
//                {
//                    M_WXImgItem item = JsonConvert.DeserializeObject<M_WXImgItem>(rpMod.Content);
//                    msgmod1.Articles.Add(new M_WXImgItem() { Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl });
//                }
//                rpMod = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "推送3");
//                {
//                    M_WXImgItem item = JsonConvert.DeserializeObject<M_WXImgItem>(rpMod.Content);
//                    msgmod1.Articles.Add(new M_WXImgItem() { Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl });
//                }
//                rpMod = rpBll.SelByFileAndDef(appBll.GetAppByWxNo(reqMod.ToUserName).ID, "推送4");
//                {
//                    M_WXImgItem item = JsonConvert.DeserializeObject<M_WXImgItem>(rpMod.Content);
//                    msgmod1.Articles.Add(new M_WXImgItem() { Title = item.Title, Url = item.Url, Description = item.Description, PicUrl = item.PicUrl });
//                }
            RepToClient(msgmod1.ToXML());
            break;

        case "scan":
            Appinfo     uappMod  = new Appinfo();
            B_UserAPP   uappBll  = new B_UserAPP();
            M_UserInfo  mu       = new M_UserInfo();
            M_WxTextMsg textMod2 = new M_WxTextMsg();
            textMod2.FromUserName = reqMod.ToUserName;
            textMod2.ToUserName   = reqMod.FromUserName;
            textMod2.MsgType      = "text";
            textMod2.Content      = "";
            uappMod = uappBll.SelModelByOpenID(reqMod.FromUserName, "wechat");
            if (uappMod != null)
            {
                mu = buser.GetUserByUserID(uappMod.UserID);
                M_UserInfo pmu = buser.GetUserByUserID(DataConvert.CLng(reqMod.EventKey));
                if (mu != null && mu.UserID > 0)
                {
                    if (DataConvert.CLng(mu.ParentUserID) > 0)
                    {
                        textMod2.Content = "您已绑定了推荐人不能重复绑定!";
                        RepToClient(textMod2.ToXML());
                    }
                    else
                    {
                        if (mu.UserID == DataConvert.CLng(reqMod.EventKey))
                        {
                            textMod2.Content = "您扫描的是您自己的二维码!";
                        }
                        else
                        {
                            mu.ParentUserID = DataConvert.CLng(reqMod.EventKey).ToString();
                            if (pmu != null && pmu.UserID > 0)
                            {
                                string err = "";
                                if (CheckParentUser(pmu.UserID, mu.UserID, ref err))
                                {
                                    mu.ParentUserID = pmu.UserID.ToString();
                                    if (buser.UpdateByID(mu))
                                    {
                                        textMod2.Content = "您成功绑定了推荐人:" + pmu.TrueName + "!";
                                    }

                                    else
                                    {
                                        textMod2.Content = "绑定推荐人失败!";
                                    }
                                }
                                else
                                {
                                    textMod2.Content = "绑定推荐失败,错误信息:" + err;
                                }
                            }
                            else
                            {
                                textMod2.Content = "绑定推荐失败,推荐人不存在!";
                            }
                        }
                        RepToClient(textMod2.ToXML());
                    }
                }
            }
            break;

        default:
            break;
        }
    }
Ejemplo n.º 9
0
        protected void Register_Click(object sender, EventArgs e)
        {
            UserName_T.Text   = UserName_T.Text.Replace(" ", "");
            UserPwd_T.Text    = UserPwd_T.Text.Replace(" ", "");
            ConfirmPwd_T.Text = ConfirmPwd_T.Text.Replace(" ", "");
            if (string.IsNullOrEmpty(UserName_T.Text))
            {
                function.WriteErrMsg("用户名不能为空");
            }
            if (string.IsNullOrEmpty(UserPwd_T.Text))
            {
                function.WriteErrMsg("密码不能为空");
            }
            if (ConfirmPwd_T.Text != UserPwd_T.Text)
            {
                function.WriteErrMsg("密码不一致");
            }
            if (buser.IsExistUName(UserName_T.Text))
            {
                function.WriteErrMsg("用户名已存在,请更换用户名注册");
            }
            //if (buser.IsExist("ume", UserName_T.Text)) { function.WriteErrMsg("用户名已存在,请更换用户名注册"); }
            M_UserInfo mu = new M_UserInfo();

            mu.UserName = UserName_T.Text;
            mu.UserPwd  = StringHelper.MD5(UserPwd_T.Text);
            mu.Email    = Email_T.Text;
            mu.Question = function.GetRandomString(10);
            mu.Answer   = function.GetRandomString(10);
            Appinfo appMod = new Appinfo();

            appMod.SourcePlat = ZType;
            switch (appMod.SourcePlat)
            {
            case "qq":
            {
                if (string.IsNullOrEmpty(QQ_OpenID_Hid.Value))
                {
                    function.WriteErrMsg("绑定信息错误");
                }
                if (appBll.SelModelByOpenID(QQ_OpenID_Hid.Value, "qq") != null)
                {
                    function.WriteErrMsg("该OpenID已存在,不可重复绑定");
                }
                appMod.OpenID = QQ_OpenID_Hid.Value;
                //JObject obj = new QQHelper(QQ_Token_Hid.Value, QQ_OpenID_Hid.Value).GetUserInfo();
                //mu.HoneyName = obj["data"]["nick"].ToString();||obj["nickname"]
            }
            break;

            case "sina":
            {
                if (string.IsNullOrEmpty(Sina_OpenID_Hid.Value))
                {
                    function.WriteErrMsg("未指定openid");
                }
                if (appBll.SelModelByOpenID(Sina_OpenID_Hid.Value, "sina") != null)
                {
                    function.WriteErrMsg("该OpenID已存在,不可重复绑定");
                }
                appMod.OpenID = Sina_OpenID_Hid.Value;
            }
            break;

            case "wechat":
            default:
                throw new Exception("暂未开启该[" + ZType + "]平台注册");
            }
            mu.UserID = buser.AddModel(mu);
            if (mu.UserID < 1)
            {
                function.WriteErrMsg("用户添加失败!!!");
            }
            appMod.UserID = mu.UserID;
            appBll.Insert(appMod);
            buser.SetLoginState(mu);
            Response.Redirect(targetUrl);
        }
Ejemplo n.º 10
0
    //进入该页即开始推广,自动创建用户,关联APPID
    protected void Page_Load(object sender, EventArgs e)
    {
        B_User    buser  = new B_User();
        B_UserAPP appBll = new B_UserAPP();
        int       puid   = DataConverter.CLng(Session["WX_PUserID"]);
        string    rurl   = DataConvert.CStr(Session["WX_R"]);

        if (string.IsNullOrEmpty(rurl))
        {
            rurl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx215c3a129d4f8fcc&redirect_uri=http%3a%2f%2fx014.2013.hx008.com&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
        }
        //if (puid < 1) { function.WriteErrMsg("推荐用户不存在"); }
        M_WX_APPID appMod = new M_WX_APPID();  //自行置入缓存,使用时取出

        appMod.APPID  = WxPayConfig.APPID;     //"wx674f7f7116d71f52";
        appMod.Secret = WxPayConfig.APPSECRET; //1ea6ecc8a53028019f604097379d3b21
        WxAPI wxapi = WxAPI.Code_Get(1);
        //wxapi.AppId = appMod;
        string     code         = Request["code"];
        string     access_token = APIHelper.GetWebResult("https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appMod.APPID + "&secret=" + appMod.Secret + "&code=" + code + "&grant_type=authorization_code");
        JObject    obj          = (JObject)JsonConvert.DeserializeObject(access_token);
        JObject    userobj      = (JObject)JsonConvert.DeserializeObject(APIHelper.GetWebResult("https://api.weixin.qq.com/sns/userinfo?access_token=" + obj["access_token"] + "&openid=" + obj["openid"] + "&lang=zh_CN"));
        string     openID       = obj["openid"].ToString();
        Appinfo    umod         = appBll.SelModelByOpenID(openID, "wechat");
        M_UserInfo mu           = new M_UserInfo();

        if (umod != null)
        {
            mu = buser.SelReturnModel(umod.UserID);
            buser.SetLoginState(mu);
            Response.Redirect(rurl);
        }
        else //新用户则注册
        {
            umod            = new Appinfo();
            mu.UserName     = "******" + DateTime.Now.ToString("yyyyMMddHHmmss") + function.GetRandomString(2).ToLower();
            mu.UserPwd      = StringHelper.MD5(function.GetRandomString(6));
            mu.Email        = function.GetRandomString(10) + "@wx.com";
            mu.Question     = function.GetRandomString(5);
            mu.Answer       = function.GetRandomString(5);
            mu.ParentUserID = puid.ToString();
            mu.TrueName     = userobj["nickname"].ToString();
            mu.GroupID      = 1;
            mu.UserID       = buser.Add(mu);

            umod.UserID     = mu.UserID;
            umod.SourcePlat = "wechat";
            umod.OpenID     = openID;
            appBll.Insert(umod);
            M_Uinfo mubase = new M_Uinfo();
            mubase.UserId = mu.UserID;
            buser.AddBase(mubase);
            //推广人得积分
            //if (puid > 0)
            //{
            //    M_UserInfo pmu = buser.SelReturnModel(puid);
            //    if (!pmu.IsNull)
            //    {
            //        buser.ChangeVirtualMoney(pmu.UserID, new M_UserExpHis()
            //        {
            //            score = 20,
            //            ScoreType = (int)M_UserExpHis.SType.Point,
            //            detail = "新用户[" + mu.UserName + "]注册,获得推广积分:"+20
            //        });
            //    }
            //}

            buser.SetLoginState(mu);
            Response.Redirect(rurl);
        }
    }