Пример #1
0
        /// <summary>
        /// 盗魂传充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                                                                                                            //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                                                                                                                 //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                                                                                                               //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString();                                                                                      //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                                                                                                         //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                                                                                                        //获取时间戳
                Sign   = DESEncrypt.Md5(gc.AgentId + "|" + gu.UserName + "|" + gs.ServerNo + "|" + tstamp + "|" + OrderNo + "|" + PayGold + "|" + gc.PayTicket, 32); //获取验证参数
                string       PayUrl = "http://" + gc.PayCom + "?ptid=" + gc.AgentId + "&account=" + gu.UserName + "&areaid=" + gs.ServerNo + "&tt=" + tstamp + "&orderno=" + OrderNo + "&point=" + PayGold + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                                                                                                             //获取玩家查询信息
                if (gui.Message == "Success")                                                                                                                        //判断玩家是否存在
                {
                    if (order.State == 1)                                                                                                                            //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl);                                                                                          //获取充值结果
                        PayResult = PayResult.Substring(0, PayResult.IndexOf('}'));                                                                                  //处理返回结果
                        PayResult = PayResult.Replace(PayResult.Substring(0, PayResult.LastIndexOf('{') + 1), "");
                        string[] b = PayResult.Split(',');
                        switch (b[0].Substring(13))                             //对充值结果进行解析
                        {
                        case "0":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "1":
                            return("充值失败!错误原因:商家错误或者不存在!");

                        case "2":
                            return("订单重复,之前已经处理成功!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return("充值失败!角色不存在!");
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #2
0
        /// <summary>
        /// 热血海贼王充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns></returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                                                            //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                                                                 //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                                                               //获取用户要登录的服务器
            if (gus.IsGameUser(gu.UserName))                                                                         //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                                                        //获取时间戳
                string PayGold = (order.PayMoney * game.GameMoneyScale).ToString();                                  //计算支付的游戏币
                Sign = DESEncrypt.Md5(gu.Id.ToString() + order.PayMoney + OrderNo + gs.ServerNo + gc.PayTicket, 32); //获取验证参数
                string       PayUrl = "http://" + gs.ServerNo + "." + gc.PayCom + "?qid=" + gu.Id + "&order_amount=" + order.PayMoney + "&order_id=" + OrderNo + "&server_id=" + gs.ServerNo + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                                                             //获取玩家查询信息
                if (gui.Message == "Success")                                                                        //判断玩家是否存在
                {
                    if (order.State == 1)                                                                            //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl);                                          //获取充值返回结果
                        switch (PayResult)                                                                           //对充值结果进行解析
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "2":
                            return("充值失败!无法提交重复订单!");

                        case "0":
                            return("充值失败!未知原因!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #3
0
 /// <summary>
 /// 支付成功之后更新订单
 /// </summary>
 /// <param name="OrderNo">订单号</param>
 /// <returns>返回是否成功</returns>
 public Boolean UpdateOrder(string OrderNo)
 {
     return(os.UpdateOrder(OrderNo));
 }
Пример #4
0
        /// <summary>
        /// 街机三国充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                string       sign   = DESEncrypt.Md5(gu.Id + gc.AgentId + tstamp + gs.ServerNo + PayGold + order.PayMoney * 100 + OrderNo + gc.PayTicket, 32);
                string       PayUrl = "http://" + gc.PayCom + "?user="******"&pay_amount=" + PayGold + "&amount=" + order.PayMoney * 100 + "&time=" + tstamp + "&order_id=" + OrderNo + "&server_id=" + gs.ServerNo + "&platform=" + gc.AgentId + "&sign=" + sign + "";
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl); //获取充值结果
                        switch (PayResult)                                  //对充值结果进行解析
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                    //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney); //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "2":
                            return("充值失败!错误原因:充值的服务器不存在!");

                        case "3":
                            return("充值失败!错误原因:充值金额有误!");

                        case "4":
                            return("充值失败!错误原因:验证参数错误!");

                        case "5":
                            return("充值失败!错误原因:无非提交重复订单!");

                        case "6":
                            return("充值失败!错误原因:不存在的用户!");

                        case "7":
                            return("充值失败!错误原因:充值服务器出错!");

                        case "8":
                            return("充值失败!错误原因:请求订单超时!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #5
0
        /// <summary>
        /// 怒斩充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5(order.PayMoney + gu.Id.ToString() + OrderNo + tstamp + gc.PayTicket, 32);
                string       PayUrl = "http://" + gs.ServerNo + "." + gc.PayCom + "exchange.php?amount=" + order.PayMoney + "&u=" + gu.Id + "&order_no=" + OrderNo + "&time=" + tstamp + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl); //获取充值结果
                        switch (PayResult)                                  //对充值结果进行解析
                        {
                        case "success":
                            if (os.UpdateOrder(order.OrderNo))                    //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney); //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "err_time":
                            return("充值失败!错误原因:订单请求超时!");

                        case "err_sign":
                            return("充值失败!错误原因:验证参数错误!");

                        case "err_repeat":
                            return("充值失败!错误原因:无法提交重复订单!");

                        case "fail":
                            return("充值失败!错误原因:其它错误!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return("充值失败!角色不存在!");
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #6
0
        /// <summary>
        /// 可乐三国充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5("money=" + order.PayMoney + "&orderId=" + OrderNo + "&payPoint=" + PayGold + "&platId=" + gc.AgentId + "&platUid=" + gu.UserName + "&sid=" + gs.ServerNo + "&test=1&tm=" + tstamp + "&" + gc.PayTicket, 32);
                string       PayUrl = "http://" + gc.PayCom + "?orderId=" + OrderNo + "&money=" + order.PayMoney + "&payPoint=" + PayGold + "&platId=" + gc.AgentId + "&platUid=" + gu.UserName + "&sid=" + gs.ServerNo + "&test=1&tm=" + tstamp + "&sig=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl); //获取充值结果
                        switch (PayResult)                                  //对充值结果进行解析
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                    //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney); //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值成功!错误原因:更新订单状态失败!");
                            }

                        case "0":
                            return("充值失败!充值失败!");

                        case "-1":
                            return("充值失败!验证参数错误!");

                        case "-2":
                            return("充值失败!请求超时!");

                        case "-3":
                            return("充值失败!平台或者服务器不存在!");

                        case "-4":
                            return("充值失败!验证失败!");

                        case "-5":
                            return("充值失败!用户不存在!");

                        case "-6":
                            return("充值失败!服务器不存在角色!");

                        case "-7":
                            return("充值失败!IP限制!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #7
0
        /// <summary>
        /// 一剑轩辕充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5(gu.UserName + "|" + tstamp + "|" + PayGold + "|" + gs.QuFu + "|" + gc.PayTicket, 32);
                string       PayUrl = "http://" + gs.ServerNo + "." + gc.PayCom + "?accname=" + gu.UserName + "&paytime=" + tstamp + "&gold=" + PayGold + "&billno=" + OrderNo + "&serverid=" + gs.QuFu + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl); //获取充值结果
                        Dictionary <string, string> PRE = Json.JsonToArray(PayResult);
                        switch (PRE["ret"])                                 //对充值结果进行解析
                        {
                        case "0":
                            if (os.UpdateOrder(order.OrderNo))                    //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney); //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "1":
                            return("充值失败!错误原因:角色不存在!");

                        case "2":
                            return("充值失败!错误原因:无法提交重复订单!");

                        case "3":
                            return("充值失败!错误原因:验证失败!");

                        case "4":
                            return("充值失败!错误原因:参数错误!");

                        case "5":
                            return("充值失败!错误原因:非法Ip!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return("充值失败!角色不存在!");
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #8
0
        /// <summary>
        /// 封天传充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5("[" + gc.PayTicket + gu.UserName + "1" + order.PayMoney + tstamp + "]", 32);
                string       PayUrl = "http://" + gs.ServerNo + "." + gc.PayCom + "?userName="******"&goodsId=1&num=" + order.PayMoney + "&time=" + tstamp + "&sign=" + Sign + "&orderId=" + OrderNo + "&source=tt&serverId=" + gs.ServerNo;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        try
                        {
                            string PayResult = Utils.GetWebPageContent(PayUrl);         //获取充值结果
                            switch (PayResult)
                            {
                            case "1":
                                if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                                {
                                    gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                    return("充值成功!");
                                }
                                else
                                {
                                    return("充值失败!错误原因:更新订单状态失败!");
                                }

                            case "0":
                                return("充值失败!错误原因:充值失败!");

                            case "2":
                                return("充值失败!错误原因:无法提交重复订单!");

                            default:
                                return("充值失败!未知错误!");
                            }
                        }
                        catch (Exception)
                        {
                            return("充值失败!错误原因:充值失败!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!错误原因:用户不存在");
            }
        }
Пример #9
0
        /// <summary>
        /// 猎魔充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5(gc.AgentId + "|" + gu.Id + "|1233|" + gs.ServerNo + "|" + order.PayMoney + "|" + tstamp + "|" + OrderNo + "|" + gc.PayTicket, 32);
                string       PayUrl = "http://" + gc.PayCom + "?site=" + gc.AgentId + "&uid=" + gu.Id + "&game=1233&num=" + gs.ServerNo + "&money=" + order.PayMoney + "&time=" + tstamp + "&orderId=" + OrderNo + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                      //获取玩家查询信息
                if (gui.Message == "Success")                                 //判断玩家是否存在
                {
                    if (order.State == 1)                                     //判断订单状态是否为支付状态
                    {
                        string   PayResult = Utils.GetWebPageContent(PayUrl); //获取充值结果
                        string[] b         = PayResult.Replace("[", "").Replace("]", "").Split(',');
                        if (b[0] == "1")
                        {
                            if (os.UpdateOrder(order.OrderNo))                    //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney); //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }
                        }
                        else
                        {
                            switch (b[1])
                            {
                            case "1":
                                return("充值失败!错误原因:站点不存在!");

                            case "2":
                                return("充值失败!错误原因:验证错误!");

                            case "3":
                                return("充值失败!错误原因:服务器不存在!");

                            case "4":
                                return("充值失败!错误原因:服务器未开启!");

                            case "5":
                                return("充值失败!错误原因:服务器维护中!");

                            case "6":
                                return("充值失败!错误原因:金额错误!");

                            case "7":
                                return("充值失败!错误原因:角色不存在!");

                            case "8":
                                return("充值失败!错误原因:数据库错误!");

                            case "9":
                                return("充值失败!错误原因:卡类型错误!");

                            case "10":
                                return("充值失败!错误原因:角色不存在!");

                            case "11":
                                return("充值失败!错误原因:卡已发完!");

                            case "12":
                                return("充值失败!错误原因:IP限制!");

                            case "13":
                                return("充值失败!错误原因:游戏不存在!");

                            case "255":
                                return("充值失败!错误原因:未知错误!");

                            default:
                                return("充值失败!未知错误!");
                            }
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!错误原因:用户不存在");
            }
        }
Пример #10
0
        /// <summary>
        /// 根据订单处理充值
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回处理结果</returns>
        public string PayManager(string OrderNo)
        {
            GameUserServers gus = new GameUserServers();
            OrdersServers   os  = new OrdersServers();
            LotteryManager  lm  = new LotteryManager();
            Orders          o   = os.GetOrder(OrderNo);

            if (o.PayTypeId == 7)
            {
                if (gus.UpdateUserMoney(o.AdminUserName, o.PayMoney * 10, "-"))
                {
                    if (os.UpdateOrder(OrderNo))
                    {
                    }
                    else
                    {
                        return("更新订单状态失败!");
                    }
                }
                else
                {
                    return("扣除平台币失败!");
                }
            }
            if (o.PayTypeId != 6)
            {
                lm.AddUserPoints(o.UserName, o.PayMoney);
            }
            if (o.Type == 1)
            {
                Games g = new Games();
                g = gss.GetGame(o.GameId);
                switch (g.GameNo)
                {
                case "dxz":
                    return(new Game_Dxz().Pay(OrderNo));

                case "sjsg":
                    return(new Game_Sjsg().Pay(OrderNo));

                case "tj":
                    return(new Game_Tj().Pay(OrderNo));

                case "nz":
                    return(new Game_Nz().Pay(OrderNo));

                case "djj":
                    return(new Game_Djj().Pay(OrderNo));

                case "jlc":
                    return(new Game_Jlc().Pay(OrderNo));

                case "ly":
                    return(new Game_Ly().Pay(OrderNo));

                case "xyb":
                    return(new Game_Xyb().Pay(OrderNo));

                case "dhz":
                    return(new Game_Dhz().Pay(OrderNo));

                case "wz":
                    return(new Game_Wz().Pay(OrderNo));

                case "dpqk":
                    return(new Game_Dpqk().Pay(OrderNo));

                case "lm":
                    return(new Game_Lm().Pay(OrderNo));

                case "mxqy":
                    return(new Game_Mxqy().Pay(OrderNo));

                case "zsg":
                    return(new Game_Zsg().Pay(OrderNo));

                case "rxhzw":
                    return(new Game_Rxhzw().Pay(OrderNo));

                case "klsg":
                    return(new Game_Klsg().Pay(OrderNo));

                case "gjqx":
                    return(new Game_Gjqx().Pay(OrderNo));

                case "txj":
                    return(new Game_Txj().Pay(OrderNo));

                case "wdqk":
                    return(new Game_Wdqk().Pay(OrderNo));

                case "chcq":
                    return(new Game_Chcq().Pay(OrderNo));

                case "jjsg":
                    return(new Game_Jjsg().Pay(OrderNo));

                case "qh":
                    return(new Game_Qh().Pay(OrderNo));

                case "yjxy":
                    return(new Game_Yjxy().Pay(OrderNo));

                case "xxas":
                    return(new Game_Xxas().Pay(OrderNo));

                case "tgzt":
                    return(new Game_Tgzt().Pay(OrderNo));

                case "nslm":
                    return(new Game_Nslm().Pay(OrderNo));

                case "ftz":
                    return(new Game_Ftz().Pay(OrderNo));

                case "sbcs":
                    return(new Game_Sbcs().Pay(OrderNo));

                case "zwj":
                    return(new Game_Zwj().Pay(OrderNo));

                case "dqqyz":
                    return(new Game_Dqqyz().Pay(OrderNo));

                case "yxy":
                    return(new Game_Yxy().Pay(OrderNo));

                case "jhwj":
                    return(new Game_Jhwj().Pay(OrderNo));

                default:
                    return("不存在的游戏!");
                }
            }
            else
            {
                if (gus.UpdateUserMoney(o.UserName, o.PayMoney * 10, "+"))
                {
                    if (os.UpdateOrder(o.OrderNo))
                    {
                        return("充值成功!");
                    }
                    else
                    {
                        return("充值失败!错误原因:更新订单状态失败!");
                    }
                }
                else
                {
                    return("充值失败!");
                }
            }
        }
Пример #11
0
        /// <summary>
        /// 大清英雄传充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                                                                        //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                                                                             //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                                                                           //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString();                                                  //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                                                                     //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                                                                    //获取时间戳
                Sign   = DESEncrypt.Md5(gu.UserName + tstamp + OrderNo + PayGold + order.PayMoney + gs.QuFu + gc.PayTicket, 32); //获取验证参数
                string       PayUrl = "http://" + gc.PayCom + "?sid=" + gc.AgentId + "&gid=1&servid=" + gs.ServerNo + "&username="******"&rmb=" + order.PayMoney + "&orderid=" + OrderNo + "&paytime=" + tstamp + "&md5=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                                                                         //获取玩家查询信息
                if (gui.Message == "Success")                                                                                    //判断玩家是否存在
                {
                    if (order.State == 1)                                                                                        //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl);                                                      //获取充值结果
                        switch (PayResult)                                                                                       //对充值结果进行解析
                        {
                        case "0":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "-1":
                            return("充值失败!错误原因:用户不存在!");

                        case "-2":
                            return("充值失败!错误原因:无法提交重复订单!");

                        case "-3":
                            return("充值失败!错误原因:服务器不存在!");

                        case "-4":
                            return("充值失败!错误原因:服务器繁忙!");

                        case "-5":
                            return("充值失败!错误原因:没有权限!");

                        case "-6":
                            return("充值失败!错误原因:超过最大额度!");

                        case "-7":
                            return("充值失败!错误原因:验证失败!");

                        case "-8":
                            return("充值失败!错误原因:其它错误!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return("充值失败!角色不存在!");
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #12
0
        /// <summary>
        /// 绝代双骄充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order  = os.GetOrder(OrderNo);                                                                                                                                                                                                                     //获取用户的充值订单
            gu     = gus.GetGameUser(order.UserName);                                                                                                                                                                                                          //获取充值用户
            gs     = gss.GetGameServer(order.ServerId);                                                                                                                                                                                                        //获取用户要登录的服务器
            tstamp = DateTime.Now.ToString("yyyyMMddHHmmss");                                                                                                                                                                                                  //获取时间戳
            if (gus.IsGameUser(gu.UserName))                                                                                                                                                                                                                   //判断用户是否属于平台
            {
                string PayGold = (order.PayMoney * game.GameMoneyScale).ToString();                                                                                                                                                                            //计算支付的游戏币
                Sign = DESEncrypt.Md5("uid=" + gu.Id + "&uname=" + gu.UserName + "&serverid=" + gs.ServerNo + "&point=" + PayGold + "&amount=" + order.PayMoney + "&oid=" + OrderNo + "&time=" + tstamp + "&type=" + gc.AgentId + "&key=" + gc.PayTicket, 32); //获取验证参数
                string       PayUrl = "http://" + gc.PayCom + "?uid=" + gu.Id + "&uname=" + gu.UserName + "&serverid=" + gs.ServerNo + "&point=" + PayGold + "&amount=" + order.PayMoney + "&oid=" + OrderNo + "&time=" + tstamp + "&type=" + gc.AgentId + "&sign=" + Sign + "&format=xml";
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                                                                                                                                                                                                       //获取玩家查询信息
                if (gui.Message == "Success")                                                                                                                                                                                                                  //判断玩家是否存在
                {
                    if (order.State == 1)                                                                                                                                                                                                                      //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl);                                                                                                                                                                                    //获取充值返回结果
                        Dictionary <string, string> list = XmlHelper.ReadXml2(PayResult);                                                                                                                                                                      //解析返回结果
                        switch (list["status"])                                                                                                                                                                                                                //对充值结果进行解析
                        {
                        case "400":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值成功!错误原因:更新订单状态失败!");
                            }

                        case "401":
                            return("充值失败!错误原因:缺少用户!");

                        case "402":
                            return("充值失败!错误原因:缺少用户名!");

                        case "403":
                            return("充值失败!错误原因:缺少服务器!");

                        case "404":
                            return("充值失败!错误原因:缺少充值点数!");

                        case "405":
                            return("充值失败!错误原因:缺少充值金额!");

                        case "406":
                            return("充值失败!错误原因:缺少订单!");

                        case "407":
                            return("充值失败!错误原因:缺少充值时间!");

                        case "408":
                            return("充值失败!错误原因:缺少运营商!");

                        case "409":
                            return("充值失败!错误原因:验证!");

                        case "410":
                            return("充值失败!错误原因:非法访问IP!");

                        case "411":
                            return("充值失败!未知错误!验证失败!");

                        case "412":
                            return("充值失败!错误原因:用户角色不存在!");

                        case "413":
                            return("充值失败!错误原因:获取角色信息失败!");

                        case "414":
                            return("充值失败!错误原因:内部错误!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #13
0
        /// <summary>
        /// 仙侠傲世充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5(OrderNo + gu.UserName + PayGold + order.PayMoney + tstamp + DESEncrypt.Md5(gc.PayTicket, 32), 32);
                string       PayUrl = "http://" + gs.ServerNo + "." + gc.LoginCom + "/api/recharge.php?ordernum=" + OrderNo + "&account=" + gu.UserName + "&money=" + order.PayMoney + "&gold=" + PayGold + "&time=" + tstamp + "&flag=" + Sign + "&server_id=" + gs.ServerNo;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl); //获取充值结果
                        switch (PayResult)
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值成功!错误:更新订单状态失败!");
                            }

                        case "-1":
                            return("充值失败!错误原因:参数不完整!");

                        case "-2":
                            return("充值失败!错误原因:验证错误!");

                        case "-3":
                            return("充值失败!错误原因:非法访问Ip!");

                        case "-4":
                            return("充值失败!错误原因:请求超时!");

                        case "-5":
                            return("充值失败!错误原因:账号或角色不存在!");

                        case "-6":
                            return("充值失败!错误原因:无法提交重复订单!");

                        case "-7":
                            return("充值失败!错误原因:服务器账号不存在!");

                        case "-10":
                            return("充值失败!错误原因:充值失败!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!错误原因:用户不存在");
            }
        }
Пример #14
0
        /// <summary>
        /// 冒险契约充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5(gu.UserName + gc.AgentId + OrderNo + order.PayMoney + gc.PayTicket + tstamp + gs.ServerNo + "mxqy", 32);
                string       PayUrl = "http://" + gc.PayCom + "?game=mxqy&agent=" + gc.AgentId + "&user="******"&order=" + OrderNo + "&money=" + order.PayMoney + "&server=" + gs.ServerNo + "&time=" + tstamp + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl); //获取充值结果
                        switch (PayResult)
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "0":
                            return("充值失败!错误原因:参数不全!");

                        case "2":
                            return("充值失败!错误原因:不存在的合作方!");

                        case "3":
                            return("充值失败!错误原因:金额错误!");

                        case "4":
                            return("充值失败!错误原因:服务器不存在!");

                        case "5":
                            return("充值失败!错误原因:验证失败!");

                        case "6":
                            return("充值失败!错误原因:游戏不存在!");

                        case "7":
                            return("充值失败!错误原因:角色不存在!");

                        case "-7":
                            return("充值失败!错误原因:无法提交重复订单!");

                        case "-1":
                            return("充值失败!错误原因:非法访问的IP!");

                        case "-4":
                            return("充值失败!错误原因:未知错误!");

                        case "-102":
                            return("充值失败!错误原因:游戏无响应!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!错误原因:用户不存在");
            }
        }
Пример #15
0
        /// <summary>
        /// 九龙朝充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                                                                                                                                           //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                                                                                                                                                //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                                                                                                                                              //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString();                                                                                                                     //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                                                                                                                                        //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                                                                                                                                       //获取时间戳
                Sign   = DESEncrypt.Md5("sid=" + gs.ServerNo + "&uid=" + gu.UserName + "&oid=" + OrderNo + "&money=" + order.PayMoney + "&gold=" + PayGold + "&time=" + tstamp + gc.PayTicket, 32); //获取验证参数
                string       PayUrl = "http://" + gc.PayCom + "?sid=" + gs.ServerNo + "&uid=" + gu.UserName + "&oid=" + OrderNo + "&money=" + order.PayMoney + "&gold=" + PayGold + "&time=" + tstamp + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                                                                                                                                            //获取玩家查询信息
                if (gui.Message == "Success")                                                                                                                                                       //判断玩家是否存在
                {
                    if (order.State == 1)                                                                                                                                                           //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl);                                                                                                                         //获取充值结果
                        switch (PayResult)                                                                                                                                                          //对充值结果进行解析
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "-10":
                            return("充值失败!错误原因:服务器编号错误或者不存在!");

                        case "-11":
                            return("充值失败!错误原因:无效的玩家账号!");

                        case "-12":
                            return("充值失败!错误原因:无法提交重复订单!");

                        case "-14":
                            return("充值失败!错误原因:无效时间戳!");

                        case "-15":
                            return("充值失败!错误原因:充值金额错误!");

                        case "-16":
                            return("充值失败!错误原因:虚拟币数量错误!");

                        case "-17":
                            return("充值失败!错误原因:校验码错误!");

                        case "-18":
                            return("充值失败!错误原因:其他错误!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #16
0
        /// <summary>
        /// 古剑奇侠充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5(gc.PayTicket + OrderNo + gu.UserName + order.PayMoney + PayGold + tstamp, 32);
                string       PayUrl = "http://" + gs.ServerNo + "." + gc.PayCom + "?paynum=" + OrderNo + "&username="******"&paymoney=" + order.PayMoney + "&payticket=" + PayGold + "&time=" + tstamp + "&flag=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl); //获取充值结果
                        switch (PayResult)
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值成功!错误:更新订单状态失败!");
                            }

                        case "2":
                            return("充值失败!错误原因:非法访问Ip!");

                        case "3":
                            return("充值失败!错误原因:参数错误!");

                        case "4":
                            return("充值失败!错误原因:请求超时!");

                        case "5":
                            return("充值失败!错误原因:验证错误!");

                        case "6":
                            return("充值失败!错误原因:角色不存在!");

                        case "7":
                            return("充值失败!错误原因:无法提交重复订单!");

                        case "8":
                            return("充值失败!错误原因:数据录入失败!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!错误原因:用户不存在");
            }
        }
Пример #17
0
        /// <summary>
        /// 天界充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                           //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                                //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                              //获取用户要登录的服务器
            if (gus.IsGameUser(gu.UserName))                                        //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                       //获取时间戳
                string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币
                Auth = gc.AgentId + OrderNo.Substring(0, 19) + gu.UserName + "212" + gs.ServerNo + order.PayMoney + PayGold;
                Sign = DESEncrypt.Md5(Auth + gc.PayTicket, 32);                     //获取验证参数
                string       PayUrl = "http://" + gc.PayCom + "jointoppay/?pid=" + gc.AgentId + "&order_id=" + OrderNo.Substring(0, 19) + "&uid=" + gu.UserName + "&gid=" + "212" + "&sid=" + gs.ServerNo + "&order_amount=" + order.PayMoney + "&point=" + PayGold + "&money=" + order.PayMoney + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                            //获取玩家查询信息
                if (gui.Message == "Success")                                       //判断玩家是否存在
                {
                    if (order.State == 1)                                           //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl);         //获取充值返回结果
                        switch (PayResult)                                          //对充值结果进行解析
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "-10":
                            return("充值失败!无效服务器编号!");

                        case "-11":
                            return("充值失败!无效玩家帐号!");

                        case "-12":
                            return("充值失败!无法提交重复订单!");

                        case "-14":
                            return("充值失败!无效时间戳!");

                        case "-15":
                            return("充值失败!冲值金额错误!");

                        case "-16":
                            return("充值失败!充值元宝数错误!");

                        case "-17":
                            return("充值失败!校验码错误!");

                        case "-18":
                            return("充值失败!非法的访问IP!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return("角色不存在!");
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #18
0
        /// <summary>
        /// 武尊充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回订单结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                                                                                         //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                                                                                              //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                                                                                            //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString();                                                                   //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                                                                                      //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                                                                                     //获取时间戳
                Sign   = DESEncrypt.Md5("7" + gc.AgentId + gs.QuFu + gu.Id + gu.UserName + OrderNo + order.PayMoney + tstamp + gc.PayTicket, 32); //获取验证参数
                string       PayUrl = "http://" + gc.PayCom + "?orderid=" + OrderNo + "&partnerid=" + gc.AgentId + "&gameid=7&sid=" + gs.QuFu + "&userid=" + gu.Id + "&username="******"&actorid=&actorname=&money=" + order.PayMoney + "&time=" + tstamp + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                                                                                          //获取玩家查询信息
                if (gui.Message == "Success")                                                                                                     //判断玩家是否存在
                {
                    if (order.State == 1)                                                                                                         //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl);                                                                       //获取充值结果
                        switch (PayResult)                                                                                                        //对充值结果进行解析
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "2":
                            return("充值失败!错误原因:缺少参数!");

                        case "3":
                            return("充值失败!错误原因:验证失败!");

                        case "4":
                            return("充值失败!错误原因:非法的访问IP!");

                        case "5":
                            return("充值失败!错误原因:合作方不存在!");

                        case "6":
                            return("充值失败!错误原因:充值的游戏不存在!");

                        case "7":
                            return("充值失败!错误原因:游戏未登记!");

                        case "8":
                            return("充值失败!错误原因:游戏服务器未登记!");

                        case "9":
                            return("充值失败!错误原因:合作商未开启!");

                        case "10":
                            return("充值失败!错误原因:游戏未开启!");

                        case "11":
                            return("充值失败!错误原因:游戏服务器未开启!");

                        case "12":
                            return("充值失败!错误原因:充值金额不对!");

                        case "13":
                            return("充值失败!错误原因:游戏币金额不对!");

                        case "14":
                            return("充值失败!错误原因:游戏未创建!");

                        case "15":
                            return("充值失败!错误原因:请求超时!");

                        case "-1":
                            return("充值失败!错误原因:玩家角色不存在!");

                        case "-2":
                            return("充值失败!错误原因:无法提交重复的订单号!");

                        case "-3":
                            return("充值失败!错误原因:游戏签名失败!");

                        case "-4":
                            return("充值失败!错误原因:游戏非法的访问IP!");

                        case "-5":
                            return("充值失败!错误原因:游戏缺少参数!");

                        case "-6":
                            return("充值失败!错误原因:充值失败!");

                        case "-7":
                            return("充值失败!错误原因:充值异常!");

                        case "-8":
                            return("充值失败!错误原因:游戏请求超时!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #19
0
        /// <summary>
        /// 大将军充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                                                                      //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                                                                           //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                                                                         //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString();                                                //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                                                                   //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                                                                  //获取时间戳
                string url = string.Format("op_id={0}&sid={1}&game_id={2}&account={3}&order_id={4}&game_money={5}&u_money={6}&time={7}",
                                           gc.AgentId, gs.ServerNo, 7, gu.UserName, OrderNo, PayGold, order.PayMoney, tstamp); //获取验证字符串
                Base64Protector bp = new Base64Protector();
                Auth = bp.Base64Code(url);                                                                                     //获取验证码
                Sign = DESEncrypt.Md5(Auth + gc.PayTicket, 32);                                                                //获取验证参数
                string       PayUrl = "http://" + gc.PayCom + "?auth=" + Auth + "&verify=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                                                                       //获取玩家查询信息
                if (gui.Message == "Success")                                                                                  //判断玩家是否存在
                {
                    if (order.State == 1)                                                                                      //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl);                                                    //获取充值结果
                        PayResult = PayResult.Substring(0, PayResult.IndexOf('}'));                                            //处理充值结果
                        PayResult = PayResult.Replace(PayResult.Substring(0, PayResult.LastIndexOf('{') + 1), "");
                        switch (PayResult.Substring(9))                                                                        //对充值结果进行解析
                        {
                        case "0":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "1":
                            return("充值失败!错误原因:商家错误或者不存在!");

                        case "2":
                            return("充值失败!错误原因:服务器不存在!");

                        case "3":
                            return("充值失败!错误原因:游戏不存在!");

                        case "4":
                            return("充值失败!错误原因:无效时间戳!");

                        case "5":
                            return("充值失败!错误原因:检验码错误!");

                        case "6":
                            return("充值失败!错误原因:缺少参数!");

                        case "7":
                            return("充值失败!错误原因:订单号不存在!");

                        case "8":
                            return("充值失败!错误原因:角色不存在!");

                        case "9":
                            return("充值失败!错误原因:排行榜类型不存在!");

                        case "10":
                            return("充值失败!错误原因:方法名字错误!");

                        case "11":
                            return("充值失败!错误原因:非法IP!");

                        case "12":
                            return("充值失败!错误原因:充值金额不对!");

                        case "13":
                            return("充值失败!错误原因:游戏币金额不对!");

                        case "14":
                            return("充值失败!错误原因:游戏币和游戏币币比列不对!");

                        case "100":
                            return("充值失败!未知原因");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return("充值失败!角色不存在!");
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #20
0
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                                             //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                                                  //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                                                //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString();                       //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                                          //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                                         //获取时间戳
                Sign   = DESEncrypt.Md5(OrderNo + gu.UserName + PayGold + tstamp + gc.PayTicket, 32); //获取验证参数
                string       PayUrl = "http://" + gs.ServerNo + "." + gc.PayCom + "?p=" + OrderNo + "|" + gu.UserName + "|" + PayGold + "|" + tstamp + "|" + Sign + "|" + order.PayMoney + "|" + gs.ServerNo;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                                              //获取玩家查询信息
                if (gui.Message == "Success")                                                         //判断玩家是否存在
                {
                    if (order.State == 1)                                                             //判断订单状态是否为支付状态
                    {
                        string      PayResult = Utils.GetWebPageContent(PayUrl);                      //获取充值结果
                        XmlDocument MyXml     = new XmlDocument();
                        MyXml.LoadXml(PayResult);
                        XmlNode ShowList = MyXml.DocumentElement;
                        switch (ShowList.InnerText)                             //对充值结果进行解析
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值成功!发生错误:更新订单状态失败!");
                            }

                        case "2":
                            return("充值失败!错误原因:无法提交重复订单!");

                        case "-1":
                            return("充值失败!错误原因:参数不正确!");

                        case "-2":
                            return("充值失败!错误原因:验证失败!");

                        case "-3":
                            return("充值失败!错误原因:用户不存在!");

                        case "-4":
                            return("充值失败!错误原因:请求超时!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return("充值失败!角色不存在!");
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }
Пример #21
0
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5(("amount=" + order.PayMoney + "&gid=221&money=" + order.PayMoney + "&oid=" + OrderNo + "&pid=" + gc.AgentId + "&point=" + PayGold + "&sid=" + gs.QuFu + "&uid=" + gu.UserName + "&utime=" + tstamp).ToUpper() + gc.PayTicket, 32);
                string       PayUrl = "http://" + gc.PayCom + "?pid=" + gc.AgentId + "&gid=221&sid=" + gs.QuFu + "&uid=" + gu.UserName + "&point=" + PayGold + "&amount=" + order.PayMoney + "&money=" + order.PayMoney + "&oid=" + OrderNo + "&utime=" + tstamp + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        try
                        {
                            string PayResult = Utils.GetWebPageContent(PayUrl);         //获取充值结果
                            switch (PayResult)
                            {
                            case "1":
                                if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                                {
                                    gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                    return("充值成功!");
                                }
                                else
                                {
                                    return("充值成功!发生错误:更新订单状态失败!");
                                }

                            case "11":
                                return("充值失败!错误原因:金额错误!");

                            case "2006209":
                                return("充值失败!错误原因:参数错误!");

                            case "13":
                                return("充值失败!错误原因:请求方式错误!");

                            case "17":
                                return("充值失败!错误原因:验证失败!");

                            case "10":
                                return("充值失败!错误原因:充值服务器不存在!");

                            case "14":
                                return("充值失败!错误原因:请求超时!");

                            case "18":
                                return("充值失败!错误原因:非法请求的IP!");

                            case "19":
                                return("充值失败!错误原因:充值游戏不存在!");

                            case "20":
                                return("充值失败!错误原因:充值比例错误!");

                            case "-10":
                                return("充值失败!错误原因:无效的服务器!");

                            case "-11":
                                return("充值失败!错误原因:无效的玩家帐号!");

                            case "12":
                            case "-12":
                                return("充值失败!错误原因:无法提交重复订单!");

                            case "-14":
                                return("充值失败!错误原因:无效的时间!");

                            case "-15":
                                return("充值失败!错误原因:充值金额错误!");

                            case "-17":
                                return("充值失败!错误原因:无效的时间!");

                            case "-18":
                                return("充值失败!错误原因:验证失败!");

                            default:
                                return("充值失败!未知错误!");
                            }
                        }
                        catch (Exception)
                        {
                            return("充值失败!错误原因:充值失败!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!错误原因:用户不存在");
            }
        }
Пример #22
0
        /// <summary>
        /// 楚汉传奇充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5("from=" + gc.AgentId + "game=chuhan" + "server=" + gs.ServerNo + "user_id=" + gu.UserName + "amount=" + order.PayMoney * 100 + "order_number=" + OrderNo + "t=" + tstamp + "transfer_secret_signature=" + gc.PayTicket, 32);
                string       PayUrl = "http://" + gc.PayCom + "?from=" + gc.AgentId + "&game=chuhan&server=" + gs.ServerNo + "&user_id=" + gu.UserName + "&amount=" + order.PayMoney * 100 + "&order_number=" + OrderNo + "&t=" + tstamp + "&signature=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        try
                        {
                            string PayResult = Utils.GetWebPageContent(PayUrl);         //获取充值结果
                            PayResult = PayResult.Substring(0, PayResult.IndexOf('}')); //处理充值结果
                            PayResult = PayResult.Replace(PayResult.Substring(0, PayResult.LastIndexOf('{') + 1), "");
                            string[] b = PayResult.Split(',');
                            if (b[2] == "\"status\":1")
                            {
                                if (os.UpdateOrder(order.OrderNo))                    //更新订单状态为已完成
                                {
                                    gus.UpdateGameMoney(gu.UserName, order.PayMoney); //跟新玩家游戏消费情况
                                    return("充值成功!");
                                }
                                else
                                {
                                    return("充值失败!错误原因:更新订单状态失败!");
                                }
                            }
                            else
                            {
                                switch (b[0])
                                {
                                case "\"status\":1":

                                case "\"status\":-6":
                                    return("充值失败!错误原因:充值失败!");

                                case "\"status\":-93":
                                    return("充值失败!错误原因:签名错误!");

                                default:
                                    return("充值失败!未知错误!");
                                }
                            }
                        }
                        catch (Exception)
                        {
                            return("充值失败!错误原因:充值失败!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!错误原因:用户不存在");
            }
        }
Пример #23
0
        /// <summary>
        /// 最无极充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                GameUserInfo gui = Sel(gu.Id, gs.Id);                           //获取玩家查询信息
                Sign = DESEncrypt.Md5(OrderNo + gu.Id + gs.QuFu + PayGold + order.PayMoney + tstamp + gc.PayTicket, 32);
                string PayUrl = "http://" + gc.PayCom + "?server_id=" + gs.QuFu + "&order_id=" + OrderNo + "&user_id=" + gu.Id + "&coin=" + PayGold + "&money=" + order.PayMoney + "&time=" + tstamp + "&sign=" + Sign + "&role_id=" + gui.Id;
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        try
                        {
                            string PayResult = Utils.GetWebPageContent(PayUrl);         //获取充值结果
                            Dictionary <string, string> PRE = Json.JsonToArray(PayResult);
                            switch (PRE["code"])
                            {
                            case "1":
                                if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                                {
                                    gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                    return("充值成功!");
                                }
                                else
                                {
                                    return("充值失败!错误原因:更新订单状态失败!");
                                }

                            case "-1":
                                return("充值失败!错误原因:充值失败!");

                            case "-2":
                                return("充值失败!错误原因:用户不存在!");

                            case "-3":
                                return("充值失败!错误原因:IP限制!");

                            case "-4":
                                return("充值失败!错误原因:验证失败!");

                            case "-5":
                                return("充值失败!错误原因:无法提交重复订单!");

                            case "-6":
                                return("充值失败!错误原因:请求超时!");

                            case "-7":
                                return("充值失败!错误原因:服务器繁忙!");

                            case "-8":
                                return("充值失败!错误原因:参数错误!");

                            default:
                                return("充值失败!未知错误!");
                            }
                        }
                        catch (Exception ex)
                        {
                            return("充值失败!错误原因:" + ex.Message);
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!错误原因:用户不存在");
            }
        }
Пример #24
0
        /// <summary>
        /// 太古遮天充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5(OrderNo + gu.UserName + PayGold + tstamp + gc.PayTicket + gc.AgentId + gs.QuFu + order.PayMoney, 32);
                string       PayUrl = "http://" + gc.PayCom + "/api/v1/mc/pay.php?order=" + OrderNo + "&username="******"&money=" + order.PayMoney + "&gold=" + PayGold + "&time=" + tstamp + "&flag=" + Sign + "&server=" + gs.QuFu + "&agentName=" + gc.AgentId + "&moneyType=1";
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        try
                        {
                            string PayResult = Utils.GetWebPageContent(PayUrl);         //获取充值结果
                            switch (PayResult)
                            {
                            case "1":
                                if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                                {
                                    gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                    return("充值成功!");
                                }
                                else
                                {
                                    return("充值失败!错误原因:更新订单状态失败!");
                                }

                            case "2":
                                return("充值失败!错误原因:该订单已提交,请勿重复提交!");

                            case "-1":
                                return("充值失败!错误原因:参数错误!");

                            case "-2":
                                return("充值失败!错误原因:验证失败!");

                            case "-3":
                                return("充值失败!错误原因:账号不存在!");

                            case "-4":
                                return("充值失败!错误原因:请求超时!");

                            case "-5":
                                return("充值失败!错误原因:非法访问IP!");

                            case "-6":
                                return("充值失败!错误原因:其他未知错误!");

                            default:
                                return("充值失败!未知错误!");
                            }
                        }
                        catch (Exception)
                        {
                            return("充值失败!错误原因:充值失败!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!错误原因:用户不存在");
            }
        }
Пример #25
0
        /// <summary>
        /// 烈焰充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5("ly" + gc.AgentId + gs.ServerNo + gu.UserName + OrderNo + order.PayMoney + PayGold + tstamp + gc.PayTicket, 32).ToUpper();
                string       PayUrl = "http://" + gc.PayCom + "?game=ly&agent=" + gc.AgentId + "&user="******"&order=" + OrderNo + "&money=" + order.PayMoney + "&coin=" + PayGold + "&server=" + gs.ServerNo + "&time=" + tstamp + "&sign=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl); //获取充值结果
                        switch (PayResult)                                  //对充值结果进行解析
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                      //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney);   //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "0":
                            return("充值失败!参数不正确!");

                        case "2":
                            return("充值失败!合作方不存在!");

                        case "3":
                            return("充值失败!金额有误!");

                        case "4":
                            return("充值失败!不存在的服务器!");

                        case "5":
                            return("充值失败!验证失败!");

                        case "6":
                            return("充值失败!充值游戏不存在!");

                        case "7":
                            return("充值失败!玩家角色不存在!");

                        case "8":
                            return("充值失败!时间超时(大于5分钟)!");

                        case "9":
                            return("充值失败!请求过于频繁!");

                        case "-7":
                            return("充值失败!无法提交相同订单!");

                        case "-1":
                            return("充值失败!非法的访问IP!");

                        case "-4":
                            return("充值失败!验证失败!");

                        case "-102":
                            return("充值失败!充值异常,游戏方无响应!");

                        case "-103":
                            return("充值失败!充值异常,充值接口异常!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return("充值失败!错误原因:不存在角色!");
                }
            }
            else
            {
                return("充值失败!错误原因:用户不存在");
            }
        }
Пример #26
0
        /// <summary>
        /// 斗破乾坤充值接口
        /// </summary>
        /// <param name="OrderNo">订单号</param>
        /// <returns>返回充值结果</returns>
        public string Pay(string OrderNo)
        {
            order = os.GetOrder(OrderNo);                                       //获取用户的充值订单
            gu    = gus.GetGameUser(order.UserName);                            //获取充值用户
            gs    = gss.GetGameServer(order.ServerId);                          //获取用户要充值的服务器
            string PayGold = (order.PayMoney * game.GameMoneyScale).ToString(); //计算支付的游戏币

            if (gus.IsGameUser(gu.UserName))                                    //判断用户是否属于平台
            {
                tstamp = Utils.GetTimeSpan();                                   //获取时间戳
                Sign   = DESEncrypt.Md5("account=" + gu.UserName + "&agent=" + gc.AgentId + "&amount=" + PayGold + "&order=" + OrderNo + "&price=" + order.PayMoney + "&serverid=" + gs.ServerNo + "&time=" + tstamp + "&" + gc.PayTicket, 32);
                string       PayUrl = "http://" + gs.ServerNo + "." + gc.PayCom + "?account=" + gu.UserName + "&agent=" + gc.AgentId + "&amount=" + PayGold + "&order=" + OrderNo + "&price=" + order.PayMoney + "&serverid=" + gs.ServerNo + "&time=" + tstamp + "&token=" + Sign;
                GameUserInfo gui    = Sel(gu.Id, gs.Id);                    //获取玩家查询信息
                if (gui.Message == "Success")                               //判断玩家是否存在
                {
                    if (order.State == 1)                                   //判断订单状态是否为支付状态
                    {
                        string PayResult = Utils.GetWebPageContent(PayUrl); //获取充值结果
                        switch (PayResult)                                  //对充值结果进行解析
                        {
                        case "1":
                            if (os.UpdateOrder(order.OrderNo))                    //更新订单状态为已完成
                            {
                                gus.UpdateGameMoney(gu.UserName, order.PayMoney); //跟新玩家游戏消费情况
                                return("充值成功!");
                            }
                            else
                            {
                                return("充值失败!错误原因:更新订单状态失败!");
                            }

                        case "-102":
                            return("充值失败!验证参数错误!");

                        case "-201":
                            return("充值失败!角色不存在!");

                        case "-207":
                            return("充值失败!账号不存在!");

                        case "-300":
                            return("充值失败!金额有误!");

                        case "-301":
                            return("充值失败!无效订单!");

                        case "-302":
                            return("充值失败!无非提交重复订单!");

                        case "-303":
                            return("充值失败!充值接口已关闭!");

                        case "-304":
                            return("充值失败!IP限制!");

                        default:
                            return("充值失败!未知错误!");
                        }
                    }
                    else
                    {
                        return("充值失败!错误原因:无法提交未支付订单!");
                    }
                }
                else
                {
                    return(gui.Message);
                }
            }
            else
            {
                return("充值失败!用户不存在!");
            }
        }