//查询订单 private bool QueryOrder(string transaction_id) { WXReturnResultModel models = new WXReturnResultModel(); WxPayData req = new WxPayData(); req.SetValue("transaction_id", transaction_id); WxPayData res = WxPayApi.OrderQuery(req); if (res.GetValue("return_code").ToString() == "SUCCESS" && res.GetValue("result_code").ToString() == "SUCCESS") { models.openid = res.GetValue("openid").ToString(); models.trade_type = res.GetValue("trade_type").ToString(); models.bank_type = res.GetValue("bank_type").ToString(); models.total_fee = res.GetValue("total_fee").ToString(); models.fee_type = res.GetValue("fee_type").ToString(); models.transaction_id = res.GetValue("transaction_id").ToString(); models.out_trade_no = res.GetValue("out_trade_no").ToString(); models.is_subscribe = res.GetValue("is_subscribe").ToString(); models.time_end = res.GetValue("time_end").ToString(); new WXReturnDal().AddWXReturnInfo(models); return(true); } else { return(false); } }
public void AddWXReturnInfo(WXReturnResultModel models) { using (var db = new HTJKEntities()) { var tables = new WXReturnInfo(); tables.Id = Guid.NewGuid(); tables.out_trade_no = models.out_trade_no; tables.transaction_id = models.transaction_id; tables.openid = models.openid; tables.trade_type = models.trade_type; tables.bank_type = models.bank_type; tables.total_fee = models.total_fee; tables.fee_type = models.fee_type; tables.time_end = models.time_end; tables.CreateTime = DateTime.Now; db.WXReturnInfo.Add(tables); var OrderNum = models.out_trade_no; if (models.out_trade_no.Contains("abc") == true) { OrderNum = models.out_trade_no.Split('a')[0]; } if (OrderNum.Contains("HT")) { var OrderTable = db.OrderInfo.Where(k => k.Ordernum == OrderNum).SingleOrDefault(); var Total = OrderTable.TotalPrice; var MemberId = OrderTable.MemberId; if (OrderTable != null) { OrderTable.PayState = true; OrderTable.PayTime = DateTime.Now; var IsRus = db.WX_Order_Commission_Logs.Where(k => k.OrderId == OrderTable.Id).SingleOrDefault(); if (IsRus == null)//判断是否结佣过 { var Memtable = db.MemberInfo.Where(k => k.Id == MemberId).SingleOrDefault(); var MemberUser = Memtable.userName;//购买人的昵称 if (Memtable != null) { var RequRequestNumber_1 = Memtable.RequestNumber_1; var RequRequestNumber_2 = Memtable.RequestNumber_2; if (string.IsNullOrEmpty(RequRequestNumber_2) == false) { var RMemtable = db.MemberInfo.Where(k => k.MemberNumber == RequRequestNumber_1).FirstOrDefault(); var NewRPrice = Total * Convert.ToDecimal(0.04); var ORprice = RMemtable.Commission ?? 0; RMemtable.Commission = ORprice + NewRPrice; WX_Order_Commission_Logs ComTab = new WX_Order_Commission_Logs(); ComTab.Id = Guid.NewGuid(); ComTab.MemberId = RMemtable.Id; ComTab.MemberName = MemberUser; ComTab.OrderNum = OrderNum; ComTab.RequstPay = Total * Convert.ToDecimal(0.04); ComTab.OrderPrice = Total; ComTab.OrderId = OrderTable.Id; ComTab.CreateTime = DateTime.Now; db.WX_Order_Commission_Logs.Add(ComTab); var R1Memtable = db.MemberInfo.Where(k => k.MemberNumber == RequRequestNumber_2).FirstOrDefault(); var NewR1Price = Total * Convert.ToDecimal(0.01); var OR1price = RMemtable.Commission ?? 0; R1Memtable.Commission = OR1price + NewR1Price; WX_Order_Commission_Logs ComTab1 = new WX_Order_Commission_Logs(); ComTab1.Id = Guid.NewGuid(); ComTab1.MemberId = R1Memtable.Id; ComTab1.MemberName = MemberUser; ComTab1.OrderNum = OrderNum; ComTab1.RequstPay = Total * Convert.ToDecimal(0.01); ComTab1.OrderPrice = Total; ComTab1.OrderId = OrderTable.Id; ComTab1.CreateTime = DateTime.Now; db.WX_Order_Commission_Logs.Add(ComTab1); } if (string.IsNullOrEmpty(RequRequestNumber_1) == false && string.IsNullOrEmpty(RequRequestNumber_2) == true) { var RMemtable = db.MemberInfo.Where(k => k.MemberNumber == RequRequestNumber_1).FirstOrDefault(); var NewRPrice = Total * Convert.ToDecimal(0.05); var ORprice = RMemtable.Commission ?? 0; RMemtable.Commission = ORprice + NewRPrice; WX_Order_Commission_Logs ComTab = new WX_Order_Commission_Logs(); ComTab.Id = Guid.NewGuid(); ComTab.MemberId = RMemtable.Id; ComTab.MemberName = MemberUser; ComTab.OrderNum = OrderNum; ComTab.RequstPay = Total * Convert.ToDecimal(0.05); ComTab.OrderPrice = Total; ComTab.OrderId = OrderTable.Id; ComTab.CreateTime = DateTime.Now; db.WX_Order_Commission_Logs.Add(ComTab); } } } } } db.SaveChanges(); } }