public void ProcessRequest(HttpContext httpContext)
        {
            httpContext.Response.ContentType            = "application/json";
            httpContext.Response.TrySkipIisCustomErrors = true;

            BasePage.IsUserLogin(); // 从 cookie 恢复 session

            Model.users model = HttpContext.Current.Session[DTKeys.SESSION_USER_INFO] as Model.users;
            if (model == null)
            {
                httpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                httpContext.Response.Write(JsonConvert.SerializeObject(new { msg = "登录超时,请重新登陆" }));
                return;
            }

            var action = DTRequest.GetQueryString("action");

            if (action == "sendVerifyEmailViaCode")
            {
                var email = DTRequest.GetQueryString("email");
                SendVerifyEmail(model.id, email, (i, s) =>
                {
                    httpContext.Response.StatusCode = i;
                    httpContext.Response.Write(JsonConvert.SerializeObject(new { msg = s }));
                }, "emailVerifyByCode");
            }
            else if (action == "sendVerifyEmail")
            {
                var email = DTRequest.GetQueryString("email");
                SendVerifyEmail(model.id, email, (i, s) =>
                {
                    httpContext.Response.StatusCode = i;
                    httpContext.Response.Write(JsonConvert.SerializeObject(new { msg = s }));
                });
            }
            else if (action == "verifyEmail")
            {
                var codeFromEmail = DTRequest.GetQueryString("code");

                var cachedCode       = (string)SessionHelper.Get("verifying_email_code");
                var sendVerifyMailAt = (DateTime?)SessionHelper.Get("last_send_verifying_mail_at");
                if (sendVerifyMailAt != null &&
                    DateTime.Now.Subtract(sendVerifyMailAt.Value).TotalMinutes < SessionHelper.GetSessionTimeout() &&
                    !string.IsNullOrWhiteSpace(cachedCode) && string.Equals(codeFromEmail, cachedCode, StringComparison.CurrentCultureIgnoreCase))
                {
                    var context = new Agp2pDataContext();
                    var dtUsers = context.dt_users.Single(u => u.id == model.id);
                    dtUsers.email = model.email = SessionHelper.Get <string>("verifying_email");
                    context.SubmitChanges();
                    SessionHelper.Remove("verifying_email");
                    SessionHelper.Remove("last_send_verifying_mail_at");
                    SessionHelper.Remove("verifying_email_code");
                    httpContext.Response.StatusCode = (int)HttpStatusCode.OK;
                    var msg = new UserPointMsg(dtUsers.id, dtUsers.user_name, (int)Agp2pEnums.PointEnum.BindingEmail);
                    MessageBus.Main.Publish(msg);
                    httpContext.Response.Write(JsonConvert.SerializeObject(new { msg = "邮箱绑定成功" }));
                }
                else
                {
                    httpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    httpContext.Response.Write(JsonConvert.SerializeObject(new { msg = "邮箱验证码已失效" }));
                }
            }
            else
            {
                httpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                httpContext.Response.Write(JsonConvert.SerializeObject(new { msg = "参数不正确" }));
            }
        }
