예제 #1
0
        /// <summary>
        /// 完善信息
        /// </summary>
        /// <param name="id">目标页</param>
        /// <returns></returns>
        public ActionResult Mobile(string url)
        {
            var authenticationUser = BLLAuthentication.GetAuthenticationUser();

            ViewBag.Url = url;
            return(View(authenticationUser));
        }
예제 #2
0
        /// <summary>
        /// 微信支付
        /// </summary>
        /// <param name="id">订单号</param>
        /// <returns></returns>
        public ActionResult SetTopPay(int id, int set_top, decimal money)
        {
            string msg                = "";
            string orderNo            = "";
            string type               = set_top == 1 ? "分类置顶" : "全站置顶";
            var    authenticationUser = BLLAuthentication.GetAuthenticationUser();
            bool   result             = BLLNewsOrder.Add(new ht_news_order()
            {
                news_id = id, type = type, value = set_top.ToString(), money = money, pay = "微信", add_userid = authenticationUser.id
            }, out msg, out orderNo);

            if (!result)
            {
                return(JsonResult(Model.Enum.APIErrCode.OperateFail, msg));
            }
            string Ip      = Request.UserHostAddress;
            string openId  = BLLUser.GetLoginUserInfo().openid;
            string notiUrl = Request.Url.Scheme + "://" + Request.Url.Authority + "/WX/PayNotify";//通知地址

            bool isRequestSuccess = false;
            var  payRequest       = BLLWeixin.WXPay(orderNo, money, openId, Ip, notiUrl, out isRequestSuccess, string.Format("{1}订单号:{0}", orderNo, type));

            if (isRequestSuccess)
            {
                return(JsonResult(Model.Enum.APIErrCode.Success, "OK", payRequest));
            }
            else
            {
                return(JsonResult(Model.Enum.APIErrCode.OperateFail));
            }
        }
예제 #3
0
        public ActionResult Index()
        {
            ViewBag.FootActive = 4;
            var authenticationUser = BLLAuthentication.GetAuthenticationUser();

            return(View(authenticationUser));
        }
예제 #4
0
        public ActionResult EarnMoney()
        {
            var    authenticationUser = BLLAuthentication.GetAuthenticationUser();
            string qrUrl = Request.Url.Scheme + "//" + Request.Url.Authority + "?pid=" + authenticationUser.id;

            ViewBag.QrUrl = "/Home/GetQrCode?redirect=" + HttpUtility.UrlEncode(qrUrl);
            return(View());
        }
예제 #5
0
        /// <summary>
        /// 获取用户是否关注
        /// </summary>
        /// <returns></returns>
        public ActionResult GetUserIsSubscribe()
        {
            var authenticationUser = BLLAuthentication.GetAuthenticationUser();
            var user = BLLUser.GetUserById(authenticationUser.id);

            if (user == null)
            {
                return(JsonResult(APIErrCode.Success, "获取成功", 0));
            }
            return(JsonResult(APIErrCode.Success, "获取成功", user.issubscribe));
        }
예제 #6
0
        public ActionResult Detail(int id)
        {
            var detail             = BLLNews.Get(id);
            var authenticationUser = BLLAuthentication.GetAuthenticationUser();

            if (authenticationUser.id != detail.add_userid)
            {
                return(JsonResult(APIErrCode.OperateFail, "无权操作"));
            }
            return(JsonResult(APIErrCode.Success, "OK", detail));
        }
예제 #7
0
        public ActionResult SubscribeList()
        {
            int curUserid = BLLAuthentication.GetAuthenticationUser().id;

            Model.Model.PageResult <ht_news_subscribe> pageModel = BLLNewsSubscribe.GetSubscribeListPageResult(curUserid);
            if (Request.IsAjaxRequest())
            {
                apiResp.status = true;
                apiResp.result = pageModel;
                return(Json(apiResp));
            }
            return(View(pageModel));
        }
