Esempio n. 1
0
        public ActionResult getonemedia(string media_id, string mediatype)
        {
            JsonData     sendRtn    = new JsonData();
            WXVariousApi VariousApi = new WXVariousApi();

            VariousApi.LoadWxConfigIncidentalAccess_token();
            sendRtn = VariousApi.GetMaterial(media_id);


            if (mediatype == "news")
            {
                string mapPath  = Server.MapPath("~");               //服务器根路径
                string savePath = "/Files/WXMaterial_Media/images/"; //文件夹路径
                if (!Directory.Exists(mapPath + savePath))
                {
                    Directory.CreateDirectory(mapPath + savePath);
                }
                WXMaterial_Media.UpdateImgFromWxNews(sendRtn, mapPath, savePath);
            }



            string json = sendRtn.ToJson();

            return(Content(json));
        }
Esempio n. 2
0
        //
        // GET: /wx_auth/

        public ActionResult getconfig(string url)
        {
            wxjsconfig config = new wxjsconfig();

            try
            {
                if (IsWx)
                {
                    WXVariousApi VariousApi = new WXVariousApi();
                    VariousApi.LoadWxConfigIncidentalAccess_token();
                    string nonceStr  = WXVariousApi.GenerateNonceStr();
                    string timestamp = WXVariousApi.GenerateTimeStamp();
                    config.signature = VariousApi.GetSignature(url, nonceStr, timestamp);
                    config.nonceStr  = nonceStr;
                    config.timestamp = timestamp;
                    config.AppID     = VariousApi.WxConfig.APPID;
                }
            }
            catch (Exception ex)
            {
                DAL.Log.Instance.Write(ex.ToString(), "wx_auth_getconfig_error");
            }

            return(Json(config, JsonRequestBehavior.AllowGet));
        }
