Exemple #1
0
 private void InitRecord()
 {
     Cursor.Current = Cursors.WaitCursor;
     transactionTypeBindingSource.DataSource = TransactionTypeManager.GetAll();
     userLevelBindingSource.DataSource       = UserLevelManager.GetAll();
     Cursor.Current = Cursors.Default;
 }
Exemple #2
0
        public AddTransactionType()
        {
            string error = "";

            WithTitle("Add Transaction Type");
            AddSection()
            .WithTitle("Transaction Type Information")
            .IsCollapsible()
            .WithFields(new List <IField>()
            {
                Map(x => x.Name)
                .AsSectionField <TextBox>()
                .Required()
                .WithLength(15),
                Map(x => x.Code)
                .AsSectionField <TextBox>()
                .Required()
                .TextFormatIs(TextFormat.numeric)
                .WithLength(15),
                Map(x => x.Description)
                .AsSectionField <TextBox>()
                .Required()
            });

            AddButton().WithText("Save")
            .SubmitTo(trnx =>
            {
                try
                {
                    var result = new TransactionTypeManager().AddTransactionType(trnx);
                }
                catch (Exception ex)
                {
                    while (ex.InnerException != null)
                    {
                        ex = ex.InnerException;
                    }
                    error = ex.Message;
                    throw;
                }
                return(true);
            })
            .OnSuccessDisplay("Successfully Saved")
            .OnFailureDisplay(string.Format("Sorry!!! Transaction Type Not Saved{0}", error))
            .CssClassIs("btn btn-default");
        }
Exemple #3
0
        private void transactionTypeDataGridView_RowLeave(object sender, DataGridViewCellEventArgs e)
        {
            if (transactionTypeBindingSource == null)
            {
                return;
            }
            if (transactionTypeDataGridView.Rows.Count <= 1)
            {
                return;
            }
            if (!transactionTypeDataGridView.IsCurrentRowDirty)
            {
                return;
            }
            Validate();
            transactionTypeBindingSource.EndEdit();
            var iResult = TransactionTypeManager.Save((TransactionType)transactionTypeBindingSource.Current);

            toolStripStatusLabel1.Text = iResult > 0 ? @"Transation Type was saved successfully." : @"Error occurred when saving Transaction Type.";
        }