예제 #8
0
        /// <summary>
        /// 完善手机
        /// </summary>
        /// <param name="mobile"></param>
        /// <param name="code"></param>
        /// <returns></returns>
        public ActionResult PostMobile(string mobile, string code)
        {
            if (!MyRegex.IsPhone(mobile))
            {
                return(JsonResult(APIErrCode.PhoneFormatError, "手机格式错误"));
            }

            var authenticationUser = BLLAuthentication.GetAuthenticationUser();
            var obj = new XCache().Get("Code" + authenticationUser.openid);//写入缓存

            if (obj == null)
            {
                return(JsonResult(APIErrCode.CheckCodeErr, "验证码已过期"));
            }
            if (obj.ToString().ToUpper() != code.Trim().ToUpper())
            {
                return(JsonResult(APIErrCode.CheckCodeErr, "验证码错误"));
            }
            ht_user user = BLLUser.GetUserByOpenid(authenticationUser.openid);

            if (user == null)
            {
                user          = new ht_user();
                user.addtime  = DateTime.Now;
                user.username = user.openid;
                user.openid   = authenticationUser.openid;
                user.salt     = Utils.GetSalt();
                user.password = EncryptUtil.DesEncrypt("123456", user.salt);
                user.points   = 0;
                user.money    = 0;
                if (authenticationUser.parent_id.HasValue)
                {
                    user.parent_id = authenticationUser.parent_id;
                    ht_user parentUser = BLLUser.GetUserById(authenticationUser.parent_id.Value);
                    if (parentUser != null && parentUser.parent_id.HasValue)
                    {
                        user.pparent_id = parentUser.parent_id;
                    }
                }
            }
            user.mobile   = mobile;
            user.avatar   = authenticationUser.avatar;
            user.nickname = authenticationUser.nickname;
            if (BLLUser.PostUser(user) > 0)
            {
                BLLAuthentication.LoginAuthenticationTicket(user);
                return(JsonResult(APIErrCode.Success, "提交成功"));
            }
            return(JsonResult(APIErrCode.CheckCodeErr, "提交失败"));
        }
예제 #9
0
        // GET: WX
        public ActionResult OAuthCallback()
        {
            string code  = Request["code"];
            string appId = Request["appid"]; //授权给开放平台时返回此参数 默认授权无此参数
            string state = Request["state"]; //state 原样返回

            string pageUrl           = HttpUtility.UrlDecode(state);
            string appSecret         = "";
            string getAccessTokenUrl = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code",
                                                     appId,
                                                     appSecret,
                                                     code);
            string             accessTokenSource = RequestUtil.Get(getAccessTokenUrl);
            WXOAuthAccessToken accessTokenModel  = JsonConvert.DeserializeObject <WXOAuthAccessToken>(accessTokenSource);

            ht_user user = BLLUser.GetUserByOpenid(accessTokenModel.openid);

            if (user != null)
            {
                BLLAuthentication.LoginAuthenticationTicket(user);
                return(Redirect(pageUrl));
            }
            else
            {
                user             = new ht_user();
                user.addtime     = DateTime.Now;
                user.parent_id   = 0;
                user.points      = 0;
                user.money       = 0;
                user.issubscribe = 0;
                user.salt        = Utils.GetCheckCode(6); //获得6位的salt加密字符串
                user.password    = EncryptUtil.DesEncrypt("123456", user.salt);
            }
            string wxUserInfoSourceJson = RequestUtil.Get(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}",
                                                                        accessTokenModel.access_token,
                                                                        accessTokenModel.openid
                                                                        ));
            WeixinUserInfo wxUserInfo = JsonConvert.DeserializeObject <WeixinUserInfo>(wxUserInfoSourceJson);

            user.username = user.openid;
            user.openid   = wxUserInfo.openid;
            user.nickname = wxUserInfo.nickname;
            user.avatar   = wxUserInfo.headimgurl;
            if (BLLUser.AddUser(user) > 0)
            {
                BLLAuthentication.LoginAuthenticationTicket(user);
            }
            return(Redirect(pageUrl));
        }
예제 #10
0
        public ActionResult PostSubscribe(ht_news_subscribe model)
        {
            int curUserid = BLLAuthentication.GetAuthenticationUser().id;

            model.add_userid = curUserid;
            string msg;

            if (BLLNewsSubscribe.AddSubscribe(model, out msg))
            {
                return(JsonResult(APIErrCode.Success, "订阅成功", model));
            }
            else
            {
                return(JsonResult(APIErrCode.OperateFail, msg));
            }
        }
