Beispiel #1
0
        void GetOrderFormDB()
        {
            while (threadStatus)
            {
                try
                {
                    List <Order> reChargeOrderSet = new List <Order>();
                    reChargeOrderSet = SQLOrder.GetBySql();

                    if (reChargeOrderSet != null)
                    {
                        foreach (Order order in reChargeOrderSet)
                        {
                            order.RechargeStatus = (int)OrderRechargeStatus.processing;
                            if (SQLOrder.UpdateBySql(order.OrderID, order.RechargeStatus))
                            {
                                Thread rechargeThread = new Thread(new ParameterizedThreadStart(Recharge));
                                rechargeThread.Start(order);
                                Thread.Sleep(500);
                            }
                        }
                    }

                    Thread.Sleep(1000);
                }
                catch (Exception ex)
                {
                    WriteLog.Write("方法:GetOrderFormDB异常,信息:" + ex.Message + ex.StackTrace, LogPathFile.Exception.ToString());
                }
            }
        }
Beispiel #2
0
        void QueryOrder()
        {
            List <Order> orderSet = new List <Order>();

            try
            {
                string   orderInsideID   = this.txtOrderInsideID.Text.Trim();
                string   orderExternalID = this.txtOrderExternalID.Text.Trim();
                string   productID       = this.txtProductID.Text.Trim();
                string   productName     = this.txtProductName.Text.Trim();
                string   targetAccount   = this.txtTargetAccount.Text.Trim();
                string   reChargeAccount = this.txtReChargeAccount.Text.Trim();
                DateTime startTime       = this.dtOrderStartTime.Value;
                DateTime endTime         = this.dtOrderEndTime.Value;
                int      status          = -1;
                switch (cmbOrderStatus.Text)
                {
                case "成功":
                    status = (int)OrderRechargeStatus.successful;
                    break;

                case "失败":
                    status = (int)OrderRechargeStatus.failure;
                    break;

                case "存疑":
                    status = (int)OrderRechargeStatus.suspicious;
                    break;

                case "未处理":
                    status = (int)OrderRechargeStatus.untreated;
                    break;

                case "处理中":
                    status = (int)OrderRechargeStatus.processing;
                    break;

                case "全部":
                default:
                    break;
                }

                orderSet = SQLOrder.GetOrder(orderInsideID, orderExternalID, productID, productName, targetAccount, reChargeAccount, startTime, endTime, status)
                           .OrderByDescending(p => p.StartDatetime).ToList();
            }
            catch (Exception)
            {
                throw;
            }

            BindingSource bs = new BindingSource();

            bs.DataSource               = orderSet;
            dgvQueryOrder.DataSource    = bs;
            bdnQueryOrder.BindingSource = bs;
        }
Beispiel #3
0
        void GetSUPOrders()
        {
            while (isGetSUPOrdersThreadStatus)
            {
                try
                {
                    int time = 0;

                    WriteLog.Write("方法:GetSUPOrders 开始取单:" + DateTime.Now.ToString(), LogPathFile.Other);

                    List <Order> orderSet = new GetAndNotifySUPOrders().getOrderFromSUP(ref time);

                    WriteLog.Write("方法:GetSUPOrders 取到订单:" + DateTime.Now.ToString(), LogPathFile.Other);

                    if (orderSet != null && orderSet.Count > 0)
                    {
                        bool result  = SQLOrder.AddOrder(orderSet);
                        int  Recount = 0;
                        while (!result)
                        {
                            if (Recount > 10)
                            {
                                break;
                            }
                            result = SQLOrder.AddOrder(orderSet);
                            Recount++;
                            Thread.Sleep(1 * 1000);
                        }

                        WriteLog.Write("方法:GetSUPOrders 订单保存成功:" + DateTime.Now.ToString(), LogPathFile.Other);

                        //foreach (Order order in orderSet)
                        //{
                        //    bool result = SQLOrder.AddOrder(order);
                        //    int Recount = 0;
                        //    while (!result)
                        //    {
                        //        if (Recount > 10)
                        //        {
                        //            break;
                        //        }
                        //        result = SQLOrder.AddOrder(order);
                        //        Recount++;
                        //        Thread.Sleep(1 * 1000);
                        //    }
                        //}
                    }
                    Thread.Sleep(time * 1000);
                }
                catch (Exception ex)
                {
                    WriteLog.Write("方法:GetSUPOrders异常,信息:" + ex.Message + ex.StackTrace, LogPathFile.Exception.ToString());
                }
            }
        }