Exemple #4
0
 private void DeleteTransactionType()
 {
     if (transactionTypeBindingSource != null)
     {
         var dResult = MessageBox.Show(@"Delete current record?", @"Delete", MessageBoxButtons.YesNo,
                                       MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
         if (dResult == DialogResult.Yes)
         {
             if (TransactionTypeManager.Delete(((TransactionType)transactionTypeBindingSource.Current)))
             {
                 MessageBox.Show(@"Record was deleted successfully.", @"Delete", MessageBoxButtons.OK,
                                 MessageBoxIcon.Information);
                 transactionTypeBindingSource.RemoveCurrent();
             }
             else
             {
                 MessageBox.Show(@"Error on delete operation.", @"Delete", MessageBoxButtons.OK,
                                 MessageBoxIcon.Error);
                 transactionTypeDataGridView.Focus();
             }
         }
     }
 }
        public Iso8583Message ValidateMessage(Iso8583Message originalMessage, int sourceID)
        {
            Logger.Log("\n Enter Validator");
            //get source Node.
            SourceNode sourceNode = new SourceNodeManager().GetByID(sourceID);

            DateTime transmissionDate = DateTime.UtcNow;
            //format TransactionDate
            string transactionDate = string.Format("{0}{1}",
                                                   string.Format("{0:00}{1:00}", transmissionDate.Month, transmissionDate.Day),
                                                   string.Format("{0:00}{1:00}{2:00}", transmissionDate.Hour,
                                                                 transmissionDate.Minute, transmissionDate.Second));

            //set Original Data Element
            string originalDataElement = string.Format("{0}{1}{2}", originalMessage.MessageTypeIdentifier.ToString(), originalMessage.Fields[11].ToString(), transactionDate);

            //add original data element to original message
            originalMessage.Fields.Add(90, originalDataElement);

            //Do Message Log
            Logger.LogTransaction(originalMessage, sourceNode);

            //  Check if it is reversal message and do the needful
            if (originalMessage.MessageTypeIdentifier == 421)
            {
                Logger.Log("\n This is a reversal");
                bool           conReversal;
                Iso8583Message reversalIsoMsg = GetReversalMessage(originalMessage, out conReversal);
                if (!conReversal)
                {
                    Logger.LogTransaction(reversalIsoMsg);
                    return(reversalIsoMsg);
                }
                originalMessage = reversalIsoMsg;
                Logger.LogTransaction(originalMessage, sourceNode);
            }

            string theCardPan           = originalMessage.Fields[2].Value.ToString();
            string tranasactionTypeCode = originalMessage.Fields[3].Value.ToString().Substring(0, 2);
            double amount    = Convert.ToDouble(originalMessage.Fields[4].Value);
            string orgExpiry = originalMessage.Fields[14].Value.ToString();


            string code = originalMessage.Fields[123].ToString().Substring(13, 2);

            Channel channel = new ChannelManager().GetByCode(code);
            Fee     fee     = null;
            // string cardPAN = theCardPan.Substring(0, 6);
            Route           theRoute        = new RouteManager().GetRouteByCardPan(theCardPan.Substring(0, 6));
            TransactionType transactionType = new TransactionTypeManager().GetByCode(tranasactionTypeCode);
            Iso8583Message  responseMessage;


            //check if card has expired
            DateTime cardExpiryDate = ParseExpiryDate(orgExpiry);

            if (cardExpiryDate < DateTime.Now)
            {
                responseMessage = SetReponseMessage(originalMessage, "54");        //Expired card
                Logger.LogTransaction(responseMessage, sourceNode);
                return(responseMessage);
            }

            if (amount <= 0 && tranasactionTypeCode != "31")
            {
                responseMessage = SetReponseMessage(originalMessage, "13");        //Invalid amount
                Logger.LogTransaction(responseMessage, sourceNode);
                return(responseMessage);
            }

            if (theRoute == null)
            {
                Logger.Log("Sink node is null.");
                responseMessage = SetReponseMessage(originalMessage, "15");        //No such issuer
                Logger.LogTransaction(responseMessage, sourceNode);
                return(responseMessage);
            }
            SinkNode sinkNode = theRoute.SinkNode;

            if (sinkNode == null)
            {
                Logger.Log("Sink node is null.");
                responseMessage = SetReponseMessage(originalMessage, "91"); //Issuer inoperative
                Logger.LogTransaction(responseMessage, sourceNode);
                return(responseMessage);
            }


            Logger.Log("Loading SourceNode Schemes");

            var    theSchemes = sourceNode.Schemes;
            Scheme scheme     = null;

            try
            {
                scheme = theSchemes.Where(x => x.Route.CardPAN == theCardPan.Substring(0, 6)).SingleOrDefault();
            }
            catch (Exception ex)
            {
                Logger.Log("Error: \n" + ex.Message);
                responseMessage = SetReponseMessage(originalMessage, "31"); // Lazy load error : Set correct response code later
                Logger.LogTransaction(responseMessage, sourceNode);
                return(responseMessage);
            }

            if (scheme == null)
            {
                responseMessage = SetReponseMessage(originalMessage, "92"); // Route not allowed : Set correct response code later
                Logger.LogTransaction(responseMessage, sourceNode);
                return(responseMessage);
            }

            // int panCount = sourceNode.Schemes.Count(x => x.Route == theRoute);
            Logger.Log("Scheme : " + scheme.Name + " Loaded");

            Logger.Log("Getting fee:");
            fee = GetFeeIfTransactionIsAllowed(transactionType, channel, scheme);
            if (fee == null)
            {
                responseMessage = SetReponseMessage(originalMessage, "58"); // Transaction type not allowed in this scheme
                Logger.LogTransaction(responseMessage, sourceNode, scheme);
                return(responseMessage);
            }
            else
            {
                originalMessage = SetFee(originalMessage, CalculateFee(fee, amount));
            }
            bool needReversal = false;

            Iso8583Message msgFromFEP = ToFEP(originalMessage, sinkNode, out needReversal);

            Logger.LogTransaction(msgFromFEP, sourceNode, scheme, fee, needReversal);


            return(msgFromFEP);
        }
Exemple #6
0
        public static void LogTransaction(Iso8583Message incomingMessage, SourceNode sourceNode = null, Scheme scheme = null, Fee fee = null, bool needReversal = false)
        {
            var      instCode            = incomingMessage.Fields[2].ToString().Substring(0, 6);
            string   transactionTypeCode = (incomingMessage.Fields[3].ToString().Substring(0, 2));
            string   channelCode         = incomingMessage.Fields[123].ToString().Substring(13, 2);
            string   cardPan             = incomingMessage.Fields[2].ToString();
            string   response            = string.Empty;
            string   responseCode        = string.Empty;
            DateTime transmissionDate    = DateTime.UtcNow;

            TransactionLog transactionLog = new TransactionLog();

            try
            {
                transactionLog.MTI     = incomingMessage.MessageTypeIdentifier.ToString();
                transactionLog.STAN    = incomingMessage.Fields[11].ToString();
                transactionLog.Amount  = Convert.ToDouble(incomingMessage.Fields[4].ToString());
                transactionLog.CardPAN = cardPan;
                var channel = new ChannelManager().GetByCode(channelCode);
                if (channel != null)
                {
                    transactionLog.Channel = channel.Name;
                }
                var trnx = new TransactionTypeManager().GetByCode(transactionTypeCode);
                if (trnx != null)
                {
                    transactionLog.TransactionType = trnx.Name;
                }
                transactionLog.SourceNode      = sourceNode.Name;
                transactionLog.TransactionDate = transmissionDate;
                transactionLog.DateCreated     = DateTime.Now;
                transactionLog.DateModified    = DateTime.Now;

                string orDataElt = incomingMessage.Fields[90].ToString();
                int    length    = orDataElt.Length;
                transactionLog.OriginalDataElement = orDataElt.Length > 19 ? orDataElt.Remove(0, (length - 19)) : orDataElt;

                try
                {
                    responseCode = incomingMessage.Fields[39].Value.ToString();
                }
                catch (Exception) { }


                if (scheme != null)
                {
                    transactionLog.Scheme = scheme.Name;
                    transactionLog.Route  = scheme.Route.Name;

                    transactionLog.SinkNode = scheme.Route.SinkNode.Name;
                }

                try
                {
                    string  value  = incomingMessage.Fields[28].Value.ToString();
                    decimal result = 0;
                    if (Decimal.TryParse(value, out result))
                    {
                        transactionLog.Charge = result;
                    }
                }
                catch (Exception) { }
                if (fee != null)
                {
                    transactionLog.Fee = fee.Name;
                }
                if (responseCode != null)
                {
                    transactionLog.ResponseCode = responseCode;
                }
                if (responseCode != null)
                {
                    transactionLog.ResponseDescription = MessageDefinition.GetResponseDescription(responseCode);
                }
                string acc1 = incomingMessage.Fields[102].Value.ToString();
                string acc2 = incomingMessage.Fields[103].Value.ToString();
                transactionLog.Account1         = acc1;
                transactionLog.Account2         = acc2;
                transactionLog.IsReversePending = needReversal;

                if (incomingMessage.MessageTypeIdentifier.ToString() == "430" && responseCode == "00")
                {
                    transactionLog.IsReversed = true;
                    // SetReversalStatus(incomingMsg, responseCode);  //here
                }

                if (new TransactionLogManager().AddTransactionLog(transactionLog))
                {
                    Log("Transaction log::: " + transactionLog.STAN + " " + transactionLog.TransactionDate);
                }
                else
                {
                    Log("Transaction log::: not successful");
                }
            }
            catch (Exception ex)
            {
                Log("Error occurred while logging transaction \n" + ex.Message);
                Console.ForegroundColor = ConsoleColor.Red;
            }
        }
        static void Main(string[] args)
        {
            Console.WriteLine("恒朋上海接口测试开始。。。。\n");

            AccountNumber accountN = new AccountNumber();
            Console.WriteLine("请输入代理商账号:");
            accountN.UserName = "******";//Console.ReadLine();
            Console.WriteLine("请输入代理商密码:");
            accountN.UserPassword = "******";//Console.ReadLine();
            Console.WriteLine("你输入的代理商账号为:" + accountN.UserName + "    密码为:" + accountN.UserPassword + "\n");

            IIssueQueryGateway gateway = GatewayFactroy.CreateIssueQueryGatewayFactory(LotteryType.ShangHaiWelfareLottery);
            Console.WriteLine("投注/查询网关地址:" + gateway.GatewayUrl + "\n");
            #region 奖期查询
            TransactionTypeManager transTypeM = new TransactionTypeManager(LotteryType.ShangHaiWelfareLottery);
            TransactionType transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "102");

            ////奖期查询测试
            //Console.WriteLine("奖期查询开始。。。。");
            Issue issue=new Issue();
            PlayMethodManager pleyMethodM = new PlayMethodManager(LotteryType.ShangHaiWelfareLottery);
            //Console.WriteLine("请输入玩法名称(如:双色球、15选5、3D、七乐彩、6+1、天天彩4、时时乐):");
            //issue.PlayMethodInfo=pleyMethodM.GetMethodType(LotteryType.ShangHaiWelfareLottery,Console.ReadLine());
            //Console.WriteLine("请输入期号:");
            //issue.Number=Console.ReadLine();

            //Console.WriteLine("你要进行的奖期查询玩法为:" + issue.PlayMethodInfo.PlayName + "    玩法编号为:" +issue.PlayMethodInfo.GameName + "    奖期为:" + issue.Number);

            //try
            //{
            //    string result = gateway.IssueQuery(accountN, transType, issue);
            //    Console.WriteLine("奖期查询结果:\n" + result);
            //}
            //catch (Exception ex)
            //{
            //    Console.WriteLine("奖期查询结果:\n    错误:" + ex.Message);
            //}

            //Console.WriteLine("奖期查询结束。。。。\n");
            #endregion

            #region 投注
            //投注测试
            Console.WriteLine("投注开始(本测试会携带相同的两张彩票(票号不同))。。。。");
            transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "103");
            Console.WriteLine("构建彩票信息开始。。。。");
            List<Ticket> tickets = new List<Ticket>();
            Ticket ticketOne = new Ticket();
            ticketOne.TicketId = accountN.UserName + DateTime.Now.ToString("yyyyMMdd") + PostManager.EightSerialNumber;
            ticketOne.IssueInfo = new Issue();
            Console.WriteLine("请输入玩法名称(如:双色球、15选5、3D、七乐彩、6+1、天天彩4、时时乐):");
            string gameName = "ssl";// Console.ReadLine();
            ticketOne.PlayTypeInfo = pleyMethodM.GetMethodType(LotteryType.ShangHaiWelfareLottery, gameName).PlayTypes[0];
            ticketOne.IssueInfo.PlayMethodInfo = pleyMethodM.GetMethodType(LotteryType.ShangHaiWelfareLottery, gameName);
            Console.WriteLine("请输入期号:");
            ticketOne.IssueInfo.Number = Console.ReadLine();
            Console.WriteLine("倍投数:");
            ticketOne.Amount = "1";// Console.ReadLine();
            Console.WriteLine("购买金额:");
            ticketOne.Money = "2";//Console.ReadLine();
            Console.WriteLine("要投注的彩票号码(测试时,每张彩票一注):");
            ticketOne.AnteCodes = Console.ReadLine();

            UserProfile user = new UserProfile();
            Console.WriteLine("彩票用户名:");
            user.UserName = "******";// Console.ReadLine();
            Console.WriteLine("用户证件类型(1、身份证;2、军官证;3、护照):");
            string cardType = "1";// Console.ReadLine();
            if (cardType == "1" || cardType == "2" || cardType == "3")
            {
                user.CardTypeInfo = (CardType)int.Parse(cardType);
                Console.WriteLine("证件号码:");
                user.CardNumber = "510212198105057410"; //Console.ReadLine();
                Console.WriteLine("用户邮箱地址:");
                user.Mail = "*****@*****.**";// Console.ReadLine();
                Console.WriteLine("用户手机号(无纸化彩票中大奖的凭证之一):");
                user.Mobile = "15902307117"; // Console.ReadLine();
                Console.WriteLine("用户真实姓名:");
                user.RealName = "钟家宇";// Console.ReadLine();
                Console.WriteLine("你输入的彩票用户信息为:  证件类型:" + (int)user.CardTypeInfo + "  证件号码:" + user.CardNumber + "  邮箱:" + user.Mail + "  手机号:" + user.Mobile + "  真实姓名:" + user.RealName);

                ticketOne.UserProfile = user;
                tickets.Add(ticketOne);
                ticketOne.TicketId = accountN.UserName + DateTime.Now.ToString("yyyyMMdd") + PostManager.TenSerialNumber;
                tickets.Add(ticketOne);

                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "103");
                try
                {
                    string result = gateway.LotteryRequest(accountN, transType, tickets);
                    Console.WriteLine("投注结果:");
                    Console.WriteLine(result);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("投注结果:\n    错误:" + ex.Message);
                }
            }
            else
            {
                Console.WriteLine("构建彩票用户错误:用户证件类型不正确");
            }
            Console.WriteLine("投注结束。。。。\n");
            #endregion

            #region 票查询
            Console.WriteLine("票查询开始(如果上面的投注成功,直接查询投票的彩票,否则请输入彩票号)。。。。");
            Console.WriteLine("上面的投注是否成功?(1、成功;2、失败):");

            try
            {
                Ticket ticketP = null;
                if (Console.ReadLine() == "2")
                {
                    Console.WriteLine("请输入要查询的票号:");
                    ticketP = new Ticket();
                    ticketP.TicketId = Console.ReadLine();
                }
                else
                    ticketP = tickets[0];

                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "105");
                List<Ticket> ticketsP = new List<Ticket>();
                ticketsP.Add(ticketP);

                string result = gateway.TicketQuery(accountN, transType, ticketsP);
                Console.WriteLine("票查询结果:");
                Console.WriteLine(result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("票查询结果:\n    错误:" + ex.Message);
            }
            Console.WriteLine("票查询结束。。。。\n");
            #endregion

            #region 销量查询
            Console.WriteLine("销量查询开始。。。。");
            Console.WriteLine("请输入玩法名称(如:双色球、15选5、3D、七乐彩、6+1、天天彩4、时时乐):");
            issue.PlayMethodInfo = pleyMethodM.GetMethodType(LotteryType.ShangHaiWelfareLottery, Console.ReadLine());
            Console.WriteLine("请输入期号:");
            issue.Number = Console.ReadLine();
            transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "107");
            try
            {
                string result = gateway.BalanceQuery(accountN, transType, issue);
                Console.WriteLine("销量查询结果:\n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("销量查询结果:\n    错误:" + ex.Message);
            }
            Console.WriteLine("销量查询结束。。。。\n");
            #endregion

            #region 返奖查询
            Console.WriteLine("返奖查询开始。。。。");
            Console.WriteLine("请输入玩法名称(如:双色球、15选5、3D、七乐彩、6+1、天天彩4、时时乐):");
            issue.PlayMethodInfo = pleyMethodM.GetMethodType(LotteryType.ShangHaiWelfareLottery, Console.ReadLine());
            Console.WriteLine("请输入期号:");
            issue.Number = Console.ReadLine();
            transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "106");
            try
            {
                string result = gateway.BonusQuery(accountN, transType, issue);
                Console.WriteLine("返奖查询结果:\n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("返奖查询结果:\n    错误:" + ex.Message);
            }
            Console.WriteLine("返奖查询结束。。。。\n");
            #endregion

            #region 账户查询
            Console.WriteLine("账户查询开始。。。。");
            try
            {
                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "116");
                List<AccountQuery> users = new List<AccountQuery>();
                AccountQuery account = new AccountQuery();
                account.UserName = "******";
                users.Add(account);
                account = new AccountQuery();
                account.UserName = "******";
                users.Add(account);

                string result = gateway.AccountQuery(accountN, transType, users);
                Console.WriteLine("账户查询结果:    \n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("账户查询结果:    \n错误:" + ex.Message);
            }
            Console.WriteLine("账户查询结束。。。。\n");
            #endregion

            IAddBalanceGateway gateway2 = GatewayFactroy.CreateAddBalanceGatewayFactory(LotteryType.ShangHaiWelfareLottery);
            Console.WriteLine("\n充值网关地址:" + gateway2.GatewayUrl + "\n");
            #region 充值
            Console.WriteLine("充值开始。。。。");
            Console.WriteLine("请输入支付提供商类型(1、银联;2、支付宝;3、腾讯财付通;4、汇付天下;5、快钱;6、网银在线;7、云网支付):");
            AlipayProviderTypeManager alipayM = new AlipayProviderTypeManager();
            int alipayIndex = Convert.ToInt32(Console.ReadLine()) - 1;
            AlipayProviderType alipayType = alipayM.providerTypes[alipayIndex];
            user = new UserProfile();
            Console.WriteLine("彩票用户名:");
            user.UserName = Console.ReadLine();
            Console.WriteLine("用户证件类型(1、身份证;2、军官证;3、护照):");
            cardType = Console.ReadLine();
            if (cardType == "1" || cardType == "2" || cardType == "3")
            {
                user.CardTypeInfo = (CardType)int.Parse(cardType);
                Console.WriteLine("证件号码:");
                user.CardNumber = Console.ReadLine();
                Console.WriteLine("用户真是姓名:");
                user.RealName = Console.ReadLine();
                Console.WriteLine("你输入的彩票用户信息为:  证件类型:" + (int)user.CardTypeInfo + "  证件号码:" + user.CardNumber + "  邮箱:" + user.Mail + "  真实姓名:" + user.RealName);
                Console.WriteLine("请输入充值金额:");
                string money = Console.ReadLine();
                Console.WriteLine("请输入接受充值结果的URL地址:");
                string returnUrl = Console.ReadLine();

                try
                {
                    gateway2.PostAddBalance(accountN, alipayType, user, money, returnUrl);
                    Console.WriteLine("充值结果:成功");
                }
                catch (Exception ex)
                {
                    Console.WriteLine("充值结果:\n    错误:" + ex.Message);
                }
            }
            else
            {
                Console.WriteLine("构建彩票用户错误:用户证件类型不正确");
            }

            Console.WriteLine("充值结束。。。。\n");
            #endregion

            #region 充值查询
            Console.WriteLine("充值查询开始(本测试只查询一个充值)。。。。");
            Console.WriteLine("请输入号充值Id(请COPY上面\"充值请求信息\"中的id):");
            string id = Console.ReadLine();

            try
            {
                Fill fill = new Fill();
                fill.Id = id;
                List<Fill> fills = new List<Fill>();
                fills.Add(fill);
                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "110");
                string result = gateway2.FillQuery(accountN, transType, fills);
                Console.WriteLine("充值查询结果:\n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("充值查询结果:\n    错误" + ex.Message);
            }

            Console.WriteLine("充值查询结束。。。。\n");
            #endregion

            IDrawingGateway gateway3 = GatewayFactroy.CreateDrawingGatewayFactory(LotteryType.ShangHaiWelfareLottery);
            Console.WriteLine("\n提款网关地址:" + gateway3.GatewayUrl + "\n");
            #region 提款
            Console.WriteLine("提款开始。。。。");
            Drawing drawing = new Drawing();
            try
            {
                drawing = new Drawing();
                drawing.Id = accountN.UserName + DateTime.Now.ToString("yyyyMMdd") + PostManager.EightSerialNumber;

                Console.WriteLine("彩票用户名:");
                user.UserName = Console.ReadLine();
                Console.WriteLine("用户证件类型(1、身份证;2、军官证;3、护照):");
                cardType = Console.ReadLine();
                if (cardType == "1" || cardType == "2" || cardType == "3")
                {
                    user.CardTypeInfo = (CardType)int.Parse(cardType);
                    Console.WriteLine("证件号码:");
                    user.CardNumber = Console.ReadLine();
                    Console.WriteLine("用户真是姓名:");
                    user.RealName = Console.ReadLine();
                    Console.WriteLine("你输入的彩票用户信息为:  证件类型:" + (int)user.CardTypeInfo + "  证件号码:" + user.CardNumber + "  邮箱:" + user.Mail + "  真实姓名:" + user.RealName);
                }

                drawing.User = user;
                Console.WriteLine("银行账号:");
                drawing.BankCard = Console.ReadLine();
                Console.WriteLine("开户行名称:");
                drawing.BankName = Console.ReadLine();
                Console.WriteLine("开户行所在省或直辖市名称:");
                drawing.Province = Console.ReadLine();
                Console.WriteLine("开户行所在城市:");
                drawing.City = Console.ReadLine();
                Console.WriteLine("分行或支行、分理处名称:");
                drawing.Branch = Console.ReadLine();
                Console.WriteLine("提款金额:");
                drawing.Money = Convert.ToInt32(Console.ReadLine());

                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "111");
                string result = gateway3.DrawingRequest(accountN, transType, drawing);

                Console.WriteLine("提款结果:\n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("提款结果:    \n错误:" + ex.Message);
            }
            Console.WriteLine("提款结束。。。。\n");
            #endregion

            #region 提款查询
            Console.WriteLine("提款查询开始。。。。");
            try
            {
                List<Drawing> drawings = new List<Drawing>();
                drawings.Add(drawing);
                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "113");
                string result = gateway3.DrawingQuery(accountN, transType, drawings);
                Console.WriteLine("提款查询结果:\n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("提款查询结果:    \n错误:" + ex.Message);
            }
            Console.WriteLine("提款查询结束。。。。\n");
            #endregion
        }
