Exemple #1
0
        public static string SendManDocPack(string login, int password, int moneyType, string money,
                                            string center, string vType, string returnDate, bool reception = false, bool withoutApp = false)
        {
            string requestResult = String.Empty;

            string servicesList = ManualDocPack.AllServices();

            Log.Add("запрос на чек: " + servicesList, freeLine: true);

            string fields =
                "login="******"&pass="******"&moneytype=" + moneyType.ToString() +
                "&money=" + money + "&center=" + RCenterNamesExclusion(center) + "&vtype=" + vType +
                "&rdate=" + returnDate + "&services=" + servicesList + "&callback=" + MainWindow.Cashbox.serialNumber +
                "&r=" + (reception ? "1" : "0") + "&n=" + (withoutApp ? "1" : "0");

            string request = fields + "&crc=" + CheckRequest.CreateMD5(fields, notOrd: true);

            string url = "/vcs/cashbox_mandocpack.htm?" + request;

            Log.Add(url, logType: "http");

            try
            {
                requestResult = SockectSend(url);
            }
            catch (SocketException e)
            {
                Log.AddWeb("(отправка запроса на чек) " + e.Message);

                return("ERROR|Ошибка отправки запроса на чек");
            }

            return(requestResult);
        }
Exemple #2
0
        public static string AppNumberData(string appNumber, string summ)
        {
            string requestResult = String.Empty;

            string appNumberClean = Regex.Replace(appNumber, @"[^0-9]", String.Empty);

            string fields = "app=" + appNumberClean + "&summ=" + summ;

            string request = fields + "&crc=" + CheckRequest.CreateMD5(fields, notOrd: true);

            string url = "/vcs/cashbox_appinfo.htm?" + request;

            Log.Add(url, logType: "http");

            try
            {
                requestResult = SockectSend(url);
            }
            catch (SocketException e)
            {
                Log.AddWeb("(отправка запроса на информацию о записи) " + e.Message);

                return("ERROR|Ошибка отправки запроса на информацию о записи");
            }

            return(requestResult);
        }
Exemple #3
0
        public static string Update(string updateFiles)
        {
            Log.Add("необходимо обновление до версии " + GetLastVersion(updateFiles), "update", freeLine: true);

            XmlDocument updateData = new XmlDocument();

            updateData.LoadXml(updateFiles);

            WebClient webClient = new WebClient();

            Directory.CreateDirectory(UPDATE_DIR);

            foreach (XmlNode node in updateData.SelectNodes("Update/Files/File"))
            {
                string name = node["Name"].InnerText;

                try
                {
                    webClient.DownloadFile(URL_UPDATE + name, UPDATE_DIR + name);
                }
                catch (WebException e)
                {
                    return(String.Empty);
                }

                Log.Add("скачан файл: " + name, "update");

                string[] lines = System.IO.File.ReadAllLines(UPDATE_DIR + name);

                string crcCheck = CheckRequest.CreateMD5(string.Join(String.Empty, lines), withOutPass: false);

                if (crcCheck != node["CRC"].InnerText)
                {
                    return(String.Empty);
                }
            }

            return(UPDATE_DIR);
        }
Exemple #4
0
        public static string SendManDocPack(string login, int password, int moneyType, string money,
                                            string center, string vType, string returnDate, bool reception = false)
        {
            string requestResult = String.Empty;

            string servicesList = ManualDocPack.AllServices();

            Log.Add("запрос на чек: " + servicesList, freeLine: true);

            string fields = String.Format(
                "login={0}&pass={1}&moneytype={2}&money={3}&center={4}&vtype={5}&rdate={6}&services={7}&callback={8}&r={9}&n=1",
                login, password, moneyType, money, RCenterNamesExclusion(center), vType, returnDate, servicesList,
                MainWindow.Cashbox.serialNumber, (reception ? "1" : "0")
                );

            string url = String.Format("/vcs/cashbox_mandocpack.htm?{0}&crc={1}", fields, CheckRequest.CreateMD5(fields, notOrd: true));

            Log.Add(url, logType: "http");

            try
            {
                requestResult = SockectSend(url);
            }
            catch (SocketException e)
            {
                Log.AddWeb("(отправка запроса на чек) " + e.Message);

                return("ERROR|Ошибка отправки запроса на чек");
            }

            return(requestResult);
        }
Exemple #5
0
        public static string ResponsePrepare(string request, bool empty, string clientIP)
        {
            string err = String.Empty;

            if (empty)
            {
                Log.Add("пустой запрос с " + clientIP);
                CRM.SendError("Пустой запрос с " + clientIP);

                return("403");
            }
            else if (!CheckRequest.CheckValidRequest(request))
            {
                Log.Add("невалидный запрос " + clientIP);
                CRM.SendError("Невалидный запрос с " + clientIP);

                return("404");
            }

            if (!CheckRequest.CheckLoginInRequest(request, out err))
            {
                Log.Add("конфликт логинов: " + err);
                CRM.SendError("Конфликт логинов: " + err);

                return("ERR3:Кассовая программа запущена пользователем " + CRM.currentLogin);
            }

            if (CheckRequest.CheckConnection(request))
            {
                Log.Add("бип-тест подключения к кассе");

                string testResult = Diagnostics.MakeBeepTest();

                return(testResult);
            }

            if (!CheckRequest.CheckXml(request))
            {
                Log.Add("CRC ошибочна, возвращаем ошибку данных");
                CRM.SendError("CRC ошибка");

                return("ERR1:Ошибка переданных данных");
            }
            else
            {
                Log.Add("CRC запроса корректна, логин соответствует");

                DocPack docPack = new DocPack();

                docPack.DocPackFromXML(request);

                if (!String.IsNullOrWhiteSpace(docPack.AgrNumber))
                {
                    Log.Add("номер договора: " + docPack.AgrNumber);
                }

                MainWindow.Cashbox.manDocPackForPrinting = docPack;

                if (docPack.RequestOnly == 1)
                {
                    MainWindow.Cashbox.manDocPackSumm = docPack.Total;

                    ShowTotal(docPack.Total.ToString());

                    return("OK:Callback запрос получен");
                }
                else
                {
                    return(MainWindow.Cashbox.PrintDocPack(docPack));
                }
            }
        }