예제 #1
0
파일: options.cs 프로젝트: ykcycvl/Zeus2013
        private void TestConnection()
        {
            string   message   = "";
            SendPays sp        = new SendPays();
            long     starttime = Environment.TickCount;

            switch (sp.TestServer())
            {
            case 0: message = "Связь с сервером есть. Без ошибок."; break;

            case 1: message = "Связь есть. ТЕРМИНАЛ НЕ АВТОРИЗОВАН! "; break;

            case 2: message = "Связь с сервером отсутствует. "; break;

            default:
                message = sp.XML_Response;
                break;
            }
            long stoptime = Environment.TickCount;
            long delta    = stoptime - starttime;

            if (message != null)
            {
                conText      = message + " [" + delta.ToString() + " ms]";
                conTextColor = Color.Green;
                //MessageBox.Show(message + "\r\n\r\n\r\n Время ответа: " + delta.ToString() + " ms");
            }
            else
            {
                conText      = message + " [" + delta.ToString() + " ms]";
                conTextColor = Color.Red;
                //MessageBox.Show("Связи нет!!!\r\n\r\n\r\n Время ответа: " + delta.ToString() + " ms");
            }
        }
예제 #2
0
        private void ValidateAccount()
        {
            AccauntValidated = false;
            SendPays sp = new SendPays();

            Random p   = new Random();
            int    rnd = p.Next(1, 100);
            string str = rnd.ToString();

            if (str.Length < 3)
            {
                for (int i = 0; i < 3 - str.Length; i++)
                {
                    rnd = rnd * 10;
                }
            }

            string account = GetAccountValue();

            MD5 md5hasher = MD5.Create();

            byte[]        hash = md5hasher.ComputeHash(Encoding.Default.GetBytes(account));
            StringBuilder sb   = new StringBuilder();

            for (int i = 0; i < hash.Length; i++)
            {
                sb.Append(hash[i]);
            }

            string sHash = sb.ToString();

            while (sHash.Length < 5)
            {
                int r = p.Next(0, 9);
                sHash += r.ToString();
            }

            Ipaybox.curPay.txn_id = DateTime.Now.ToString("yyMMddHHmmss") + Ipaybox.PRV_SELECTED_ID.Trim() + sHash.Substring(0, 5);

            while (Ipaybox.curPay.txn_id.Length > 19)
            {
                Ipaybox.curPay.txn_id = Ipaybox.curPay.txn_id.Substring(0, Ipaybox.curPay.txn_id.Length - 1);
            }

            Ipaybox.curPay.Date = DateTime.Now;
            sp.SendPay("check", Ipaybox.PRV_SELECTED_ID, Ipaybox.Terminal.terminal_id, Ipaybox.Terminal.terminal_pass, GetAccountValue(), Ipaybox.curPay.txn_id, "10", "10", Ipaybox.curPay.Date.ToString("yyyy.MM.dd HH:mm:ss"));

            XmlDocument doc = new XmlDocument();

            try
            {
                doc.LoadXml(sp.XML_Response);

                string result  = doc.DocumentElement.SelectSingleNode("result").InnerText;
                string comment = doc.DocumentElement.SelectSingleNode("comment").InnerText;

                int.TryParse(result, out glResult);

                if (result == "0")
                {
                    IsAccountValid     = true;
                    IsServiceAvailable = true;
                }
                else
                {
                    IsAccountValid     = false;
                    IsServiceAvailable = true;
                }
            }
            catch
            {
                // Не получили ответа или ответ неверный
                IsAccountValid     = false;
                IsServiceAvailable = false;
            }
            AccauntValidated = true;
        }