Beispiel #4
0
        bool NotifyOrder(DataGridViewRow row)
        {
            try
            {
                int orderID = Convert.ToInt32(row.Cells["OrderID"].Value);

                Order order = new SQLOrder().GetOrder(p => p.OrderID == orderID).FirstOrDefault();

                ClientConfig clientConfigSets = SQLClientConfig.GetClientConfig(p => p.ClientConfigID != null).FirstOrDefault();

                return(new ChargeInterface.SW.ManageSW().notigyOrderToSW(order));
            }
            catch (Exception)
            {
            }
            return(false);
        }
Beispiel #5
0
        bool UpdateOrder(DataGridViewRow row)
        {
            try
            {
                int orderID = Convert.ToInt32(row.Cells["OrderID"].Value);

                Order order = new SQLOrder().GetOrder(p => p.OrderID == orderID).FirstOrDefault();

                order.RechargeStatus = Convert.ToInt32(row.Cells["RechargeStatus"].Value);

                return(new SQLOrder().UpdateOrder(order));
            }
            catch (Exception)
            {
            }
            return(false);
        }
Beispiel #6
0
        void getSWOrders()
        {
            while (isGetSWOrdersThreadStatus)
            {
                try
                {
                    int time = 0;

                    List <Order> orderSet = new ManageSW().getOrderFromSW(ref time);

                    if (orderSet == null)
                    {
                        Thread.Sleep(time * 1000);
                        continue;
                    }

                    foreach (Order order in orderSet)
                    {
                        if (new ManageSW().notigyOrderToSW(order, true))
                        {
                            bool result  = SQLOrder.AddOrder(order);
                            int  Recount = 0;
                            while (!result)
                            {
                                if (Recount > 10)
                                {
                                    break;
                                }
                                result = SQLOrder.AddOrder(order);
                                Recount++;
                                Thread.Sleep(1 * 1000);
                            }
                        }
                    }
                    Thread.Sleep(time * 1000);
                }
                catch (Exception ex)
                {
                    WriteLog.Write("方法:getSWOrders异常,信息:" + ex.Message + ex.StackTrace, LogPathFile.Exception.ToString());
                }
            }
        }