Exemple #8
0
 public TransactionTypeController()
 {
     _transactionTypeManager = new TransactionTypeManager();
 }
        static void Main(string[] args)
        {
            Console.WriteLine("恒朋上海接口测试开始。。。。\n");


            AccountNumber accountN = new AccountNumber();

            Console.WriteLine("请输入代理商账号:");
            accountN.UserName = "******";     //Console.ReadLine();
            Console.WriteLine("请输入代理商密码:");
            accountN.UserPassword = "******"; //Console.ReadLine();
            Console.WriteLine("你输入的代理商账号为:" + accountN.UserName + "    密码为:" + accountN.UserPassword + "\n");

            IIssueQueryGateway gateway = GatewayFactroy.CreateIssueQueryGatewayFactory(LotteryType.ShangHaiWelfareLottery);

            Console.WriteLine("投注/查询网关地址:" + gateway.GatewayUrl + "\n");
            #region 奖期查询
            TransactionTypeManager transTypeM = new TransactionTypeManager(LotteryType.ShangHaiWelfareLottery);
            TransactionType        transType  = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "102");


            ////奖期查询测试
            //Console.WriteLine("奖期查询开始。。。。");
            Issue             issue       = new Issue();
            PlayMethodManager pleyMethodM = new PlayMethodManager(LotteryType.ShangHaiWelfareLottery);
            //Console.WriteLine("请输入玩法名称(如:双色球、15选5、3D、七乐彩、6+1、天天彩4、时时乐):");
            //issue.PlayMethodInfo=pleyMethodM.GetMethodType(LotteryType.ShangHaiWelfareLottery,Console.ReadLine());
            //Console.WriteLine("请输入期号:");
            //issue.Number=Console.ReadLine();

            //Console.WriteLine("你要进行的奖期查询玩法为:" + issue.PlayMethodInfo.PlayName + "    玩法编号为:" +issue.PlayMethodInfo.GameName + "    奖期为:" + issue.Number);

            //try
            //{
            //    string result = gateway.IssueQuery(accountN, transType, issue);
            //    Console.WriteLine("奖期查询结果:\n" + result);
            //}
            //catch (Exception ex)
            //{
            //    Console.WriteLine("奖期查询结果:\n    错误:" + ex.Message);
            //}

            //Console.WriteLine("奖期查询结束。。。。\n");
            #endregion

            #region 投注
            //投注测试
            Console.WriteLine("投注开始(本测试会携带相同的两张彩票(票号不同))。。。。");
            transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "103");
            Console.WriteLine("构建彩票信息开始。。。。");
            List <Ticket> tickets   = new List <Ticket>();
            Ticket        ticketOne = new Ticket();
            ticketOne.TicketId  = accountN.UserName + DateTime.Now.ToString("yyyyMMdd") + PostManager.EightSerialNumber;
            ticketOne.IssueInfo = new Issue();
            Console.WriteLine("请输入玩法名称(如:双色球、15选5、3D、七乐彩、6+1、天天彩4、时时乐):");
            string gameName = "ssl";// Console.ReadLine();
            ticketOne.PlayTypeInfo             = pleyMethodM.GetMethodType(LotteryType.ShangHaiWelfareLottery, gameName).PlayTypes[0];
            ticketOne.IssueInfo.PlayMethodInfo = pleyMethodM.GetMethodType(LotteryType.ShangHaiWelfareLottery, gameName);
            Console.WriteLine("请输入期号:");
            ticketOne.IssueInfo.Number = Console.ReadLine();
            Console.WriteLine("倍投数:");
            ticketOne.Amount = "1"; // Console.ReadLine();
            Console.WriteLine("购买金额:");
            ticketOne.Money = "2";  //Console.ReadLine();
            Console.WriteLine("要投注的彩票号码(测试时,每张彩票一注):");
            ticketOne.AnteCodes = Console.ReadLine();

            UserProfile user = new UserProfile();
            Console.WriteLine("彩票用户名:");
            user.UserName = "******"; // Console.ReadLine();
            Console.WriteLine("用户证件类型(1、身份证;2、军官证;3、护照):");
            string cardType = "1";     // Console.ReadLine();
            if (cardType == "1" || cardType == "2" || cardType == "3")
            {
                user.CardTypeInfo = (CardType)int.Parse(cardType);
                Console.WriteLine("证件号码:");
                user.CardNumber = "510212198105057410"; //Console.ReadLine();
                Console.WriteLine("用户邮箱地址:");
                user.Mail = "*****@*****.**";     // Console.ReadLine();
                Console.WriteLine("用户手机号(无纸化彩票中大奖的凭证之一):");
                user.Mobile = "15902307117";            // Console.ReadLine();
                Console.WriteLine("用户真实姓名:");
                user.RealName = "钟家宇";                  // Console.ReadLine();
                Console.WriteLine("你输入的彩票用户信息为:  证件类型:" + (int)user.CardTypeInfo + "  证件号码:" + user.CardNumber + "  邮箱:" + user.Mail + "  手机号:" + user.Mobile + "  真实姓名:" + user.RealName);

                ticketOne.UserProfile = user;
                tickets.Add(ticketOne);
                ticketOne.TicketId = accountN.UserName + DateTime.Now.ToString("yyyyMMdd") + PostManager.TenSerialNumber;
                tickets.Add(ticketOne);


                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "103");
                try
                {
                    string result = gateway.LotteryRequest(accountN, transType, tickets);
                    Console.WriteLine("投注结果:");
                    Console.WriteLine(result);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("投注结果:\n    错误:" + ex.Message);
                }
            }
            else
            {
                Console.WriteLine("构建彩票用户错误:用户证件类型不正确");
            }
            Console.WriteLine("投注结束。。。。\n");
            #endregion

            #region 票查询
            Console.WriteLine("票查询开始(如果上面的投注成功,直接查询投票的彩票,否则请输入彩票号)。。。。");
            Console.WriteLine("上面的投注是否成功?(1、成功;2、失败):");

            try
            {
                Ticket ticketP = null;
                if (Console.ReadLine() == "2")
                {
                    Console.WriteLine("请输入要查询的票号:");
                    ticketP          = new Ticket();
                    ticketP.TicketId = Console.ReadLine();
                }
                else
                {
                    ticketP = tickets[0];
                }

                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "105");
                List <Ticket> ticketsP = new List <Ticket>();
                ticketsP.Add(ticketP);

                string result = gateway.TicketQuery(accountN, transType, ticketsP);
                Console.WriteLine("票查询结果:");
                Console.WriteLine(result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("票查询结果:\n    错误:" + ex.Message);
            }
            Console.WriteLine("票查询结束。。。。\n");
            #endregion

            #region 销量查询
            Console.WriteLine("销量查询开始。。。。");
            Console.WriteLine("请输入玩法名称(如:双色球、15选5、3D、七乐彩、6+1、天天彩4、时时乐):");
            issue.PlayMethodInfo = pleyMethodM.GetMethodType(LotteryType.ShangHaiWelfareLottery, Console.ReadLine());
            Console.WriteLine("请输入期号:");
            issue.Number = Console.ReadLine();
            transType    = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "107");
            try
            {
                string result = gateway.BalanceQuery(accountN, transType, issue);
                Console.WriteLine("销量查询结果:\n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("销量查询结果:\n    错误:" + ex.Message);
            }
            Console.WriteLine("销量查询结束。。。。\n");
            #endregion

            #region 返奖查询
            Console.WriteLine("返奖查询开始。。。。");
            Console.WriteLine("请输入玩法名称(如:双色球、15选5、3D、七乐彩、6+1、天天彩4、时时乐):");
            issue.PlayMethodInfo = pleyMethodM.GetMethodType(LotteryType.ShangHaiWelfareLottery, Console.ReadLine());
            Console.WriteLine("请输入期号:");
            issue.Number = Console.ReadLine();
            transType    = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "106");
            try
            {
                string result = gateway.BonusQuery(accountN, transType, issue);
                Console.WriteLine("返奖查询结果:\n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("返奖查询结果:\n    错误:" + ex.Message);
            }
            Console.WriteLine("返奖查询结束。。。。\n");
            #endregion

            #region 账户查询
            Console.WriteLine("账户查询开始。。。。");
            try
            {
                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "116");
                List <AccountQuery> users   = new List <AccountQuery>();
                AccountQuery        account = new AccountQuery();
                account.UserName = "******";
                users.Add(account);
                account          = new AccountQuery();
                account.UserName = "******";
                users.Add(account);

                string result = gateway.AccountQuery(accountN, transType, users);
                Console.WriteLine("账户查询结果:    \n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("账户查询结果:    \n错误:" + ex.Message);
            }
            Console.WriteLine("账户查询结束。。。。\n");
            #endregion



            IAddBalanceGateway gateway2 = GatewayFactroy.CreateAddBalanceGatewayFactory(LotteryType.ShangHaiWelfareLottery);
            Console.WriteLine("\n充值网关地址:" + gateway2.GatewayUrl + "\n");
            #region 充值
            Console.WriteLine("充值开始。。。。");
            Console.WriteLine("请输入支付提供商类型(1、银联;2、支付宝;3、腾讯财付通;4、汇付天下;5、快钱;6、网银在线;7、云网支付):");
            AlipayProviderTypeManager alipayM = new AlipayProviderTypeManager();
            int alipayIndex = Convert.ToInt32(Console.ReadLine()) - 1;
            AlipayProviderType alipayType = alipayM.providerTypes[alipayIndex];
            user = new UserProfile();
            Console.WriteLine("彩票用户名:");
            user.UserName = Console.ReadLine();
            Console.WriteLine("用户证件类型(1、身份证;2、军官证;3、护照):");
            cardType = Console.ReadLine();
            if (cardType == "1" || cardType == "2" || cardType == "3")
            {
                user.CardTypeInfo = (CardType)int.Parse(cardType);
                Console.WriteLine("证件号码:");
                user.CardNumber = Console.ReadLine();
                Console.WriteLine("用户真是姓名:");
                user.RealName = Console.ReadLine();
                Console.WriteLine("你输入的彩票用户信息为:  证件类型:" + (int)user.CardTypeInfo + "  证件号码:" + user.CardNumber + "  邮箱:" + user.Mail + "  真实姓名:" + user.RealName);
                Console.WriteLine("请输入充值金额:");
                string money = Console.ReadLine();
                Console.WriteLine("请输入接受充值结果的URL地址:");
                string returnUrl = Console.ReadLine();

                try
                {
                    gateway2.PostAddBalance(accountN, alipayType, user, money, returnUrl);
                    Console.WriteLine("充值结果:成功");
                }
                catch (Exception ex)
                {
                    Console.WriteLine("充值结果:\n    错误:" + ex.Message);
                }
            }
            else
            {
                Console.WriteLine("构建彩票用户错误:用户证件类型不正确");
            }

            Console.WriteLine("充值结束。。。。\n");
            #endregion

            #region 充值查询
            Console.WriteLine("充值查询开始(本测试只查询一个充值)。。。。");
            Console.WriteLine("请输入号充值Id(请COPY上面\"充值请求信息\"中的id):");
            string id = Console.ReadLine();

            try
            {
                Fill fill = new Fill();
                fill.Id = id;
                List <Fill> fills = new List <Fill>();
                fills.Add(fill);
                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "110");
                string result = gateway2.FillQuery(accountN, transType, fills);
                Console.WriteLine("充值查询结果:\n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("充值查询结果:\n    错误" + ex.Message);
            }

            Console.WriteLine("充值查询结束。。。。\n");
            #endregion



            IDrawingGateway gateway3 = GatewayFactroy.CreateDrawingGatewayFactory(LotteryType.ShangHaiWelfareLottery);
            Console.WriteLine("\n提款网关地址:" + gateway3.GatewayUrl + "\n");
            #region 提款
            Console.WriteLine("提款开始。。。。");
            Drawing drawing = new Drawing();
            try
            {
                drawing    = new Drawing();
                drawing.Id = accountN.UserName + DateTime.Now.ToString("yyyyMMdd") + PostManager.EightSerialNumber;

                Console.WriteLine("彩票用户名:");
                user.UserName = Console.ReadLine();
                Console.WriteLine("用户证件类型(1、身份证;2、军官证;3、护照):");
                cardType = Console.ReadLine();
                if (cardType == "1" || cardType == "2" || cardType == "3")
                {
                    user.CardTypeInfo = (CardType)int.Parse(cardType);
                    Console.WriteLine("证件号码:");
                    user.CardNumber = Console.ReadLine();
                    Console.WriteLine("用户真是姓名:");
                    user.RealName = Console.ReadLine();
                    Console.WriteLine("你输入的彩票用户信息为:  证件类型:" + (int)user.CardTypeInfo + "  证件号码:" + user.CardNumber + "  邮箱:" + user.Mail + "  真实姓名:" + user.RealName);
                }

                drawing.User = user;
                Console.WriteLine("银行账号:");
                drawing.BankCard = Console.ReadLine();
                Console.WriteLine("开户行名称:");
                drawing.BankName = Console.ReadLine();
                Console.WriteLine("开户行所在省或直辖市名称:");
                drawing.Province = Console.ReadLine();
                Console.WriteLine("开户行所在城市:");
                drawing.City = Console.ReadLine();
                Console.WriteLine("分行或支行、分理处名称:");
                drawing.Branch = Console.ReadLine();
                Console.WriteLine("提款金额:");
                drawing.Money = Convert.ToInt32(Console.ReadLine());



                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "111");
                string result = gateway3.DrawingRequest(accountN, transType, drawing);

                Console.WriteLine("提款结果:\n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("提款结果:    \n错误:" + ex.Message);
            }
            Console.WriteLine("提款结束。。。。\n");
            #endregion

            #region 提款查询
            Console.WriteLine("提款查询开始。。。。");
            try
            {
                List <Drawing> drawings = new List <Drawing>();
                drawings.Add(drawing);
                transType = transTypeM.GetTransactionTypeByTypeCode(LotteryType.ShangHaiWelfareLottery, "113");
                string result = gateway3.DrawingQuery(accountN, transType, drawings);
                Console.WriteLine("提款查询结果:\n" + result);
            }
            catch (Exception ex)
            {
                Console.WriteLine("提款查询结果:    \n错误:" + ex.Message);
            }
            Console.WriteLine("提款查询结束。。。。\n");
            #endregion
        }