예제 #11
0
        /// <summary>
        /// 用户授权回调
        /// </summary>
        /// <returns></returns>
        public ActionResult OAuthCallback()
        {
            string code  = Request["code"];
            string appId = Request["appid"]; //授权给开放平台时返回此参数 默认授权无此参数
            string state = Request["state"]; //state 原样返回

            string pageUrl = HttpUtility.UrlDecode(state);

            string appSecret         = "";
            string getAccessTokenUrl = string.Format("https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code",
                                                     appId,
                                                     appSecret,
                                                     code);
            string             accessTokenSource = RequestUtil.Get(getAccessTokenUrl);
            WXOAuthAccessToken accessTokenModel  = JsonConvert.DeserializeObject <WXOAuthAccessToken>(accessTokenSource);

            ht_user user = BLLUser.GetUserByOpenid(accessTokenModel.openid);

            if (user != null)
            {
                BLLAuthentication.LoginAuthenticationTicket(user);
                return(Redirect(pageUrl));
            }
            string wxUserInfoSourceJson = RequestUtil.Get(string.Format("https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}",
                                                                        accessTokenModel.access_token,
                                                                        accessTokenModel.openid
                                                                        ));
            WeixinUserInfo wxUserInfo = JsonConvert.DeserializeObject <WeixinUserInfo>(wxUserInfoSourceJson);

            user          = new ht_user();
            user.nickname = wxUserInfo.nickname;
            user.avatar   = wxUserInfo.headimgurl;
            user.username = accessTokenModel.openid;
            user.openid   = accessTokenModel.openid;
            string prms  = pageUrl.Substring(pageUrl.IndexOf("?") + 1);
            var    qList = HttpUtility.ParseQueryString(prms);
            var    pid   = qList.Get("pid");

            if (pid != null)
            {
                user.parent_id = Convert.ToInt32(pid);
            }
            BLLAuthentication.LoginAuthenticationTicket(user);
            return(Redirect(pageUrl));
        }
예제 #12
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            AuthenticationUser curUser = BLLAuthentication.GetAuthenticationUser();

            if (string.IsNullOrWhiteSpace(curUser.mobile))
            {
                if (filterContext.HttpContext.Request.IsAjaxRequest())
                {
                    var json = JsonConvert.SerializeObject(new ApiResponse
                    {
                        code   = (int)APIErrCode.MobileIsNull,
                        msg    = "信息未完善",
                        status = false
                    });
                    filterContext.HttpContext.Response.Write(json);
                    filterContext.HttpContext.Response.End();
                }
                else
                {
                    string currentUrl = filterContext.HttpContext.Request.Url.PathAndQuery.ToString();//当前绝对地址
                    //访问授权链接
                    filterContext.HttpContext.Response.Redirect("/User/Mobile?url=" + HttpUtility.UrlEncode(currentUrl));
                }
            }

            if (curUser.isdisable == 1)
            {
                if (filterContext.HttpContext.Request.IsAjaxRequest())
                {
                    var json = JsonConvert.SerializeObject(new ApiResponse
                    {
                        code   = (int)APIErrCode.OperateFail,
                        msg    = "您的帐号已被禁用",
                        status = false
                    });
                    filterContext.HttpContext.Response.Write(json);
                    filterContext.HttpContext.Response.End();
                }
                else
                {
                    //访问授权链接
                    filterContext.HttpContext.Response.Redirect("/Error/Index?msg=您的帐号已被禁用");
                }
            }
        }
예제 #13
0
        public ActionResult PostSubmit(ht_news model)
        {
            string msg                = "";
            string orderNo            = "";
            var    authenticationUser = BLLAuthentication.GetAuthenticationUser();

            model.add_userid   = authenticationUser.id;
            model.add_nickname = authenticationUser.nickname;
            model.add_avatar   = authenticationUser.avatar;
            if (BLLNews.Add(model, out msg, out orderNo))
            {
                return(JsonResult(APIErrCode.Success, "OK", new { order_no = orderNo }));
            }
            else
            {
                return(JsonResult(APIErrCode.OperateFail, msg));
            }
        }
예제 #14
0
        /// <summary>
        /// 信息列表
        /// </summary>
        /// <param name="searchKey"></param>
        /// <param name="page"></param>
        /// <param name="rows"></param>
        /// <returns></returns>
        public ActionResult BaseNewsList(ht_news searchKey, int page = 1, int rows = 5)
        {
            var curUserid = BLLAuthentication.GetAuthenticationUser().id;

            if (searchKey.isme.HasValue && searchKey.isme.Value)
            {
                searchKey.add_userid = curUserid;                                                  //我的发布
            }
            Model.Model.PageResult <ht_news> pageModel = BLLNews.GetNewsListPageResult(page, rows, searchKey, curUserid);
            if (Request.IsAjaxRequest())
            {
                apiResp.status = true;
                apiResp.result = pageModel;
                return(Json(apiResp));
            }

            return(View(pageModel));
        }
