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()); } } }
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; }
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()); } } }
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); }
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); }
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()); } } }
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); }
// 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); } }
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; } } }
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); }