Exemple #2
0
        public new static string AjaxAppendCard(string cardNumber, string bankName)
        {
            var userInfo = GetUserInfoByLinq();

            HttpContext.Current.Response.TrySkipIisCustomErrors = true;
            if (userInfo == null)
            {
                HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                return("请先登录");
            }
            // 检查用户的输入
            if (!new Regex(@"^\d{16,}$").IsMatch(cardNumber))
            {
                HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return("银行卡号格式不正确");
            }
            if (!new Regex(@"^[\u4e00-\u9fa5]+$").IsMatch(bankName))
            {
                HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return("银行名称格式不正确");
            }

            var context     = new Agp2pDataContext();
            var alreadyHave = userInfo.li_bank_accounts.Any(c => c.account == cardNumber);

            if (alreadyHave)
            {
                HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.Conflict;
                return("你已经添加了卡号为 " + cardNumber + " 的银行卡,不能重复添加");
            }

            if (3 <= userInfo.li_bank_accounts.Count)
            {
                HttpContext.Current.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                return("最多只能添加 3 张银行卡");
            }

            //查询该客户是否已经在丰付绑定了银行卡
            var user = context.dt_users.Single(u => u.id == userInfo.id);
            var req  = new SignBankCardQueryRequest(user.id);

            MessageBus.Main.Publish(req);
            var resp = BaseRespMsg.NewInstance <SignBankCardQueryRespone>(req.SynResult);

            if (resp.RechargeProtocolList != null)
            {
                if (resp.CheckRechargeProtocol(bankName, cardNumber))
                {
                    var card = new li_bank_accounts
                    {
                        dt_users         = user,
                        account          = cardNumber,
                        bank             = bankName,
                        last_access_time = DateTime.Now,
                        opening_bank     = "",
                        location         = "",
                        type             = (int)Common.Agp2pEnums.BankAccountType.QuickPay,
                    };
                    context.li_bank_accounts.InsertOnSubmit(card);
                    context.SubmitChanges();
                    var msg = new UserPointMsg(user.id, user.user_name, (int)Agp2pEnums.PointEnum.BindingBank);
                    MessageBus.Main.Publish(msg);
                    return("保存银行卡信息成功");
                }
                else
                {
                    return("添加银行卡失败,您输入的银行卡号与丰付平台绑定的银行卡号不一致!");
                }
            }
            var cardUnknown = new li_bank_accounts
            {
                dt_users         = user,
                account          = cardNumber,
                bank             = bankName,
                last_access_time = DateTime.Now,
                opening_bank     = "",
                location         = "",
                type             = (int)Common.Agp2pEnums.BankAccountType.Unknown,
            };

            context.li_bank_accounts.InsertOnSubmit(cardUnknown);
            context.SubmitChanges();
            var msg2 = new UserPointMsg(user.id, user.user_name, (int)Agp2pEnums.PointEnum.BindingBank);

            MessageBus.Main.Publish(msg2);
            return("保存银行卡信息成功");
        }
        /// <summary>
        /// 会员积分处理
        /// </summary>
        private static void HandleUserSignMsg(UserPointMsg userPointMsg)
        {
            switch (userPointMsg.Type)
            {
            case (int)Agp2pEnums.PointEnum.Register:
                userPointMsg.Point  = 38;
                userPointMsg.Remark = "注册送积分";
                break;

            case (int)Agp2pEnums.PointEnum.RealNameAuth:
                userPointMsg.Point  = 38;
                userPointMsg.Remark = "实名认证";
                break;

            case (int)Agp2pEnums.PointEnum.BindingEmail:
                userPointMsg.Point  = 28;
                userPointMsg.Remark = "绑定邮箱";
                break;

            case (int)Agp2pEnums.PointEnum.BindingBank:
                userPointMsg.Point  = 38;
                userPointMsg.Remark = "绑定银行卡";
                break;

            case (int)Agp2pEnums.PointEnum.Recharge:
                userPointMsg.Point = 50;
                break;

            case (int)Agp2pEnums.PointEnum.Invest:

                userPointMsg.Remark = "投资";
                break;

            case (int)Agp2pEnums.PointEnum.FirstInvest:
                userPointMsg.Point  = 368;
                userPointMsg.Remark = "首次投资";
                break;

            case (int)Agp2pEnums.PointEnum.InviteRegister:
                userPointMsg.Point = 888;
                break;

            case (int)Agp2pEnums.PointEnum.InviteInvest:
                userPointMsg.Point = 50;
                break;

            case (int)Agp2pEnums.PointEnum.LotteryGet:
                userPointMsg.Remark = "积分抽奖获取积分";
                break;

            case (int)Agp2pEnums.PointEnum.Lottery:
                userPointMsg.Point  = -80;
                userPointMsg.Remark = "积分抽奖消耗";
                break;
            }

            var context = new Agp2pDataContext();

            var user = context.dt_users.SingleOrDefault(u => u.id == userPointMsg.UserId);

            if (user != null)
            {
                var dtUserPointLog = new dt_user_point_log
                {
                    user_id   = userPointMsg.UserId,
                    user_name = userPointMsg.UserName,
                    add_time  = DateTime.Now,
                    value     = userPointMsg.Point,
                    type      = (short)userPointMsg.Type,
                    remark    = userPointMsg.Remark
                };
                context.dt_user_point_log.InsertOnSubmit(dtUserPointLog);
                user.point += userPointMsg.Point;
                context.SubmitChanges();
            }
        }