예제 #15
0
        /// <summary>
        /// 模拟登陆
        /// </summary>
        /// <returns></returns>
        public ActionResult TestLogin(string username, string password)
        {
            if (Request.IsAjaxRequest())
            {
                var user = BLLUser.GetUserByUsername(username);
                if (user == null)
                {
                    return(JsonResult(APIErrCode.IsNotFound, "账号未找到"));
                }
                if (user.password != Utility.EncryptUtil.DesEncrypt(password, user.salt))
                {
                    return(JsonResult(APIErrCode.PasswordFail, "密码错误"));
                }
                BLLAuthentication.LoginAuthenticationTicket(user);
                return(JsonResult(APIErrCode.Success, "登陆成功"));
            }

            return(View());
        }
예제 #16
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (!filterContext.HttpContext.Request.IsAuthenticated)
            {
                ht_user user = BLLUser.GetUserById(1);
                BLLAuthentication.LoginAuthenticationTicket(user);
                return;

                string currentUrl  = filterContext.HttpContext.Request.Url.PathAndQuery.ToString();                                                                //当前地址和条件
                string callBackUrl = filterContext.HttpContext.Request.Url.Scheme + "://" + filterContext.HttpContext.Request.Url.Authority + "/WX/OAuthCallback"; //当前绝对地址
                var    oauthUrl    = string.Format("https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope={2}&state={3}#wechat_redirect",
                                                   BLLConfig.Get("wx_appid"),
                                                   callBackUrl,
                                                   "snsapi_userinfo",
                                                   HttpUtility.UrlEncode(currentUrl)
                                                   );
                //访问授权链接
                filterContext.HttpContext.Response.Redirect(oauthUrl);
            }
        }
예제 #17
0
        public ActionResult Pay(string id)
        {
            var details = BLLNews.GetNewsDetailsByOrderNo(id);

            if (details.pay_status == 1) //已支付
            {
                return(PayResult(id));
            }
            int user_id = BLLAuthentication.GetAuthenticationUser().id;
            var user    = BLLUser.GetUserById(user_id);

            ViewBag.RespUser = new Model.Model.RespUser
            {
                id       = user.id,
                nickname = user.nickname,
                avatar   = user.avatar,
                money    = user.money.Value
            };
            return(View(details));
        }
예제 #18
0
        /// <summary>
        /// 获取验证码
        /// </summary>
        /// <returns></returns>
        public ActionResult GetCode(string mobile)
        {
            if (!MyRegex.IsPhone(mobile))
            {
                return(JsonResult(APIErrCode.PhoneFormatError, "手机格式错误"));
            }
            AuthenticationUser authenticationUser = BLLAuthentication.GetAuthenticationUser();
            string             code = HT.Utility.Utils.Number(6);

            return(JsonResult(APIErrCode.Success, "获取验证码成功", code));

            string sms_expire = BLLConfig.Get("sms_expire");
            int    expire     = Convert.ToInt32(sms_expire);
            string msg        = "";

            if (BLLSendSms.SendMsg(mobile, code, "mobile", expire, out msg))
            {
                new XCache().Add("Code" + authenticationUser.openid, code, expire);//写入缓存
                return(JsonResult(APIErrCode.Success, "获取验证码成功", code));
            }
            return(JsonResult(APIErrCode.OperateFail, msg));
        }
예제 #19
0
        /// <summary>
        /// 获取登录人余额
        /// </summary>
        /// <returns></returns>
        public ActionResult GetUserMoney()
        {
            var authenticationUser = BLLAuthentication.GetAuthenticationUser();

            return(JsonResult(APIErrCode.Success, "获取成功", BLLUser.GetUserById(authenticationUser.id).money));
        }
예제 #20
0
        /// <summary>
        /// 获取登录人信息
        /// </summary>
        /// <returns></returns>
        public ActionResult GetAuthenticationUser()
        {
            var authenticationUser = BLLAuthentication.GetAuthenticationUser();

            return(JsonResult(APIErrCode.Success, "获取成功", authenticationUser));
        }