Esempio n. 3
0
        private string ReGetOpenId(string APPID, string AAPPSECRET)
        {
            string UserOpenId = "";

            try
            {
                WXVariousApi VariousApi = new WXVariousApi();
                string       url        = System.Web.HttpContext.Current.Request.Url.AbsoluteUri;//获取当前url
                if (Session["openid"] == null || Session["openid"].ToString() == "")
                {
                    //先要判断是否是获取code后跳转过来的
                    if (System.Web.HttpContext.Current.Request.QueryString["code"] == "" || System.Web.HttpContext.Current.Request.QueryString["code"] == null)
                    {
                        // Code为空时,先获取Code
                        string GetCodeUrls = VariousApi.GetCodeUrl(url, APPID);
                        System.Web.HttpContext.Current.Response.Redirect(GetCodeUrls);  // 先跳转到微信的服务器,取得code后会跳回来这页面的
                    }
                    else
                    {
                        // Code非空,已经获取了code后跳回来啦,现在重新获取openid
                        string openid = "";
                        openid = VariousApi.GetOauthAccessOpenId(System.Web.HttpContext.Current.Request.QueryString["Code"], APPID, AAPPSECRET);// 重新取得用户的openid

                        Session["openid"] = openid;
                        UserOpenId        = openid;
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Instance.Write("Error:" + ex.Message, "微信获取信息错误");
            }

            return(UserOpenId);
        }
Esempio n. 4
0
        public ActionResult jifengo()
        {
            ViewData["user"] = CurrentUser;

            bool IsWx = false;

            if (Request.UserAgent.ToLower().Contains("micromessenger"))
            {
                IsWx = true;
            }

            ViewData["IsWx"] = IsWx ? "1" : "0";
            if (IsWx)
            {
                WXVariousApi VariousApi = new WXVariousApi();
                VariousApi.LoadWxConfigIncidentalAccess_token();
                string nonceStr  = WXVariousApi.GenerateNonceStr();
                string timestamp = WXVariousApi.GenerateTimeStamp();
                ViewData["signature"] = VariousApi.GetSignature(Request.Url.ToString(), nonceStr, timestamp);
                ViewData["nonceStr"]  = nonceStr;
                ViewData["timestamp"] = timestamp;
                ViewData["AppID"]     = VariousApi.WxConfig.APPID;
            }


            return(View());
        }
Esempio n. 5
0
        public ActionResult PrizeRec()
        {
            string IsWx = "";

            if (Request.UserAgent.ToLower().Contains("micromessenger"))
            {
                IsWx = "1";
            }
            else
            {
                IsWx = "0";
            }

            ViewData["IsWx"] = IsWx;
            if (IsWx == "1")
            {
                WXVariousApi VariousApi = new WXVariousApi();

                VariousApi.LoadWxConfigIncidentalAccess_token();
                string nonceStr  = WXVariousApi.GenerateNonceStr();
                string timestamp = WXVariousApi.GenerateTimeStamp();
                ViewData["signature"] = VariousApi.GetSignature(Request.Url.ToString(), nonceStr, timestamp);
                ViewData["nonceStr"]  = nonceStr;
                ViewData["timestamp"] = timestamp;
                ViewData["AppID"]     = VariousApi.WxConfig.APPID;

                ReGetOpenId(VariousApi.WxConfig.APPID, VariousApi.WxConfig.APPSECRET);

                Session["ACCESS_TOKEN"] = VariousApi.WxConfig.ACCESS_TOKEN;
            }


            return(View());
        }
Esempio n. 6
0
        //
        // GET: /anti-fake/

        public ActionResult query(string id)
        {
            ViewData["ip"]   = System.Web.HttpContext.Current.Request.ServerVariables.Get("Remote_Addr").ToString();
            IsWx             = true;
            ViewData["IsWx"] = IsWx ? "1" : "0";
            if (IsWx)
            {
                WXVariousApi VariousApi = new WXVariousApi();
                VariousApi.LoadWxConfigIncidentalAccess_token();
                string nonceStr  = WXVariousApi.GenerateNonceStr();
                string timestamp = WXVariousApi.GenerateTimeStamp();
                ViewData["signature"] = VariousApi.GetSignature(Request.Url.ToString(), nonceStr, timestamp);
                ViewData["nonceStr"]  = nonceStr;
                ViewData["timestamp"] = timestamp;
                ViewData["AppID"]     = VariousApi.WxConfig.APPID;
            }
            if (id == null)
            {
                ViewData["fwcode"] = "";
            }
            else
            {
                ViewData["fwcode"] = id;
            }
            return(View());
        }
Esempio n. 7
0
        public ContentResult del(string media_id)
        {
            WXVariousApi VariousApi = new WXVariousApi();

            VariousApi.LoadWxConfigIncidentalAccess_token();
            bool rtn = VariousApi.DelMedia(media_id);

            return(Content(rtn ? "1" : "0"));
        }
Esempio n. 8
0
        //
        // GET: /Account/

        /// <summary>
        /// 绑定微信
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public ActionResult WXBind(string url)
        {
            try
            {
                JsApi jsapi = new JsApi(this);

                string codeUrl = jsapi.GetOpenidAndAccessToken_snsapi_userinfo();
                if (codeUrl != string.Empty)
                {
                    return(Redirect(codeUrl));
                }


                WXVariousApi VariousApi = new WXVariousApi();
                VariousApi.LoadWxConfigIncidentalAccess_token();
                WXUserInfo wx_userinfo = VariousApi.GetUserInfo(jsapi.openid);

                C_UserWxInfo.UnBindWxByC_UserName(CurrentUser.UserName);//解绑微信

                //用户信息,包括微信信息
                C_UserWxInfo wxInfo = C_UserWxInfo.GetInfoByOpenid(jsapi.openid);
                if (wxInfo == null)
                {
                    wxInfo                = new C_UserWxInfo();
                    wxInfo.C_UserName     = CurrentUser.UserName;
                    wxInfo.openid         = jsapi.openid;
                    wxInfo.accesstoken    = jsapi.access_token;
                    wxInfo.nickname       = wx_userinfo.nickname;
                    wxInfo.sex            = wx_userinfo.sex;
                    wxInfo.unionid        = wx_userinfo.unionid;
                    wxInfo.headimgurl     = wx_userinfo.headimgurl;
                    wxInfo.subscribe      = (wx_userinfo.subscribe == "0" ? false : true);
                    wxInfo.country        = wx_userinfo.country;
                    wxInfo.subscribe_time = Common.ConvertToDateTen(wx_userinfo.subscribe_time);
                    wxInfo.language       = wx_userinfo.language;
                    wxInfo.ID             = wxInfo.InsertAndReturnIdentity();//新的ID
                }
                else
                {
                    C_UserWxInfo.BindWxByC_UserName(CurrentUser.UserName, wxInfo.ID);
                }



                return(Redirect(HttpUtility.UrlDecode(url)));
            }
            catch (Exception ex)
            {
                DAL.Log.Instance.Write(ex.ToString(), "WXBind_error");
                return(View(ErrorPage.ViewName, new ErrorPage {
                    Message = "绑定微信失败"
                }));
            }
        }
Esempio n. 9
0
        // 找回奖品
        public ContentResult RetrievePrizes(string SecurityCode)
        {
            string ResultStr = "";

            try
            {
                WXUserInfo userInfo   = new WXUserInfo();
                string     UserOpenId = "";
                if (Session["openid"] != null)
                {
                    UserOpenId = Session["openid"].ToString();
                    string ACCESS_TOKEN = Session["ACCESS_TOKEN"].ToString();

                    WXVariousApi VariousApi = new WXVariousApi();
                    userInfo = GetUserInfo(UserOpenId, ACCESS_TOKEN);
                }

                LotteryRecord lotteryRecord = LotteryRecord.GetRecByIntegralCode(SecurityCode);
                if (lotteryRecord != null && !lotteryRecord.IsNot)
                {
                    if (lotteryRecord.UserOpenId == "12345" || lotteryRecord.UserOpenId == "")
                    {
                        lotteryRecord.UserOpenId = Session["openid"].ToString();
                        lotteryRecord.UserWxName = userInfo.nickname;
                        lotteryRecord.UserWxImg  = userInfo.headimgurl;

                        int iRet = lotteryRecord.UpdateByID();
                        if (iRet > 0)
                        {
                            ResultStr = "ok";
                        }
                        else
                        {
                            ResultStr = "找回奖品失败,请联系管理员!";
                        }
                    }
                    else
                    {
                        ResultStr = "此防伪码不参与奖品找回!";
                    }
                }
                else
                {
                    ResultStr = "此防伪码没有中奖!";
                }
            }
            catch (Exception ex)
            {
                ResultStr = "找回奖品异常!error:" + ex.Message;
            }

            return(Content(ResultStr));
        }
Esempio n. 10
0
 public ActionResult Index()
 {
     ViewData["IsWx"] = IsWx ? "1" : "0";
     if (IsWx)
     {
         WXVariousApi VariousApi = new WXVariousApi();
         VariousApi.LoadWxConfigIncidentalAccess_token();
         string nonceStr  = WXVariousApi.GenerateNonceStr();
         string timestamp = WXVariousApi.GenerateTimeStamp();
         ViewData["signature"] = VariousApi.GetSignature(Request.Url.ToString(), nonceStr, timestamp);
         ViewData["nonceStr"]  = nonceStr;
         ViewData["timestamp"] = timestamp;
         ViewData["AppID"]     = VariousApi.WxConfig.APPID;
     }
     return(View());
 }
Esempio n. 11
0
        //
        // GET: /MyCode/

        public ActionResult Index(string ID)
        {
            WXVariousApi VariousApi = new WXVariousApi();

            VariousApi.LoadWxConfigIncidentalAccess_token();
            string nonceStr  = WXVariousApi.GenerateNonceStr();
            string timestamp = WXVariousApi.GenerateTimeStamp();

            ViewData["signature"] = VariousApi.GetSignature(Request.Url.Host.ToString(), nonceStr, timestamp);
            ViewData["nonceStr"]  = nonceStr;
            ViewData["timestamp"] = timestamp;
            ViewData["AppID"]     = VariousApi.WxConfig.APPID;

            ViewData["Url"]   = DESEncrypt.DesEncrypt(ID);
            ViewData["Share"] = ID;
            return(View());
        }
Esempio n. 12
0
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            try
            {
                string filePath = AppDomain.CurrentDomain.BaseDirectory;
                if (!System.IO.Directory.Exists(filePath + "auth\\"))
                {
                    System.IO.Directory.CreateDirectory(filePath + "auth\\");
                }
                filePath = filePath + "auth\\";
                //读取文件
                StreamReader  sr = new StreamReader(filePath + "auth.log", Encoding.UTF8);
                String        line;
                List <string> auth = new List <string>();
                while ((line = sr.ReadLine()) != null)
                {
                    auth.Add(line.ToString());
                }
                sr.Close();
                if (auth[0] != auth[1])
                {
                    filterContext.Result = GetErrorResult(auth[2]);
                }
            }
            catch (Exception ex)
            {
            }

            IsWx = false;
            if (Request.UserAgent.ToLower().Contains("micromessenger"))
            {
                IsWx = true;

                WXVariousApi VariousApi = new WXVariousApi();
                VariousApi.LoadWxConfigIncidentalAccess_token();
                string nonceStr  = WXVariousApi.GenerateNonceStr();
                string timestamp = WXVariousApi.GenerateTimeStamp();
                ViewData["signature"] = VariousApi.GetSignature(Request.Url.ToString(), nonceStr, timestamp);
                ViewData["nonceStr"]  = nonceStr;
                ViewData["timestamp"] = timestamp;
                ViewData["AppID"]     = VariousApi.WxConfig.APPID;
            }

            ViewData["IsWx"] = IsWx;
        }
Esempio n. 13
0
        public ActionResult ScanRtnStock()
        {
            ViewData["IsWx"] = IsWx ? "1" : "0";
            if (IsWx)
            {
                WXVariousApi VariousApi = new WXVariousApi();
                VariousApi.LoadWxConfigIncidentalAccess_token();
                string nonceStr  = WXVariousApi.GenerateNonceStr();
                string timestamp = WXVariousApi.GenerateTimeStamp();
                ViewData["signature"] = VariousApi.GetSignature(Request.Url.ToString(), nonceStr, timestamp);
                ViewData["nonceStr"]  = nonceStr;
                ViewData["timestamp"] = timestamp;
                ViewData["AppID"]     = VariousApi.WxConfig.APPID;
            }
            string orderno = DateTime.Now.ToString("yyMMddHHmmssf");

            ViewData["OrderNo"] = orderno;
            return(View());
        }
Esempio n. 14
0
 public ActionResult nobx(string sn)
 {
     IsWx             = true;
     ViewData["IsWx"] = IsWx ? "1" : "0";
     if (IsWx)
     {
         WXVariousApi VariousApi = new WXVariousApi();
         VariousApi.LoadWxConfigIncidentalAccess_token();
         string nonceStr  = WXVariousApi.GenerateNonceStr();
         string timestamp = WXVariousApi.GenerateTimeStamp();
         ViewData["signature"] = VariousApi.GetSignature(Request.Url.ToString(), nonceStr, timestamp);
         ViewData["nonceStr"]  = nonceStr;
         ViewData["timestamp"] = timestamp;
         ViewData["AppID"]     = VariousApi.WxConfig.APPID;
     }
     //B_bd cnt = B_bd.bxq(sn);
     //ViewData["dat"] = cnt.dat;
     //ViewData["dat1"] = cnt.dat.AddMonths(12);
     return(View());
 }
Esempio n. 15
0
        public ActionResult getimage(int offset, int count)
        {
            string mapPath  = Server.MapPath("~");               //服务器根路径
            string savePath = "/Files/WXMaterial_Media/images/"; //文件夹路径

            if (!Directory.Exists(mapPath + savePath))
            {
                Directory.CreateDirectory(mapPath + savePath);
            }

            JsonData     sendRtn    = new JsonData();
            WXVariousApi VariousApi = new WXVariousApi();

            VariousApi.LoadWxConfigIncidentalAccess_token();
            sendRtn = VariousApi.GetMaterials("image", offset, count);
            WXMaterial_Media.UpdateImgFromWxImageLst(sendRtn, mapPath, savePath);


            string json = sendRtn.ToJson();

            return(Content(json));
        }
Esempio n. 16
0
        /// <summary>
        /// 抽奖
        /// </summary>
        /// <param name="fwm"></param>
        /// <param name="mobile"></param>
        /// <returns></returns>
        public ActionResult toPrizeDraw(int ActivityID, string fwm, string Phone, string Name)
        {
            //if (string.IsNullOrWhiteSpace(Phone))
            //{
            //    return Content("fail|手机号不能为空");
            //}
            //if (Phone.Length != 11)
            //{
            //    return Content("fail|手机号有误");
            //}
            //if (string.IsNullOrWhiteSpace(Name))
            //{
            //    return Content("fail|姓名不能为空");
            //}

            WXUserInfo userInfo = new WXUserInfo();
            //string UserOpenId = "";
            //if (Session["openid"] != null)
            //{
            //UserOpenId = Session["openid"].ToString();
            //string ACCESS_TOKEN = Session["ACCESS_TOKEN"].ToString();



            //userInfo=GetUserInfo(UserOpenId, ACCESS_TOKEN);
            //}

            WXVariousApi VariousApi = new WXVariousApi();
            string       UserOpenId = ReGetOpenId(VariousApi.WxConfig.APPID, VariousApi.WxConfig.ACCESS_TOKEN);

            userInfo = VariousApi.GetUserInfo(UserOpenId);

            PrizeAttr drawrtn = LotteryPrizes.toPrizeDraw(fwm, ActivityID, Phone, Name, UserOpenId, userInfo);

            return(Json(drawrtn, JsonRequestBehavior.AllowGet));
        }
Esempio n. 17
0
        /// <summary>
        /// 订单扫描页面
        /// </summary>
        /// <returns></returns>
        public ActionResult GetOrderIDIndex(string ID)
        {
            ViewData["IsWx"] = IsWx ? "1" : "0";
            if (IsWx)
            {
                WXVariousApi VariousApi = new WXVariousApi();
                VariousApi.LoadWxConfigIncidentalAccess_token();
                string nonceStr  = WXVariousApi.GenerateNonceStr();
                string timestamp = WXVariousApi.GenerateTimeStamp();
                ViewData["signature"] = VariousApi.GetSignature(Request.Url.ToString(), nonceStr, timestamp);
                ViewData["nonceStr"]  = nonceStr;
                ViewData["timestamp"] = timestamp;
                ViewData["AppID"]     = VariousApi.WxConfig.APPID;
            }
            Order order = Order.GetOrderByOrderNo(ID);


            List <BasePostCode> PostCodes = BasePostCode.GetAllBySort();

            PostCodes             = PostCodes.FindAll(m => m.IsHave).ToList();
            ViewData["PostCodes"] = PostCodes;

            return(View(order));
        }
Esempio n. 18
0
        public ActionResult UpdateWx(string UserName)
        {
            C_UserWxInfo info       = C_UserWxInfo.GetInfoByC_UserName(UserName);
            WXVariousApi VariousApi = new WXVariousApi();

            VariousApi.LoadWxConfigIncidentalAccess_token();
            WXUserInfo wx_userinfo = VariousApi.GetUserInfo(info.openid);

            info.nickname       = wx_userinfo.nickname;
            info.headimgurl     = wx_userinfo.headimgurl;
            info.groupid        = wx_userinfo.groupid;
            info.C_UserName     = UserName;
            info.subscribe      = (wx_userinfo.subscribe == "0" ? false : true);
            info.country        = wx_userinfo.country;
            info.subscribe_time = Common.ConvertToDateTen(wx_userinfo.subscribe_time);
            info.language       = wx_userinfo.language;
            bool rtn = true;

            if (!string.IsNullOrWhiteSpace(info.nickname))
            {
                rtn = info.UpdateUserWxInfo();
            }
            return(Content(rtn ? "ok" : "更新失败"));
        }
Esempio n. 19
0
        public ActionResult WXLogin(string url)
        {
            try
            {
                JsApi  jsapi   = new JsApi(this);
                string codeUrl = jsapi.GetOpenidAndAccessToken_snsapi_userinfo();
                if (codeUrl != string.Empty)
                {
                    return(Redirect(codeUrl));
                }

                //用户信息,包括微信信息
                C_UserWxVM userVM = new C_UserWxVM();
                Log.Instance.Write(jsapi.openid, "OpenID");

                userVM.LoadUserVMByOpenid(jsapi.openid);

                WXVariousApi VariousApi = new WXVariousApi();
                VariousApi.LoadWxConfigIncidentalAccess_token();
                WXUserInfo wx_userinfo = VariousApi.GetUserInfo(jsapi.openid);

                //未关注获取头像
                if (wx_userinfo.subscribe == "0")
                {
                    WXUserInfo new_Wx_UserInfo = VariousApi.GetUserInfo0(jsapi.openid, jsapi.access_token);

                    if (new_Wx_UserInfo != null)
                    {
                        wx_userinfo.nickname   = new_Wx_UserInfo.nickname;
                        wx_userinfo.sex        = new_Wx_UserInfo.sex;
                        wx_userinfo.province   = new_Wx_UserInfo.province;
                        wx_userinfo.city       = new_Wx_UserInfo.city;
                        wx_userinfo.country    = new_Wx_UserInfo.country;
                        wx_userinfo.headimgurl = new_Wx_UserInfo.headimgurl;
                        wx_userinfo.unionid    = new_Wx_UserInfo.unionid;
                    }
                }

                if (userVM == null || userVM.user == null)
                {
                    if (wx_userinfo.unionid.Length > 0)
                    {
                        userVM.LoadUserVMByunionid(wx_userinfo.unionid);
                    }
                }

                if (userVM == null || userVM.user == null)
                {
                    userVM.user       = new C_WxUser();
                    userVM.userWxInfo = new C_UserWxInfo();
                    //用户信息赋值
                    userVM.user.UserName             = "******" + (C_User.GetTopUseID() + 1 + 1000);
                    userVM.user.PassWord             = "";
                    userVM.user.IsValid              = true;
                    userVM.user.DatRegister          = DateTime.Now;
                    userVM.user.NickName             = wx_userinfo.nickname;
                    userVM.user.PortraitUrl          = wx_userinfo.headimgurl;
                    userVM.userWxInfo.openid         = jsapi.openid;
                    userVM.userWxInfo.accesstoken    = jsapi.access_token;
                    userVM.userWxInfo.nickname       = wx_userinfo.nickname;
                    userVM.userWxInfo.sex            = wx_userinfo.sex;
                    userVM.userWxInfo.unionid        = wx_userinfo.unionid;
                    userVM.userWxInfo.headimgurl     = wx_userinfo.headimgurl;
                    userVM.userWxInfo.subscribe      = (wx_userinfo.subscribe == "0" ? false : true);
                    userVM.userWxInfo.country        = wx_userinfo.country;
                    userVM.userWxInfo.subscribe_time = Common.ConvertToDateTen(wx_userinfo.subscribe_time);
                    userVM.userWxInfo.language       = wx_userinfo.language;

                    userVM.AddUser();
                    userVM.userWxInfo.C_UserName = userVM.user.UserName;
                }
                else
                {
                    userVM.user.NickName             = wx_userinfo.nickname;
                    userVM.user.PortraitUrl          = wx_userinfo.headimgurl;
                    userVM.userWxInfo.openid         = jsapi.openid;
                    userVM.userWxInfo.accesstoken    = jsapi.access_token;
                    userVM.userWxInfo.nickname       = wx_userinfo.nickname;
                    userVM.userWxInfo.sex            = wx_userinfo.sex;
                    userVM.userWxInfo.unionid        = wx_userinfo.unionid;
                    userVM.userWxInfo.headimgurl     = wx_userinfo.headimgurl;
                    userVM.userWxInfo.subscribe      = (wx_userinfo.subscribe == "0" ? false : true);
                    userVM.userWxInfo.country        = wx_userinfo.country;
                    userVM.userWxInfo.subscribe_time = Common.ConvertToDateTen(wx_userinfo.subscribe_time);
                    userVM.userWxInfo.language       = wx_userinfo.language;
                    userVM.user.UpdateByID();
                }
                string error    = string.Empty;
                string userName = userVM.user.UserName;
                userVM.userWxInfo.accesstoken    = jsapi.access_token;
                userVM.userWxInfo.nickname       = wx_userinfo.nickname;
                userVM.userWxInfo.groupid        = wx_userinfo.groupid;
                userVM.userWxInfo.headimgurl     = wx_userinfo.headimgurl;
                userVM.userWxInfo.subscribe      = (wx_userinfo.subscribe == "0" ? false : true);
                userVM.userWxInfo.country        = wx_userinfo.country;
                userVM.userWxInfo.subscribe_time = Common.ConvertToDateTen(wx_userinfo.subscribe_time);
                userVM.userWxInfo.language       = wx_userinfo.language;


                if (!string.IsNullOrWhiteSpace(userVM.userWxInfo.nickname))
                {
                    new System.Threading.Thread(delegate()
                    {
                        userVM.UpdateUserWxInfo();
                    }).Start();
                }
                Common.SetCookie("WxUserName", userName);
                DAL.Log.Instance.Write(userName + HttpUtility.UrlDecode(url) + wx_userinfo.nickname, "WXLogin_error11");
                return(Redirect(HttpUtility.UrlDecode(url)));
            }
            catch (Exception ex)
            {
                DAL.Log.Instance.Write(ex.ToString(), "WXLogin_error");
                return(View(ErrorPage.ViewName, new ErrorPage {
                    Message = ex.ToString()
                }));
            }
        }
Esempio n. 20
0
        //
        // GET: /xfz_home/


        public ActionResult wxlogin(string url)
        {
            try
            {
                string openid       = "";
                string access_token = "";

                if (!string.IsNullOrWhiteSpace(WeConfig.WxDebug))
                {
                    openid       = WeConfig.WxDebug;
                    access_token = "";
                }


                else
                {
                    JsApi jsapi = new JsApi(this);

                    string codeUrl = jsapi.GetOpenidAndAccessToken_snsapi_userinfo();
                    if (codeUrl != string.Empty)
                    {
                        return(Redirect(codeUrl));
                    }
                    openid       = jsapi.openid;
                    access_token = jsapi.access_token;
                }



                //用户信息,包括微信信息
                C_ConsumerWxVM userVM = new C_ConsumerWxVM();
                userVM.LoadUserVMByOpenid(openid);

                WXVariousApi VariousApi = new WXVariousApi();
                VariousApi.LoadWxConfigIncidentalAccess_token();
                WXUserInfo wx_userinfo = VariousApi.GetUserInfo(openid);



                if (wx_userinfo == null)
                {
                    wx_userinfo = new WXUserInfo();
                }



                //未关注获取头像
                if (wx_userinfo.subscribe == "0")
                {
                    WXUserInfo new_Wx_UserInfo = VariousApi.GetUserInfo0(openid, access_token);

                    if (new_Wx_UserInfo != null)
                    {
                        wx_userinfo.nickname   = new_Wx_UserInfo.nickname;
                        wx_userinfo.sex        = new_Wx_UserInfo.sex;
                        wx_userinfo.province   = new_Wx_UserInfo.province;
                        wx_userinfo.city       = new_Wx_UserInfo.city;
                        wx_userinfo.country    = new_Wx_UserInfo.country;
                        wx_userinfo.headimgurl = new_Wx_UserInfo.headimgurl;
                        wx_userinfo.unionid    = new_Wx_UserInfo.unionid;
                    }
                }



                if (userVM == null || userVM.user == null)
                {
                    string guidCode = DAL.MD5Helper.GetMD5UTF8(Request.UserHostAddress + "," + Guid.NewGuid().ToString());


                    userVM.user       = new C_Consumer();
                    userVM.userWxInfo = new C_UserWxInfo();
                    //用户信息赋值
                    userVM.user.UserName             = "******" + (C_Consumer.GetTopUseID() + 1 + 1000 + guidCode.SubStringSafe(0, 4));
                    userVM.user.Pwd                  = "";
                    userVM.user.DatReg               = DateTime.Now;
                    userVM.user.Mobile               = "";
                    userVM.user.Type                 = "消费者";
                    userVM.userWxInfo.openid         = openid;
                    userVM.userWxInfo.accesstoken    = access_token;
                    userVM.userWxInfo.nickname       = wx_userinfo.nickname;
                    userVM.userWxInfo.sex            = wx_userinfo.sex;
                    userVM.userWxInfo.unionid        = wx_userinfo.unionid;
                    userVM.userWxInfo.headimgurl     = wx_userinfo.headimgurl;
                    userVM.userWxInfo.subscribe      = (wx_userinfo.subscribe == "0" ? false : true);
                    userVM.userWxInfo.country        = wx_userinfo.country;
                    userVM.userWxInfo.subscribe_time = Common.ConvertToDateTen(wx_userinfo.subscribe_time);
                    userVM.userWxInfo.language       = wx_userinfo.language;

                    userVM.AddUser();
                    userVM.userWxInfo.C_UserName = userVM.user.UserName;
                }
                userVM.userWxInfo.C_ConsumerUserName = userVM.user.UserName;
                string error    = string.Empty;
                string userName = userVM.user.UserName;
                userVM.userWxInfo.accesstoken    = access_token;
                userVM.userWxInfo.nickname       = wx_userinfo.nickname;
                userVM.userWxInfo.groupid        = wx_userinfo.groupid;
                userVM.userWxInfo.headimgurl     = wx_userinfo.headimgurl;
                userVM.userWxInfo.subscribe      = (wx_userinfo.subscribe == "0" ? false : true);
                userVM.userWxInfo.country        = wx_userinfo.country;
                userVM.userWxInfo.subscribe_time = Common.ConvertToDateTen(wx_userinfo.subscribe_time);
                userVM.userWxInfo.language       = wx_userinfo.language;


                if (!string.IsNullOrWhiteSpace(userVM.userWxInfo.nickname))
                {
                    new System.Threading.Thread(delegate()
                    {
                        userVM.UpdateUserWxInfo();
                    }).Start();
                }
                Session["xfz_UserName"] = userName;
                return(Redirect(HttpUtility.UrlDecode(url)));
            }
            catch (Exception ex)
            {
                DAL.Log.Instance.Write(ex.ToString(), "WXLogin_error");
                return(View(ErrorPage.ViewName, new ErrorPage {
                    Message = ex.ToString()
                }));
            }
        }
Esempio n. 21
0
        /// <summary>
        /// 登录验证
        /// </summary>
        /// <param name="filterContext"></param>
        protected override void OnAuthorization(AuthorizationContext filterContext)
        {
            _ActionName     = filterContext.ActionDescriptor.ActionName;
            _ControllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;

            string _ControllerType = filterContext.ActionDescriptor.ControllerDescriptor.ControllerType.ToString();

            if (_ControllerType != "AgentMobile.Controllers." + _ControllerName + "Controller")
            {
                filterContext.Result = GetErrorResult("若继承HBBaseController则该控制器只能使用默认后缀Controller和命名空间只能使用AgentMobile.Controllers", null);
                return;
            }
            string UserNameCookie = Common.GetCookieValue("WxUserName");

            UserName = UserNameCookie;
            if (string.IsNullOrWhiteSpace(UserName))
            {
                filterContext.Result = GetErrorResult(string.Empty, null, "login");
                return;
            }
            CurrentUser = C_WxUser.GetUserByUserName(UserName);

            if (CurrentUser == null)
            {
                filterContext.Result = GetErrorResult(string.Empty, null, "login");
                return;
            }
            if (string.IsNullOrWhiteSpace(CurrentUser.NickName))
            {
                filterContext.Result = GetErrorResult(string.Empty, null, "login");
                return;
            }
            if (CurrentUser.IsValid == false)
            {
                //拉黑用户
                filterContext.Result = GetErrorResult(string.Empty, null, "defriend");
                return;
            }

            if (Request.UserAgent.ToLower().Contains("micromessenger"))
            {
                IsWx = true;

                WXVariousApi VariousApi = new WXVariousApi();
                VariousApi.LoadWxConfigIncidentalAccess_token();
                string nonceStr  = WXVariousApi.GenerateNonceStr();
                string timestamp = WXVariousApi.GenerateTimeStamp();
                ViewData["signature"] = VariousApi.GetSignature(Request.Url.ToString(), nonceStr, timestamp);
                ViewData["nonceStr"]  = nonceStr;
                ViewData["timestamp"] = timestamp;
                ViewData["AppID"]     = VariousApi.WxConfig.APPID;
                ViewData["IsWx"]      = IsWx;
            }
            else
            {
                IsWx = false;
            }

            if (CurrentUser == null)
            {
                filterContext.Result = GetErrorResult(string.Empty, null, "login");
                return;
            }
        }