Beispiel #7
0
        static bool CheckRepeatOrder(Order order)
        {
            try
            {
                if (order != null && order.OrderExternalID != null)
                {
                    bool result = new SQLOrder().IsOrders(p => p.OrderExternalID == order.OrderExternalID);

                    WriteLog.Write("SW重复订单,订单号: " + order.OrderExternalID + " ,是否有重复: " + result, LogPathFile.Other);

                    if (!result)
                    {
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                WriteLog.Write("方法:CheckRepeatOrder异常,信息:" + ex.Message + ex.StackTrace, LogPathFile.Exception);
            }
            return(false);
        }
        public static bool CheckRepeatOrder(Order order, List <Order> dbOrderList)
        {
            try
            {
                if (order != null && order.OrderExternalID != null)
                {
                    bool result = true;  //重复存在;

                    if (dbOrderList != null && dbOrderList.Count > 0)
                    {
                        int count = dbOrderList.Where(p => p.OrderExternalID == order.OrderExternalID).Count();

                        if (count > 0)
                        {
                            result = true;
                        }
                        else
                        {
                            result = false;  //不存在
                        }
                    }
                    else
                    {
                        result = new SQLOrder().IsOrders(p => p.OrderExternalID == order.OrderExternalID);
                    }

                    WriteLog.Write("SUP重复订单,订单号: " + order.OrderExternalID + " ,是否有重复: " + result, LogPathFile.Other);

                    return(result);
                }
            }
            catch (Exception ex)
            {
                WriteLog.Write("方法:CheckRepeatOrder_Sup异常,信息:" + ex.Message + ex.StackTrace, LogPathFile.Exception);
            }
            return(false);
        }
Beispiel #9
0
        // Get/Generate the labels
        private void btnObtain_Click(object sender, EventArgs e)
        {
            SetFormEnabled(false);
            clearing = true;
            vsGroups.ClearEspackControl();
            vsParameters.ToList().ForEach(z =>
            {
                Parameters[z.Cells[0].Value.ToString()] = z.Cells[1].Value.ToString();
            });

            //
            var s = Parameters.Where(x => x.Value == "").ToDictionary(a => a.Key, a => a.Value);

            //Dictionary<string, string>)
            if (s.Count != 0)
            {
                MessageBox.Show("Parameter " + s.First().Key + " must be entered.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                SetFormEnabled(true);
                clearing = false;
                return;
            }
            ;

            var _Sql = "SELECT " + SQLSelect.Replace("|", ",") + " FROM " + SQLView;

            SQLParameterString = "";
            Parameters.ToList().ForEach(x =>
            {
                Parameters[x.Key]   = x.Value;
                SQLParameterString += x.Key + (x.Value != "NOTHING" ? "='" + x.Value + "'" : "") + " and ";
            });
            if (SQLParameterString != "")
            {
                SQLParameterString = " WHERE " + SQLParameterString.Substring(0, SQLParameterString.Length - 5);
            }

            _Sql += SQLParameterString;
            if (SQLOrder != "")
            {
                _Sql += " ORDER BY " + SQLOrder.Replace("|", ",");
            }

            using (var _RS = new DynamicRS(_Sql, Values.gDatos))
            {
                _RS.Open();
                if (_RS.EOF)
                {
                    SetFormEnabled(true);
                    MessageBox.Show("No rows returned.", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }


                ShowDetails();
                GenerateGroups(_RS.ToList());
                if (_RS.RecordCount != vsLabels.RowCount)
                {
                    GenerateNewLabels(_RS.ToList());
                    ShowDetails();
                }
            }
            SetFormEnabled(true);
            clearing = false;
        }
        void assignmentOrder(List <Order> orderSet, string item)
        {
            try
            {
                List <Order> dbOrderList = new SQLOrder().GetOrder_top1000();

                XmlDocument xml = new XmlDocument();
                xml.LoadXml(item);                                       //加载xml
                XmlNodeList xmlList = xml.GetElementsByTagName("Order"); //取得节点名为order的XmlNode集合
                foreach (XmlNode xmlNode in xmlList)
                {
                    XmlNodeList childList = xmlNode.ChildNodes; //取得orders下的子节点集合
                    Order       order     = new Order();
                    foreach (XmlNode childNode in childList)
                    {
                        #region order
                        if ("OrderID".Equals(childNode.Name))
                        {
                            order.OrderExternalID = childNode.InnerText.Trim();
                        }
                        else if ("ProductNo".Equals(childNode.Name))
                        {
                            order.ProductID = childNode.InnerText.Trim();
                        }
                        else if ("ProductName".Equals(childNode.Name))
                        {
                            order.ProductName = childNode.InnerText.Trim();
                        }
                        else if ("ParValue".Equals(childNode.Name))
                        {
                            order.ProductParValue = Convert.ToDecimal(childNode.InnerText.Trim());
                        }
                        else if ("Price".Equals(childNode.Name))
                        {
                            order.ProductSalePrice = Convert.ToDecimal(childNode.InnerText.Trim());
                        }
                        else if ("ChargeAccount".Equals(childNode.Name))
                        {
                            order.TargetAccount = childNode.InnerText.Trim();
                        }
                        //else if ("RechargeType".Equals(childNode.Name))
                        //    order.TargetAccountType = childNode.InnerText.Trim();
                        //else if ("RechargeType".Equals(childNode.Name))
                        //    order.TargetAccountTypeName = childNode.InnerText.Trim();
                        else if ("BuyNumber".Equals(childNode.Name))
                        {
                            order.BuyAmount = Convert.ToInt32(childNode.InnerText.Trim());
                        }
                        else if ("TradeAmount".Equals(childNode.Name))
                        {
                            order.TotalSalePrice = Convert.ToDecimal(childNode.InnerText.Trim());
                        }
                        //else if ("GameName".Equals(childNode.Name))
                        //    order.Game = childNode.InnerText.Trim();
                        else if ("GameName".Equals(childNode.Name))
                        {
                            order.GameName = childNode.InnerText.Trim();
                        }

                        //如果有角色,
                        //else if ("RoleName".Equals(childNode.Name))
                        //

                        else if ("AreaID".Equals(childNode.Name))
                        {
                            order.Area = childNode.InnerText.Trim();
                        }
                        else if ("Area".Equals(childNode.Name))
                        {
                            order.AreaName = childNode.InnerText.Trim();
                        }
                        else if ("SrvID".Equals(childNode.Name))
                        {
                            order.Server = childNode.InnerText.Trim();
                        }
                        else if ("Srv".Equals(childNode.Name))
                        {
                            order.ServerName = childNode.InnerText.Trim();
                        }
                        //else if ("RechargeType".Equals(childNode.Name))
                        //    order.RechargeMode = childNode.InnerText.Trim();
                        else if ("RechargeType".Equals(childNode.Name))
                        {
                            order.RechargeModeName = childNode.InnerText.Trim();
                        }
                        //else if ("stock-merchant-id".Equals(childNode.Name))
                        //    order.StockMerchantId = childNode.InnerText.Trim();
                        //else if ("stock-merchant-name".Equals(childNode.Name))
                        //    order.StockMerchantName = childNode.InnerText.Trim();
                        else if ("BuyerIP".Equals(childNode.Name))
                        {
                            order.CustomerIp = childNode.InnerText.Trim();
                        }
                        //else if ("customer-region".Equals(childNode.Name))
                        //    order.CustomerRegion = childNode.InnerText.Trim();
                        //else if ("deal-date-time".Equals(childNode.Name))
                        //    order.DealDateTime = Convert.ToDateTime(childNode.InnerText.Trim());



                        #endregion
                    }
                    order.StartDatetime    = DateTime.Now;
                    order.OrderInsideID    = OrderHelper.GenerateId(order.StartDatetime, "01");
                    order.SuccessfulAmount = 0;
                    order.RechargeStatus   = (int)OrderRechargeStatus.untreated;
                    order.IsNotify         = false;
                    order.MerchantCode     = MerchantCodeType.SUP;
                    if (BelongPoProduct(order))
                    {
                        if (!CheckRepeatOrder(order, dbOrderList))
                        {
                            orderSet.Add(order);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                WriteLog.Write("方法:assignmentOrder_Sup异常,信息:" + ex.Message + ex.StackTrace, LogPathFile.Exception);
            }
        }
Beispiel #11
0
        void Notify()
        {
            List <int> chargeClassIDList = new List <int>();
            string     sort = "asc";

            while (threadStatus)
            {
                try
                {
                    if (chargeClassIDList == null || chargeClassIDList.Count <= 0)
                    {
                        chargeClassIDList = GetNotifyChargeClass();
                    }

                    if (chargeClassIDList == null)
                    {
                        continue;
                    }

                    List <Order> NotifyOrderSet = new SQLOrder().GetNotNotifyOrderBySql(sort, chargeClassIDList);

                    if (NotifyOrderSet == null)
                    {
                        Thread.Sleep(1 * 5000);
                        continue;
                    }

                    //待返回的订单
                    List <Order> nOrderSet = NotifyOrderSet.Where(n => n.RechargeStatus == (int)OrderRechargeStatus.successful ||
                                                                  n.RechargeStatus == (int)OrderRechargeStatus.failure ||
                                                                  n.RechargeStatus == (int)OrderRechargeStatus.suspicious).ToList();

                    //待查询的订单
                    List <Order> qOrderSet = NotifyOrderSet.Where(n => n.RechargeStatus == (int)OrderRechargeStatus.Submit).ToList();

                    foreach (object order in qOrderSet)
                    {
                        Order queryOrder = (Order)order;

                        AssignmentDatagirdView(queryOrder);

                        TimeSpan timeSpan = DateTime.Now - queryOrder.StartDatetime.Value;

                        if (timeSpan.TotalSeconds < 30)
                        {
                            continue;
                        }

                        if (timeSpan.TotalMinutes >= 15)
                        {
                            queryOrder.RechargeStatus = (int)OrderRechargeStatus.suspicious;
                            queryOrder.RechargeMsg    = "订单超时,挂机存疑";
                            Common.LogHelper.WriteLog.Write("方法:Notify,订单号:" + queryOrder.OrderInsideID + " 订单状态查询超时,设为可疑:" + EnumService.GetDescription((int)queryOrder.RechargeStatus), LogPathFile.Other.ToString());
                        }

                        if (queryOrder.RechargeStatus == (int)OrderRechargeStatus.Submit)
                        {
                            queryOrder = payOrder(order);
                        }

                        if (queryOrder.RechargeStatus == (int)OrderRechargeStatus.successful ||
                            queryOrder.RechargeStatus == (int)OrderRechargeStatus.failure ||
                            queryOrder.RechargeStatus == (int)OrderRechargeStatus.suspicious)
                        {
                            if (nOrderSet == null)
                            {
                                nOrderSet = new List <Order>();
                            }

                            nOrderSet.Add(queryOrder);
                        }
                    }


                    if (nOrderSet != null && nOrderSet.Count > 0)
                    {
                        NotifyOrders(nOrderSet);
                        Thread.Sleep(1 * 500);
                    }
                    else
                    {
                        Thread.Sleep(1 * 1000);
                    }

                    sort = sort == "asc" ? "desc" : "asc";
                }
                catch (Exception ex)
                {
                    Common.LogHelper.WriteLog.Write("方法:Notify,异常:" + ex.Message + " ," + ex.Source, LogPathFile.Exception.ToString());
                    throw;
                }
            }
        }
Beispiel #12
0
        static void Main(string[] args)
        {
            List <string> ses = new List <string>();

            ses.Add("444");
            ses.Add("4434");
            ses.Add("44e4");
            ses.Add("44e4");

            List <Order> orders  = new List <Order>();
            Order        order12 = new Order()
            {
                OrderID  = 1653631,
                IsNotify = true
            };
            Order order1 = new Order()
            {
                OrderID  = 1653630,
                IsNotify = true
            };

            orders.Add(order12);
            orders.Add(order1);

            new SQLOrder().MultiUpdateData(orders);

            CookieContainer coockie = new CookieContainer();
            string          result  = PostAndGet.HttpPostString("http://121.42.166.214:8099/select.aspx", "username=15071226434&type=qb&sporderid=01201904152304350000011081&buyhaoma=3258222489&sign=0a81867f2a42f8990cd6e47e0cc45a69", ref coockie);



            string AreaName   = "第四十九大区(王者/天使电信)";
            string Servername = "王者一区(电信)";
            string Area       = "";
            string Server     = "";

            new PayAndQuerySW().getmoyuAreaAndServer("魔域", AreaName, Servername, ref Area, ref Server);

            List <Order> dbOrderList = new SQLOrder().GetOrder_top1000();

            Order order123 = new Order()
            {
                OrderExternalID = "2695468386217401"
            };

            GetAndNotifySUPOrders.CheckRepeatOrder(order123, dbOrderList);

            bool bo = new PayAndQuerySW().isChinese("ksdflhg少哦好东西 41561");

            int ssssssss = new QuerySW().getOrderStatus("upay_oidb_0x4fd verify failed for uin[166355766] userip[223.4.205.37] valid[0] reason[4]", "601");

            Order order133 = new Order()
            {
                OrderInsideID = "11",
                BuyAmount     = 1,
                TargetAccount = "鄂尔多斯飞",
                //CustomerIp = "223.104.63.183"
            };

            new PayAndQueryBaiYou().SubmitOrder(order133);

            new ChargeInterface.Charge.PayFulu().Charge(order133);

            new PayAndQueryXunTong().SubmitOrder(order133);

//2018/6/24 21:27:58	方法:Kamen回调,ChargeTime:2018-06-24 21:27:55 CustomerOrderNo:01201806242127490000000008OrderNo:1375870705 ReMark:交易失败 Status:False
//2018/6/24 21:27:58	方法:Kamen回调,Kamen订单号:1375870705 本地系统订单号:01201806242127490000000008签名验证错误,Kamen数字签名69962afcc9ff56fdd4fadfbb04ea5841本地签名:D70A7255A9D91F4E867340B4288C55AF


            string md5str          = "chargetime=2018-06-24 21:27:55&customerorderno=01201806242127490000000008&orderno=1375870705&remark=" + System.Web.HttpUtility.UrlEncode("交易失败", Encoding.UTF8) + "&Status=False918BB8A545017EB8B5E26D9F62AD33E1";
            string ChargeTime      = "2016-02-18 11:44:06";
            string CustomerOrderNo = "t0001";
            string OrderNo         = "653063195";
            string ReMark          = "交易成功";
            string Status          = "True";
            string Secret          = "F636297CB44B2F02BA4651282266EC2F";
            string sData           = "chargetime=" + ChargeTime.Replace("/", "-") + "&customerorderno=" + CustomerOrderNo + "&orderno=" + OrderNo + "&remark="
                                     + ReMark + "&status=" + Status;

            //string sign = EncryptMd5UTF8(sData+Secret);

            md5str = "chargetime=2016-02-18 11:44:06&customerorderno=t0001&orderno=653063195&remark=交易成功&status=TrueF636297CB44B2F02BA4651282266EC2F";
            //md5str = "chargetime=2014-11-12 10:31:03&customerorderno=493171&orderno=338833405&remark=交易成功&status=True+商户密钥";

            string dfdd = System.Web.HttpUtility.UrlEncode(md5str, Encoding.UTF8);
            //ec01cb60874420ab1c11083b07dd98ad

            string checkSign = Md5Helper.EncryptMd5_Kamen1(sData + Secret);


            // 01201903312106160000107708 RuiLian 提交参数:oid=01201903312106160000107708&cid=100183&pid=1078&pn=%e7%b4%ab%e5%85%89%e9%98%81-&nb=1&fm=15.0000&ru=http%3a%2f%2f116.62.44.48%2fNotifyFromRuiLian.aspx&at=&ct=%e6%96%b0%e6%b5%aa%e5%be%ae%e5%8d%9a%e4%bc%9a%e5%91%98&fr=&fs=&rin=&pip=219.140.132.224&info1=&info2=&sign=7839fe0efd29c9775f86d392f1182918

            //Kamen数字签名69962afcc9ff56fdd4fadfbb04ea5841本地签名:D70A7255A9D91F4E867340B4288C55AF



            // "oid=101447975&cid=test&pid=10097&pn=123456&nb=1&fm=1&ru=backcallurl&at=xxx&ct=xxx&fr=xxx&fs=xxx&rin=xxx&pip=118.249.190.100&info1=xxx&info2=xxx
            //&sign=c608f410759bf59d925ceb9d9c02dad0"


            string md5str1 = "101447975-test-10097-123456-1-1-backcallurl-test";
            string sign1   = Md5Helper.GetMD5String_utf8(md5str1);
            string sign2   = Md5Helper.EncryptMd5_Kamen(md5str1);
            string sign3   = Md5Helper.EncryptMd5_Kamen1(md5str1);

            Order order = new Order();

            order.BuyAmount     = 10;
            order.TargetAccount = "15072412234";
            ChargeInterface.Charge.Pay_91_com pt = new ChargeInterface.Charge.Pay_91_com();
            order = pt.Charge(order);

            new QuerySW().Query(order);

            CookieContainer cookie = new CookieContainer();
            Cookie          ck     = new Cookie()
            {
                Name   = "test",
                Value  = "123",
                Domain = "www"
            };

            cookie.Add(ck);

            Common.CookieOperation.CookieHelper.WriteCookiesToDisk("357440019", cookie);

            CookieContainer cc = Common.CookieOperation.CookieHelper.ReadCookiesFromDisk("E:\\testcookie\\357440019");

            string ss = ChargeInterface.ChargeHelper.OrderHelper.OrderStatusForXml.GetOrderStatus("91y", "充值失败");

            Console.WriteLine(ss);
            ss = ChargeInterface.ChargeHelper.OrderHelper.OrderStatusForXml.GetOrderStatus("91y", "充值成功");

            Console.WriteLine(ss);
        }