Ejemplo n.º 1
0
        public ContentResult GetBalance()
        {
            BalanceResult result = APIAgent.Instance().GetBalance(this.SiteInfo, this.GameInfo, this.UserInfo);

            return(new ContentResult()
            {
                ContentType = "application/json",
                StatusCode = 200,
                Content = result.ToString()
            });
        }
Ejemplo n.º 2
0
        public ContentResult QueryTransfer([FromForm] string orderID)
        {
            QueryTransferResult result = APIAgent.Instance().QueryTransfer(this.SiteInfo, this.GameInfo, orderID);

            return(new ContentResult()
            {
                ContentType = "application/json",
                StatusCode = 200,
                Content = result.ToString()
            });
        }
Ejemplo n.º 3
0
        public ContentResult Guest([FromForm] GameCategory?category, [FromForm] string code)
        {
            LoginResult result = APIAgent.Instance().Guest(this.GameInfo, category, code);

            return(new ContentResult()
            {
                ContentType = "application/json",
                StatusCode = 200,
                Content = result.ToString()
            });
        }
Ejemplo n.º 4
0
        public ContentResult Transfer([FromForm] TransferAction action, [FromForm] string orderId, [FromForm] decimal money)
        {
            TransferResult result = APIAgent.Instance().Transfer(this.SiteInfo, this.GameInfo, this.UserInfo, action, orderId, money);

            return(new ContentResult()
            {
                ContentType = "application/json",
                StatusCode = 200,
                Content = result.ToString()
            });
        }
Ejemplo n.º 5
0
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            MethodInfo method = (context.ActionDescriptor as ControllerActionDescriptor).MethodInfo;

            // 如果带有游客标记则不需要做验证判断
            if (method.HasAttribute <GuestAttribute>())
            {
                return;
            }

            //#1 从Http头中得到商户信息
            bool isSite = context.HttpContext.GetAuth(out string merchant, out string secretKey);

            if (!isSite)
            {
                context.Result = (ContentResult) new Result(false, ResultStatus.SecretKey.ToString());
                return;
            }
            int  siteId = merchant.GetValue <int>();
            Site site   = SiteAgent.Instance().GetSiteInfo(siteId);

            if (site == null || site.SecretKey != secretKey)
            {
                context.Result = (ContentResult) new Result(false, ResultStatus.SecretKey.ToString());
                return;
            }

            //#2 固定参数判断(自动在游戏中创建账户)
            string gameCode = context.HttpContext.Request.Form["GameCode"];
            string userName = context.HttpContext.Request.Form["UserName"];

            if (!string.IsNullOrEmpty(gameCode))
            {
                GameSetting game = GameAgent.Instance().GetGameSetting(gameCode);
                if (game == null)
                {
                    context.Result = (ContentResult) new Result(false, ResultStatus.NoGame.ToString());
                    return;
                }
                if (!string.IsNullOrEmpty(userName))
                {
                    ResultStatus registerStatus = APIAgent.Instance().Register(siteId, userName, game, out UserGame user);
                    if (registerStatus != ResultStatus.Success)
                    {
                        context.Result = (ContentResult) new Result(false, registerStatus.ToString());
                        return;
                    }
                    context.HttpContext.SetItem(user);
                }
                context.HttpContext.SetItem(game);
            }
            context.HttpContext.SetItem(site);
        }